Macro Details
=============
Due to unavoidable disparities in the TeX and `makeinfo'
implementations, Texinfo macros have the following limitations.
* All macros are expanded inside at least one TeX group. This means
that `@set' and other such commands will have no effect inside a
macro.
* Macros containing a command which must be on a line by itself,
such as a conditional, cannot be invoked in the middle of a line.
* Commas in macro arguments, even if escaped by a backslash, don't
always work.
* The TeX implementation cannot construct macros that define macros
in the natural way. To do this, you must use conditionals and raw
TeX. For example:
@ifinfo
@macro ctor {name, arg}
@macro \name\
something involving \arg\ somehow
@end macro
@end macro
@end ifinfo
@tex
\gdef\ctor#1{\ctorx#1,}
\gdef\ctorx#1,#2,{\def#1{something involving #2 somehow}}
@end tex
* It is best to avoid comments inside macro definitions.
If some macro feature causes errors when producing the printed version
of a manual, try expanding the macros with `makeinfo' by invoking
`texi2dvi' with the `-e' option; see Note:Format with texi2dvi.