18.3 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:

@ifnottex
@macro ctor {name, arg}
@macro \name\
something involving \arg\ somehow
@end macro
@end macro
@end ifnottex
@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 Format with texi2dvi.

