Next: Writing a Menu, Up: Menus
A menu must be located at the end of a node, without any regular text
or additional commands between the @end menu
and the beginning
of the next node. (As a consequence, there may be at most one menu in
a node.)
This is actually a useful restriction, since a reader who uses the menu could easily miss any such text. Technically, it is necessary because in Info format, there is no marker for the end of a menu, so Info-reading programs would have no way to know when the menu ends and normal text resumes.
Technically, menus can carry you to any node, regardless of the structure of the document; even to nodes in a different Info file. However, we do not recommend ever making use of this, because the makeinfo implicit pointer creation feature (see makeinfo Pointer Creation) and GNU Emacs Texinfo mode updating commands work only to create menus of subordinate nodes in a hierarchically structured document. Instead, use cross references to refer to arbitrary nodes.
In the past, we recommended using a `@heading' command within an
@ifinfo
conditional instead of the normal sectioning commands
after a very short node with a menu. This had the advantage of making
the printed output look better, because there was no very short text
between two headings on the page. But aside from not working with
makeinfo's implicit pointer creation, it also makes the XML
output incorrect, since it does not reflect the true document
structure. So, unfortunately we can no longer recommend this.