@node
Line Requirements ¶Names used with @node
have several requirements:
This means, for example, that if you end every chapter with a summary, you must name each summary node differently. You cannot just call them all “Summary”. You may, however, duplicate the titles of chapters, sections, and the like. Thus you can end each chapter with a section called “Summary”, so long as the node names for those sections are all different.
Node names, anchor names (see @anchor
: Defining Arbitrary Cross-reference Targets),
and float labels (see @float
[type][,label]: Floating Material) must all be unique.
@TeX{}
in a node name results in the TeX logo being
output, as it would be in normal text. Cross-references should
use @TeX{}
just as the node name does.
Some commands do not make sense in node names; for instance,
environments (e.g., @quotation
), commands that read a whole
line as their argument (e.g., @sp
), and plenty of others.
For the complete list of commands that are allowed, and their
expansion for HTML identifiers and file names, see HTML Cross-reference Command Expansion.
(not)allowed
, since this syntax is used to
specify an external manual.
texi2any
quotes problematic node names and labels by default,
but some Info readers do not recognize this syntax. Node name and label
quoting causes DEL
characters (‘CTRL-?’, character number 127,
often rendered as ‘^?’) to appear around the name. To remove
node names and labels quoting, you can set the customization variable
INFO_SPECIAL_CHARS_QUOTE
to ‘0’ (see Other Customization Variables).
texi2any
warns about such problematic usage in node names,
menu items, and cross-references. If you don’t want to see the
warnings, you can set the customization variable
INFO_SPECIAL_CHARS_WARNING
to ‘0’ (see Other Customization Variables).
If you insist on using these characters in node names, in order not
to confuse the Texinfo processors you must still escape those characters,
by using either special insertions (see Inserting ‘,’ with @comma{}
) or @asis
(see @asis
). For example:
@node foo@asis{::}bar@comma{} baz
As an example of avoiding the special characters, the following is a section title in this manual:
@section @code{@@unnumbered}, @code{@@appendix}: Chapters with...
But the corresponding node name lacks the commas and the subtitle:
@node @code{@@unnumbered @@appendix}
@node foo bar @node foo bar, @node foo bar , @node foo bar, @node foo bar ,
all define the same node, namely ‘foo bar’. In menu entries, a single internal space should be used in node names or some versions of some Info readers will not find the node.
Prior to the Texinfo 5 release in 2013, this feature was supported in
an ad hoc way (the --commands-in-node-names option to
makeinfo
). Now it is part of the language.