3.9.1 Writing a Menu

A menu consists of a @menu command on a line by itself, followed by menu entry lines or menu comment lines, and then followed by an @end menu command on a line by itself.

A menu looks like this:

@menu
Larger Units of Text

* Files::                       All about handling files.
* Multiples: Buffers.           Multiple buffers; editing
                                 several files at once.
@end menu

In a menu, every line that begins with an ‘ is a menu entry. (Note the space after the asterisk.)

A line that does not start with an ‘ may also appear in a menu. Such a line is not a menu entry but rather a menu comment line that appears in the Info file. In the example above, the line ‘Larger Units of Text’ is such a menu comment line; the two lines starting with ‘ are menu entries.

Technically, menus can carry you to any node, regardless of the structure of the document; even to nodes in a different Info file. However, the texi2any implicit pointer creation feature (see Writing a @node Line) and GNU Emacs Texinfo mode updating commands work only to create menus of subordinate nodes in a hierarchically structured document. In a hierarchically structured document, it is much better to use cross-references to refer to arbitrary nodes.

In Info, a user selects a node with the m (Info-menu) command. The menu entry name is what the user types after the m command. In the HTML output, the accesskey attribute is used with the values ‘1’…‘9’ for the first nine entries. This allows people using web browsers to follow the first menu entries using (typically) M-digit, e.g., M-1 for the first entry.