On Wed, Nov 09, 2022 at 04:44:07PM +0100, Vincent Lefevre wrote: > It seems that Texinfo adds something like {} at the beginning of > the Texinfo macro expansion
Yes, this appears to be the case. I expect it is the \bgroup and \egroup used in \defmacro, in this code: \or % 1 \expandafter\xdef\csname\the\macname\endcsname{% \bgroup \noexpand\braceorline \expandafter\noexpand\csname\the\macname @@@\endcsname}% \expandafter\xdef\csname\the\macname @@@\endcsname##1{% \egroup \noexpand\scanmacro{\macrobody}% }% These grouping commands are needed to isolate the catcode changes for reading the macro arguments. Again, there is no way that I can see to fix this (the code implementing @macro is already very hard to understand), and the workaround with \gdef that I already posted to this list is completely sufficient.