On Sun, 26 Dec 1999, Karl Heinz Marbaise wrote:
> @defmac {@@@@TESTMACRO@@@@} {Paras}
> @end defmac
> This is a chapter about macros like @@@@TESTMACRO@@@@,
> which should be represented the same way.
The behavior you see is one of the consequences of how the defXXX
directives are implemented in Texinfo. The implementation does some
extra-special hacks to allow constructs like {foo} (which are
forbidden everywhere else), and this special processing is the
reason for some unintuitive behavior in rare cases such as yours.
In particular, because of these tricks, everything that follows
@defXXX cannot have any macros or other @ directives.
IMHO, the ``original sin'' here is the irregular syntax (a brace-enclosed
text that is otherwise forbidden in Texinfo) used in the @defXXX
directives. However, this feature and its implementation go back to the
first versions of Texinfo, and it is used heavily by the Emacs manuals.
So it is probably too late to change them now, because that would
trigger compatibility headaches all over the place.
At the time I found out about these problems, I discussed the
consequences of this implementation with Karl, and the conclusion, more
or less, was ``tough luck''.
Personally, I never use defXXX; there are enough alternatives that
don't have these deficiencies. If you must use defXXX, I strongly
suggest not to put there anything tricky like the @-commands, just
plain text.
> 2 <<p>p>
[snip]
> The line 2 shows a little problem, which is not so urgent.
This is due to a last-minute change in makeinfo before Texinfo 4.0 was
released. I already submitted a patch that fixes this problem.