5.4.3 Sectioning commands

The Notation Reference uses section headings at four, occasionally five, levels.

levelsection command
1@chapter
2@section
3@subsection
4@unnumberedsubsubsec
5@subsubsubheading

The first three levels are numbered in HTML, the last two are not. A numbered section corresponds to a single HTML page in the split HTML documents.

The first four levels always have accompanying @node commands so they can be referenced; they are also included in the table of contents in HTML.

Most of the manual is written at level 4 under headings created with

@node Foo
@unnumberedsubsubsec Foo

Level 3 subsections are created with

@node Foo
@subsection Foo

Level 4 headings must be preceded by level 3 headings, and so on for level 3 and level 2. If this is not what is wanted, please use:

@subsubsubheading Foo

Leave two blank lines above a @node; this makes it easier to find sections in Texinfo code.

Do not use any @-commands within a @node. They may be used for any @sub... sections or headings, however.

not:
@node @code{Foo} bar
@subsection @code{Foo} bar

but instead:
@node Foo bar
@subsection @code{Foo} bar

Similarly, do not use punctuation in node names. If the heading text uses punctuation (in particular, colons and commas) simply leave this out.

@node We all love Bach Mozart and Gregorian chant
@subsection We all love Bach, Mozart, and Gregorian chant

As can be seen in the previous examples, we use sentence-style capitalization (not title case), which means that a heading starts with an uppercase letter, and you should only capitalize words in the remaining part of the heading if you would do so in an English sentence.

Backslashes must not be used in node names either.

@node set and unset
@subsection @code{\set} and @code{\unset}

With the exception of @-commands, \-commands and punctuation, the section name should match the node name exactly. If it happens that the heading starts with a command name that in turn starts with a lowercase letter, do not capitalize the command name in the node name.

Sectioning commands (@node and @section) must not appear inside an @ignore@end ignore block. Separate those commands with a space, i.e., ‘@n ode’.


LilyPond Contributor’s Guide v2.25.25 (development-branch).