3.3 Music fragment options

In the following, a ‘LilyPond command’ refers to any command described in the previous sections which is handled by lilypond-book to produce a music snippet. For simplicity, LilyPond commands are only shown in LaTeX syntax.

Note that the option string is parsed from left to right; if an option occurs multiple times, the last one is taken.

The following options are available for LilyPond commands:


Set staff size to ht, which is measured in points.


Produce ragged-right lines with natural spacing, i.e., ragged-right = ##t is added to the LilyPond snippet. Single-line snippets will always be typeset by default as ragged-right, unless noragged-right is explicitly given.


For single-line snippets, allow the staff length to be stretched to equal that of the line width, i.e., ragged-right = ##f is added to the LilyPond snippet.


Set line width to size, using unit as units. unit is one of the following strings: cm, mm, in, or pt. This option affects LilyPond output (this is, the staff length of the music snippet), not the text layout.

If used without an argument, set line width to a default value (as computed with a heuristic algorithm).

If no line-width option is given, lilypond-book tries to guess a default for lilypond environments which don’t use the ragged-right option.


Where string is a paper size defined in ‘scm/paper.scm’ i.e. a5, quarto, 11x17 etc.

Values not defined in ‘scm/paper.scm’ will be ignored, a warning will be posted and the snippet will be printed using the default a4 size.


Do not print the time signature, and turns off the timing (time signature, bar lines) in the score.


Make lilypond-book add some boilerplate code so that you can simply enter, say,


without \layout, \score, etc.


Do not add additional code to complete LilyPond code in music snippets. Since this is the default, nofragment is redundant normally.


Set indentation of the first music system to size, using unit as units. unit is one of the following strings: cm, mm, in, or pt. This option affects LilyPond, not the text layout.


Set indentation of the first music system to zero. This option affects LilyPond, not the text layout. Since no indentation is the default, noindent is redundant normally.


Reduce line length of a music snippet by 2*0.4in and put the output into a quotation block. The value ‘0.4in’ can be controlled with the exampleindent option.


Set the amount by which the quote option indents a music snippet.


Use relative octave mode. By default, notes are specified relative to middle C. The optional integer argument specifies the octave of the starting note, where the default 1 is middle C. relative option only works when fragment option is set, so fragment is automatically implied by relative, regardless of the presence of any (no)fragment option in the source.

LilyPond also uses lilypond-book to produce its own documentation. To do that, some more obscure music fragment options are available.


The argument of a LilyPond command is copied to the output file and enclosed in a verbatim block, followed by any text given with the intertext option (not implemented yet); then the actual music is displayed. This option does not work well with \lilypond{} if it is part of a paragraph.

If verbatim is used in a lilypondfile command, it is possible to enclose verbatim only a part of the source file. If the source file contain a comment containing ‘begin verbatim’ (without quotes), quoting the source in the verbatim block will start after the last occurrence of such a comment; similarly, quoting the source verbatim will stop just before the first occurrence of a comment containing ‘end verbatim’, if there is any. In the following source file example, the music will be interpreted in relative mode, but the verbatim quote will not show the relative block, i.e.

\relative { % begin verbatim
  c'4 e2 g4
  f2 e % end verbatim

will be printed with a verbatim block like

  c4 e2 g4
  f2 e

If you would like to translate comments and variable names in verbatim output but not in the sources, you may set the environment variable LYDOC_LOCALEDIR to a directory path; the directory should contain a tree of ‘.mo’ message catalogs with lilypond-doc as a domain.


(Only for Texinfo output.) If lilypond is called with the ‘--header=texidoc’ option, and the file to be processed is called ‘foo.ly’, it creates a file ‘foo.texidoc’ if there is a texidoc field in the \header. The texidoc option makes lilypond-book include such files, adding its contents as a documentation block right before the music snippet (but outside the example environment generated by a quote option).

Assuming the file ‘foo.ly’ contains

\header {
  texidoc = "This file demonstrates a single note."
{ c'4 }

and we have this in our Texinfo document ‘test.texinfo


the following command line gives the expected result

lilypond-book --pdf --process="lilypond \
  -dbackend=eps --header=texidoc" test.texinfo

Most LilyPond test documents (in the ‘input’ directory of the distribution) are small ‘.ly’ files which look exactly like this.

For localization purpose, if the Texinfo document contains @documentlanguage LANG and ‘foo.ly’ header contains a texidocLANG field, and if lilypond is called with ‘--header=texidocLANG’, then ‘foo.texidocLANG’ will be included instead of ‘foo.texidoc’.


(Only for Texinfo output.) This option works similarly to texidoc option: if lilypond is called with the ‘--header=doctitle’ option, and the file to be processed is called ‘foo.ly’ and contains a doctitle field in the \header, it creates a file ‘foo.doctitle’. When doctitle option is used, the contents of ‘foo.doctitle’, which should be a single line of text, is inserted in the Texinfo document as @lydoctitle text. @lydoctitle should be a macro defined in the Texinfo document. The same remark about texidoc processing with localized languages also applies to doctitle.


(Only for Texinfo output.) Do not translate comments and variable names in the snippet quoted verbatim.


If a LilyPond input file is included with \lilypondfile, print the file name right before the music snippet. For HTML output, this is a link. Only the base name of the file is printed, i.e. the directory part of the file path is stripped.

LilyPond — Usage v2.21.82 (development-branch).