lilypond-usage: Music fragment options
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:
‘staffsize=HT’
Set staff size to HT, which is measured in points.
‘ragged-right’
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.
‘noragged-right’
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.
‘line-width’
‘line-width=SIZE\UNIT’
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.
‘papersize=STRING’
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.
‘notime’
Do not print the time signature, and turns off the timing (time
signature, bar lines) in the score.
‘fragment’
Make ‘lilypond-book’ add some boilerplate code so that you can
simply enter, say,
c'4
without ‘\layout’, ‘\score’, etc.
‘nofragment’
Do not add additional code to complete LilyPond code in music
snippets. Since this is the default, ‘nofragment’ is redundant
normally.
‘indent=SIZE\UNIT’
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.
‘noindent’
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.
‘quote’
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.
‘exampleindent’
Set the amount by which the ‘quote’ option indents a music snippet.
‘relative’
‘relative=N’
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.
‘verbatim’
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 c' { % begin verbatim
c4 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.
‘addversion’
(Only for Texinfo output.) Prepend line ‘\version
@w{"@version{}"}’ to ‘verbatim’ output.
‘texidoc’
(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’
@lilypondfile[texidoc]{foo.ly}
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’.
‘doctitle’
(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’.
‘nogettext’
(Only for Texinfo output.) Do not translate comments and variable
names in the snippet quoted verbatim.
‘printfilename’
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.