@unnumberedsubsubsec Musica ficta accidentals
In European music from before about 1600, singers were often expected
-to chromatically alter notes at their own initiative. This is called
-@q{Musica Ficta}. In modern transcriptions, these accidentals are
+to chromatically alter notes at their own initiative. This is called
+@q{Musica Ficta}. In modern transcriptions, these accidentals are
usually printed over the note.
@cindex Accidental, musica ficta
@end lilypond
Spaces may be inserted by using @code{_}. Brackets are
-introduced with @code{[} and @code{]}. You can also include text
+introduced with @code{[} and @code{]}. You can also include text
strings and text markups, see @ref{Overview of text markup commands}.
@example
In this case, the extender lines always replace existing figures.
The @code{FiguredBass} context doesn't pay attention to the actual
-bass line. As a consequence, you may have to insert extra figures to
+bass line. As a consequence, you may have to insert extra figures to
get extender lines below all notes, and you may have to add @code{\!}
to avoid getting an extender line, e.g.
@end lilypond
When using continuation lines, common figures are always put in the
-same vertical position. When this is unwanted, you can insert a rest
-with @code{r}. The rest will clear any previous alignment. For
+same vertical position. When this is unwanted, you can insert a rest
+with @code{r}. The rest will clear any previous alignment. For
example, you can write
@example
@end lilypond
Bagpipe music nominally uses the key of D Major (even though that
-isn't really true). However, since that is the only key that can be used,
-the key signature is normally not written out. To set this up correctly,
-always start your music with @code{\hideKeySignature}. If you for some
+isn't really true). However, since that is the only key that can be used,
+the key signature is normally not written out. To set this up correctly,
+always start your music with @code{\hideKeySignature}. If you for some
reason want to show the key signature, you can use @code{\showKeySignature}
instead.
Some modern music use cross fingering on c and f to flatten those notes.
-This can be indicated by @code{cflat} or @code{fflat}. Similarly, the
+This can be indicated by @code{cflat} or @code{fflat}. Similarly, the
piobaireachd high g can be written @code{gflat} when it occurs in light
music.
@item piano
@funindex piano accidentals
-This accidental style takes place in a GrandStaff context. However, you have to
+This accidental style takes place in a GrandStaff context. However, you have to
explicitly set it for @emph{each} individual Staff of the GrandStaff:
@example
If any unexpected beam behaviour occurs, check the default automatic beam
settings in @file{scm/@/auto@/-beam@/.scm}
for possible interference, because the beam
-endings defined there will still apply on top of your own overrides. Any
+endings defined there will still apply on top of your own overrides. Any
unwanted endings in the default vales must be reverted for your time
signature(s).
The VerticalAlignment and VerticalAxisGroup grobs work together.
VerticalAxisGroup groups together different grobs like Staff, Lyrics,
-etc. VerticalAlignment then vertically aligns the different grobs
-grouped together by VerticalAxisGroup. There is usually only one
+etc. VerticalAlignment then vertically aligns the different grobs
+grouped together by VerticalAxisGroup. There is usually only one
VerticalAlignment per score but every Staff, Lyrics, etc. has its own
VerticalAxisGroup.
this. Context properties are modified with @code{\set}.
There is a special type of context property: the element
-description. These properties are named in @code{StudlyCaps}
+description. These properties are named in @code{StudlyCaps}
(starting with capital letters). They contain the
@q{default settings} for said graphical object as an
association list. See @file{scm/@/define@/-grobs@/.scm}
@funindex chordPrefixSpacer
@item chordPrefixSpacer
The @q{m} for minor chords is usually printed right after the root of
-the chord. By setting @code{chordPrefixSpacer}, you can fix a spacer
-between the root and @q{m}. The spacer is not used when the root
+the chord. By setting @code{chordPrefixSpacer}, you can fix a spacer
+between the root and @q{m}. The spacer is not used when the root
is altered.
@end table
a 20pt staff, a 10pt font is selected.
The @code{font-size} property can only be set on layout objects that
-use fonts. These are the ones supporting the
+use fonts. These are the ones supporting the
@internalsref{font-interface} layout interface.
@refcommands
@noindent
There are two music functions, @code{balloonText} and
-@code{balloonGrobText}. The latter takes the name of the grob to
+@code{balloonGrobText}. The latter takes the name of the grob to
adorn, while the former may be used as an articulation on a note.
The other arguments are the offset and the text of the label.
A hairpin normally starts at the left edge of the beginning note
and ends on the right edge of the ending note. If the ending
note falls on the downbeat, the hairpin ends on the immediately
-preceding barline. This may be modified by setting the
+preceding barline. This may be modified by setting the
@code{hairpinToBarline} property,
@lilypond[quote,ragged-right,fragment,verbatim,relative=2]
@funindex \repeatTie
When a second alternative of a repeat starts with a tied note, you
-have to repeat the tie. This can be achieved with @code{\repeatTie},
+have to repeat the tie. This can be achieved with @code{\repeatTie},
@lilypond[fragment,quote,ragged-right,relative=2]
r <c e g>\repeatTie
Ties are sometimes used to write out arpeggios. In this case, two tied
notes need not be consecutive. This can be achieved by setting the
-@code{tieWaitForNote} property to true. The same feature is also useful,
-for example, to tie a tremolo to a chord. For example,
+@code{tieWaitForNote} property to true. The same feature is also useful,
+for example, to tie a tremolo to a chord. For example,
@lilypond[fragment,verbatim,relative=1,ragged-right,quote]
\set tieWaitForNote = ##t
@cindex Ties, laissez vibrer
L.v. ties (laissez vibrer) indicate that notes must not be damped at the
-end. It is used in notation for piano, harp and other string and
-percussion instruments. They can be entered using @code{\laissezVibrer},
+end. It is used in notation for piano, harp and other string and
+percussion instruments. They can be entered using @code{\laissezVibrer},
@lilypond[fragment,ragged-right,verbatim,relative=1]
<c f g>\laissezVibrer
@item @uref{http://fontforge.sf.net/,FontForge} 20060125 or newer.
-@item New Century Schoolbook fonts, as PFB files. These are shipped with
+@item New Century Schoolbook fonts, as PFB files. These are shipped with
X11 and Ghostscript, and are named @file{c059033l.pfb}
@file{c059036l.pfb}, @file{c059013l.pfb} and @file{c059016l.pfb}
@end html
LilyPond comes with an extensive suite that exercises the entire
-program. This suite can be used to automatically check the impact of a
-change. This is done as follows
+program. This suite can be used to automatically check the impact of a
+change. This is done as follows
@example
make test-baseline
@unnumberedsubsubsec Bison 1.875
There is a bug in bison-1.875: compilation fails with "parse error
-before `goto'" in line 4922 due to a bug in bison. To fix, please
+before `goto'" in line 4922 due to a bug in bison. To fix, please
recompile bison 1.875 with the following fix
@example
@end lilypond
Bagpipe music nominally uses the key of D Major (even though that
-isn't really true). However, since that is the only key that can be used,
-the key signature is normally not written out. To set this up correctly,
-always start your music with @code{\hideKeySignature}. If you for some
+isn't really true). However, since that is the only key that can be used,
+the key signature is normally not written out. To set this up correctly,
+always start your music with @code{\hideKeySignature}. If you for some
reason want to show the key signature, you can use @code{\showKeySignature}
instead.
Some modern music use cross fingering on c and f to flatten those notes.
-This can be indicated by @code{cflat} or @code{fflat}. Similarly, the
+This can be indicated by @code{cflat} or @code{fflat}. Similarly, the
piobaireachd high g can be written @code{gflat} when it occurs in light
music.
@noindent
where the @var{file}@command{psfonts} file is obtained from
-@command{lilypond-book}, @xref{Invoking lilypond-book}, for details. PDF
+@command{lilypond-book}, @xref{Invoking lilypond-book}, for details. PDF
can then be produced with a PostScript to PDF translator like
@code{ps2pdf} (which is part of GhostScript). Running @command{dvips}
will produce some warnings about fonts; these are harmless and may
For inserting all type of snippets we use the @code{mediaobject} and @code{inlinemediaobject} element, so our snippets can be
formatted inline or not inline.
-The snippet formatting options are always provided in the @code{role} property of the innermost element (see in next sections). Tags are
+The snippet formatting options are always provided in the @code{role} property of the innermost element (see in next sections). Tags are
chosen to allow DocBook editors format the content gracefully.
The DocBook files to be processed with @command{lilypond-book} should have the extension @file{.lyxml}.
@subheading Including a LilyPond file
-This is the most simple case. We must use the @file{.ly} extension for the included file, and insert it as a standard @code{imageobject},
+This is the most simple case. We must use the @file{.ly} extension for the included file, and insert it as a standard @code{imageobject},
with the following structure:
@example
@item fontload
This option includes fonts in all of the generated EPS-files for this
-snippet. This should be used if the snippet uses any font that LaTeX
+snippet. This should be used if the snippet uses any font that LaTeX
cannot find on its own.
@end table
The width of a tightly clipped systems can vary, due to notation
elements that stick into the left margin, such as bar numbers and
-instrument names. This option will shorten each line and move each
+instrument names. This option will shorten each line and move each
line to the right by the same amount.
(i.e., multiple @code{\score} blocks) in one document. If there are
a number of @code{\scores}, one output file will be created for
each @code{\book} block, in which all corresponding movements are
-concatenated. The only reason to explicitly specify @code{\book} blocks
+concatenated. The only reason to explicitly specify @code{\book} blocks
in a @code{.ly} file is if you wish multiple output files from a single
-input file. One exception is within lilypond-book documents, where you
+input file. One exception is within lilypond-book documents, where you
explicitly have to add a @code{\book} block if you want more than a
single @code{\score} or @code{\markup} in the same example.
However, if you want multiple output files from the same @code{.ly}
file, then you can add multiple @code{\book} blocks, where each such
-@code{\book} block will result in a separate output. If you do not
+@code{\book} block will result in a separate output. If you do not
specify any @code{\book} block in the file, LilyPond will implicitly
treat the full file as a single @code{\book} block, see @ref{File
-structure}. One important exception is within lilypond-book documents,
+structure}. One important exception is within lilypond-book documents,
where you explicitly have to add a @code{\book} block, otherwise only
the first @code{\score} or @code{\markup} will appear in the output.
@subsection Extracting fragments of notation
It is possible to quote small fragments of a large score directly from
-the output. This can be compared to clipping a piece of a paper score
+the output. This can be compared to clipping a piece of a paper score
with scissors.
This is done by definining the measures that need to be cut out
-separately. For example, including the following definition
+separately. For example, including the following definition
@verbatim
@noindent
will extract a fragment starting halfway the fifth measure, ending in
-the seventh measure. The meaning of @code{5 1 2} is: after a 1/2 note
+the seventh measure. The meaning of @code{5 1 2} is: after a 1/2 note
in measure 5, and @code{7 3 4} after 3 quarter notes in measure 7.
More clip regions can be defined by adding more pairs of
rhythmic-locations to the list.
In order to use this feature, LilyPond must be invoked with
-@code{-dclip-systems}. The clips are output as EPS files, and are
+@code{-dclip-systems}. The clips are output as EPS files, and are
converted to PDF and PNG if these formats are switched on as well.
For more information on output formats, see @rprogram{Invoking lilypond}.
@end verbatim
The markups which are used to format the table of contents are defined
-in the @code{\paper} block. The default ones are @code{tocTitleMarkup},
+in the @code{\paper} block. The default ones are @code{tocTitleMarkup},
for formatting the title of the table, and @code{tocItemMarkup}, for
formatting the toc elements, composed of the element title and page
-number. These variables may be changed by the user:
+number. These variables may be changed by the user:
@verbatim
\paper {
The tempo can be specified using the @code{\tempo} command within the
actual music, see @ref{Metronome marks}. An alternative, which does not
result in a metronome mark in the printed score, is shown in the example
-above. In this example the tempo of quarter notes is set to 72 beats per
+above. In this example the tempo of quarter notes is set to 72 beats per
minute.
This kind of tempo
-specification can not take dotted note lengths as an argument. In this
-case, break the dotted notes into smaller units. For example, a tempo
+specification can not take dotted note lengths as an argument. In this
+case, break the dotted notes into smaller units. For example, a tempo
of 90 dotted quarter notes per minute can be specified as 270 eighth
notes per minute
The MIDI block is analogous to the layout block, but it is somewhat
-simpler. The @code{\midi} block is similar to @code{\layout}. It can contain
+simpler. The @code{\midi} block is similar to @code{\layout}. It can contain
context definitions.
you
are adding notes) is interesting to view and correct. To speed up
this correction process, it is possible to skip typesetting of all but
-the last few measures. This is achieved by putting
+the last few measures. This is achieved by putting
@verbatim
showLastLength = R1*5
@end verbatim
@noindent
-in your source file. This will render only the last 5 measures
+in your source file. This will render only the last 5 measures
(assuming 4/4 time signature) of every @code{\score} in the input
-file. For longer pieces, rendering only a small part is often an order
+file. For longer pieces, rendering only a small part is often an order
of magnitude quicker than rendering it completely
Skipping parts of a score can be controlled in a more fine-grained
fashion with the property @code{Score.skipTypesetting}. When it is
set, no typesetting is performed at all.
-This property is also used to control output to the MIDI file. Note that
-it skips all events, including tempo and instrument changes. You have
+This property is also used to control output to the MIDI file. Note that
+it skips all events, including tempo and instrument changes. You have
been warned.
@lilypond[quote,fragment,ragged-right,verbatim]
Note that in Dutch, German, Norwegian, and Swedish, the flat
alterations of @samp{a} like for example @code{aes} and
@code{aeses} are usually contracted to @code{as} and @code{ases}
-(or more commonly @code{asas}). Sometimes only these contracted
+(or more commonly @code{asas}). Sometimes only these contracted
names are defined in the corresponding language files (this also
applies to the suffixes for quartertones below).
@noindent
Some music uses microtones whose alterations are fractions of a
-@q{regular} sharp or flat. The note names for quartertones defined
+@q{regular} sharp or flat. The note names for quartertones defined
in the various language files are listed in the following table.
Here the prefixes @q{semi-} and @q{sesqui-} mean @q{half} and
-@q{one and a half}, respectively. For Norwegian, Swedish, Catalan
+@q{one and a half}, respectively. For Norwegian, Swedish, Catalan
and Spanish no special names have been defined yet.
@c What about Turkish Maquam music and similar microtonal systems?
@c
@c Note that the term "three-quarter-sharp/-flat" used in lilypond's source code
@c is actually misleading since the alteration is in fact one and a half
-@c of a regular sharp/flat. Whence the naming "sesqui-sharp/-flat" used below.
+@c of a regular sharp/flat. Whence the naming "sesqui-sharp/-flat" used below.
@example
Note Names semi- semi- sesqui- sesqui-
music expression.
That is why the form
-that is returned is the @code{(make-music ...)}. With the
+that is returned is the @code{(make-music ...)}. With the
@code{'void} property set to @code{#t}, the parser is told to
actually disregard this returned music
expression. Thus the important part of the void music function is the
Due to parser lookahead
In this example, the assignment happens after parser has verified that
-nothing interesting happens after @code{traLaLa = @{ ... @}}. Without
+nothing interesting happens after @code{traLaLa = @{ ... @}}. Without
the dummy statement in the above example, the @code{newLa} definition
is executed before @code{traLaLa} is defined, leading to a syntax
error.
is not found, the default value is @code{2}. Then, a list of justified
lines is made using the @code{make-justified-lines-markup-list}
function, which is related to the @code{\justified-lines}
-built-in markup list command. An horizontal space is added at the
-begining using the @code{make-hspace-markup} function. Finally, the
+built-in markup list command. An horizontal space is added at the
+begining using the @code{make-hspace-markup} function. Finally, the
markup list is interpreted using the @code{interpret-markup-list}
function.
@}
\override-lines #'(par-indent . 4) \paragraph @{
The plate would be inked, the depressions caused by the cutting
- and stamping would hold ink. An image was formed by pressing paper
- to the plate. The stamping and cutting was completely done by
+ and stamping would hold ink. An image was formed by pressing paper
+ to the plate. The stamping and cutting was completely done by
hand.
@}
@}
@noindent
In this example, both @code{ly:self-alignment-interface::x-aligned-on-self} and
@code{ly:self-alignment-interface::centered-on-x-parent} are called
-with the grob as argument. The results are added with the @code{+}
-function. To ensure that this addition is properly executed, the whole
+with the grob as argument. The results are added with the @code{+}
+function. To ensure that this addition is properly executed, the whole
thing is enclosed in @code{ly:make-simple-closure}.
In fact, using a single procedure as property value is equivalent to
-Isolated percents can also be printed. This is done by putting a
+Isolated percents can also be printed. This is done by putting a
multi-measure rest with a different print function,
@lilypond[fragment,verbatim,quote]
Double time signatures are not supported explicitly, but they can
be faked. In the next example, the markup for the time signature
is created with a markup text. This markup text is inserted in
-the @internalsref{TimeSignature} grob. See also
+the @internalsref{TimeSignature} grob. See also
@lsr{contemporary,compound-time-signature}.
@lilypond[verbatim,ragged-right]
printed durations in each staff are scaled to the common time
signature. The latter is done with @code{\compressMusic}, which
is used similar to @code{\times}, but does not create a tuplet
-bracket. The syntax is @example \compressMusic #'(@var{numerator}
+bracket. The syntax is @example \compressMusic #'(@var{numerator}
. @var{denominator}) @var{musicexpr} @end example
@noindent
This can be remedied by inserting grace skips of the corresponding
-durations in the other staves. For the above example
+durations in the other staves. For the above example
@lilypond[quote,ragged-right,relative=2,verbatim,fragment]
<< \new Staff { e4 \bar "|:" \grace c16 d4 }
@item -d,--define-default=@var{var}=@var{val}
This sets the internal program option @var{var} to the Scheme value
-@var{val}. If @var{val} is not supplied, then @var{#t} is used. To
+@var{val}. If @var{val} is not supplied, then @var{#t} is used. To
switch off an option, @code{no-} may be prefixed to @var{var}, e.g.
@cindex point and click, command line
Setting up a jail is a slightly delicate matter, as we must be sure that
LilyPond is able to find whatever it needs to compile the source
-@emph{inside the jail}. A typical setup comprises the following items:
+@emph{inside the jail}. A typical setup comprises the following items:
@table @asis
@item Setting up a separate filesystem
@item LILYPOND_GC_YIELD
With this variable the memory footprint and performance can be
-adjusted. It is a percentage tunes memory management behavior. With
+adjusted. It is a percentage tunes memory management behavior. With
higher values, the program uses more memory, with smaller values, it
-uses more CPU time. The default value is @code{70}.
+uses more CPU time. The default value is @code{70}.
@end table
manually.
@verbatim
-There are a few things that the convert-ly cannot handle. Here's a list
+There are a few things that the convert-ly cannot handle. Here's a list
of limitations that the community has complained about.
This bug report structure has been chosen because convert-ly has a
1.6->2.0:
Doesn't always convert figured bass correctly, specifically things like {<
->}. Mats' comment on working around this:
+>}. Mats' comment on working around this:
To be able to run convert-ly
on it, I first replaced all occurencies of '{<' to some dummy like '{#'
- and similarly I replaced '>}' with '&}'. After the conversion, I could
+ and similarly I replaced '>}' with '&}'. After the conversion, I could
then change back from '{ #' to '{ <' and from '& }' to '> }'.
- Doesn't convert all text markup correctly. In the old markup syntax,
+ Doesn't convert all text markup correctly. In the old markup syntax,
it was possible to group a number of markup commands together within
parentheses, e.g.
-#'((bold italic) "string")
@cindex reporting bugs
If you have input that results in a crash or an erroneous output, then
-that is a bug. There is a list of current bugs on our google bug tracker,
+that is a bug. There is a list of current bugs on our google bug tracker,
@uref{http://code.google.com/p/lilypond/issues/list}
object. @code{thickness} is measured relative to the thickness of
staff lines, so these stem lines will be @code{2.6} times the
width of staff lines. This makes stems almost twice as thick as their
-normal size. To distinguish between variables defined in input files (like
+normal size. To distinguish between variables defined in input files (like
@code{twentyFour} in the example above) and variables of internal
objects, we will call the latter @q{properties} and the former
@q{identifiers.} So, the stem object has a @code{thickness} property,
@subsection MacOS X on the command-line
The scripts (such as lilypond-book, convert-ly, abc2ly, and even
-lilypond itself) are included inside MacOS X .app. They can be run from
+lilypond itself) are included inside MacOS X .app. They can be run from
the command line by invoking them directly, e.g.
@example
some error in the sheet music.
When this functionality is active, LilyPond adds hyperlinks to the PDF
-file. These hyperlinks are sent to the web-browser, which opens a
+file. These hyperlinks are sent to the web-browser, which opens a
text-editor with the cursor in the right place.
To make this chain work, you should configure your PDF viewer to
@end example
The program @file{lilypond-invoke-editor} is a small helper
-program. It will invoke an editor for the special @code{textedit}
+program. It will invoke an editor for the special @code{textedit}
URIs, and run a web browser for others. It tests the environment
variable @code{EDITOR} for the following patterns,
@end example
@end table
-The environment variable @code{LYEDITOR} is used to override this. It
+The environment variable @code{LYEDITOR} is used to override this. It
contains the command line to start the editor, where @code{%(file)s},
@code{%(column)s}, @code{%(line)s} is replaced with the file, column
-and line respectively. The setting
+and line respectively. The setting
@example
emacsclient --no-wait +%(line)s:%(column)s %(file)s
@cindex file size, output
-The point and click links enlarge the output files significantly. For
+The point and click links enlarge the output files significantly. For
reducing the size of PDF and PS files, point and click may be switched
off by issuing
Globally speaking, this procedure happens in four steps: first,
flexible distances (@q{springs}) are chosen, based on durations. All
possible line breaking combinations are tried, and a @q{badness} score
-is calculated for each. Then the height of each possible system is
-estimated. Finally, a page breaking and line breaking combination is chosen
+is calculated for each. Then the height of each possible system is
+estimated. Finally, a page breaking and line breaking combination is chosen
so that neither the horizontal nor the vertical spacing is too cramped
or stretched.
@funindex print-page-number
@item print-page-number
-If set to false, page numbers will not be printed. Default is true.
+If set to false, page numbers will not be printed. Default is true.
@funindex paper-width
@item paper-width
-The width of the page. The default is taken from the current paper size,
+The width of the page. The default is taken from the current paper size,
see @ref{Paper size}.
@funindex paper-height
@item paper-height
-The height of the page. The default is taken from the current paper size,
+The height of the page. The default is taken from the current paper size,
see @ref{Paper size}.
@funindex top-margin
@item top-margin
-Margin between header and top of the page. Default is@tie{}5mm.
+Margin between header and top of the page. Default is@tie{}5mm.
@funindex bottom-margin
@item bottom-margin
-Margin between footer and bottom of the page. Default is@tie{}6mm.
+Margin between footer and bottom of the page. Default is@tie{}6mm.
@funindex left-margin
@item left-margin
Margin between the left side of the page and the beginning of the
-music. Unset by default, which means that the margins is determined
+music. Unset by default, which means that the margins is determined
based on the @code{paper-width} and @code{line-width} to center the
score on the paper.
@funindex line-width
@item line-width
-The length of the systems. Default is @code{paper-width} minus @tie{}20mm.
+The length of the systems. Default is @code{paper-width} minus @tie{}20mm.
@funindex head-separation
@item head-separation
-Distance between the top-most music system and the page header. Default
+Distance between the top-most music system and the page header. Default
is@tie{}4mm.
@funindex foot-separation
@item foot-separation
Distance between the bottom-most music system and the page
-footer. Default is@tie{}4mm.
+footer. Default is@tie{}4mm.
@funindex page-top-space
@item page-top-space
Distance from the top of the printable area to the center of the first
-staff. This only works for staves which are vertically small. Big staves
+staff. This only works for staves which are vertically small. Big staves
are set with the top of their bounding box aligned to the top of the
-printable area. Default is@tie{}12mm.
+printable area. Default is@tie{}12mm.
@funindex ragged-bottom
@item ragged-bottom
If set to true, systems will not be spread vertically across the page. This
-does not affect the last page. Default is false.
+does not affect the last page. Default is false.
This should be set to true for pieces that have only two or three
systems per page, for example orchestral scores.
@funindex ragged-last-bottom
@item ragged-last-bottom
If set to false, systems will be spread vertically to fill the last
-page. Default is true.
+page. Default is true.
Pieces that amply fill two pages or more should have this set to
true.
@funindex system-count
@item system-count
This variable, if set, specifies into how many lines a score should be
-broken. Unset by default.
+broken. Unset by default.
@funindex between-system-space
@item between-system-space
This dimensions determines the distance between systems. It is the
ideal distance between the center of the bottom staff of one system
-and the center of the top staff of the next system. Default is@tie{}20mm.
+and the center of the top staff of the next system. Default is@tie{}20mm.
Increasing this will provide a more even appearance of the page at the
cost of using more vertical space.
@item between-system-padding
This dimension is the minimum amount of white space that will always
be present between the bottom-most symbol of one system, and the
-top-most of the next system. Default is@tie{}4mm.
+top-most of the next system. Default is@tie{}4mm.
Increasing this will put systems whose bounding boxes almost touch
farther apart.
@item page-breaking-between-system-padding
This variable tricks the page breaker into thinking that
@code{between-system-padding} is set to something different than it
-really is. For example, if this variable is set to something substantially
+really is. For example, if this variable is set to something substantially
larger than @code{between-system-padding}, then the page-breaker will put
fewer systems on each page.
@funindex horizontal-shift
@item horizontal-shift
All systems (including titles and system separators) are shifted by
-this amount to the right. Page markup, such as headers and footers are
-not affected by this. The purpose of this variable is to make space
-for instrument names at the left. Default is@tie{}0.
+this amount to the right. Page markup, such as headers and footers are
+not affected by this. The purpose of this variable is to make space
+for instrument names at the left. Default is@tie{}0.
@funindex after-title-space
@item after-title-space
-Amount of space between the title and the first system. Default is@tie{}5mm.
+Amount of space between the title and the first system. Default is@tie{}5mm.
@funindex before-title-space
@item before-title-space
Amount of space between the last system of the previous piece and the
-title of the next. Default is@tie{}10mm.
+title of the next. Default is@tie{}10mm.
@funindex between-title-space
@item between-title-space
Amount of space between consecutive titles (e.g., the title of the
-book and the title of a piece). Default is@tie{}2mm.
+book and the title of a piece). Default is@tie{}2mm.
@funindex printallheaders
@item printallheaders
@funindex systemSeparatorMarkup
@item systemSeparatorMarkup
This contains a markup object, which will be inserted between
-systems. This is often used for orchestral scores. Unset by default.
+systems. This is often used for orchestral scores. Unset by default.
The markup command @code{\slashSeparator} is provided as a sensible
default, for example
@funindex blank-page-force
@item blank-page-force
The penalty for having a blank page in the middle of a
-score. This is not used by @code{ly:optimal-breaking} since it will
-never consider blank pages in the middle of a score. Default value
+score. This is not used by @code{ly:optimal-breaking} since it will
+never consider blank pages in the middle of a score. Default value
is 10.
@funindex blank-last-page-force
@funindex page-spacing-weight
@item page-spacing-weight
The relative importance of page (vertical) spacing and line (horizontal)
-spacing. High values will make page spacing more important. Default
+spacing. High values will make page spacing more important. Default
value is 10.
@funindex auto-first-page-number
@commonprop
The header and footer are created by the functions make-footer and
-make-header, defined in \paper. The default implementations are in
+make-header, defined in \paper. The default implementations are in
ly/paper-defaults.ly and ly/titling-init.ly.
The page layout itself is done by two functions in the \paper block,
-page-music-height and page-make-stencil. The former tells the
+page-music-height and page-make-stencil. The former tells the
line-breaking algorithm how much space can be spent on a page, the
latter creates the actual page given the system to put on it.
-You can define paper block values in Scheme. In that case mm, in, pt,
+You can define paper block values in Scheme. In that case mm, in, pt,
and cm are variables defined in paper-defaults.ly with values in
-millimeters. That is why the value 2 cm must be multiplied in the
+millimeters. That is why the value 2 cm must be multiplied in the
example
@example
Page breaks are computed by the @code{page-breaking} function. LilyPond
provides three algorithms for computing page breaks,
@code{ly:optimal-breaking}, @code{ly:page-turn-breaking} and
-@code{ly:minimal-breaking}. The default is @code{ly:optimal-breaking},
+@code{ly:minimal-breaking}. The default is @code{ly:optimal-breaking},
but the value can be changed in the @code{\paper} block:
@example
@end example
The old page breaking algorithm is called
-@code{optimal-page-breaks}. If you are having trouble with the new page
+@code{optimal-page-breaks}. If you are having trouble with the new page
breakers, you can enable the old one as a workaround.
@refcommands
@funindex ly:optimal-breaking
The @code{ly:optimal-breaking} function is LilyPond's default method of
-determining page breaks. It attempts to find a page breaking that minimizes
-cramping and stretching, both horizontally and vertically. Unlike
+determining page breaks. It attempts to find a page breaking that minimizes
+cramping and stretching, both horizontally and vertically. Unlike
@code{ly:page-turn-breaking}, it has no concept of page turns.
@funindex ly:page-turn-breaking
Often it is necessary to find a page breaking configuration so that there is
-a rest at the end of every second page. This way, the musician can turn the
-page without having to miss notes. The @code{ly:page-turn-breaking} function
+a rest at the end of every second page. This way, the musician can turn the
+page without having to miss notes. The @code{ly:page-turn-breaking} function
attempts to find a page breaking minimizing cramping and stretching, but with
the additional restriction that it is only allowed to introduce page turns
in specified places.
-There are two steps to using this page breaking function. First, you
+There are two steps to using this page breaking function. First, you
must enable it in the @code{\paper} block, as explained in @ref{Page
-breaking}. Then you must tell the function where you would like to allow
+breaking}. Then you must tell the function where you would like to allow
page breaks.
-There are two ways to achieve the second step. First, you can specify each
+There are two ways to achieve the second step. First, you can specify each
potential page turn manually, by inserting @code{\allowPageTurn} into your
input file at the appropriate places.
If this is too tedious, you can add a @code{Page_turn_engraver} to a Staff or
-Voice context. The @code{Page_turn_engraver} will scan the context for
+Voice context. The @code{Page_turn_engraver} will scan the context for
sections without notes (note that it does not scan for rests; it scans for
-the absence of notes. This is so that single-staff polyphony with rests in one
-of the parts does not throw off the @code{Page_turn_engraver}). When it finds
+the absence of notes. This is so that single-staff polyphony with rests in one
+of the parts does not throw off the @code{Page_turn_engraver}). When it finds
a sufficiently long section without notes, the @code{Page_turn_engraver} will
insert an @code{\allowPageTurn} at the final barline in that section, unless
there is a @q{special} barline (such as a double bar), in which case the
@funindex minimumPageTurnLength
The @code{Page_turn_engraver} reads the context property
@code{minimumPageTurnLength} to determine how long a note-free section must
-be before a page turn is considered. The default value for
-@code{minimumPageTurnLength} is @code{#(ly:make-moment 1 1)}. If you want
+be before a page turn is considered. The default value for
+@code{minimumPageTurnLength} is @code{#(ly:make-moment 1 1)}. If you want
to disable page turns, you can set it to something very large.
@example
@end example
@funindex minimumRepeatLengthForPageTurn
-The @code{Page_turn_engraver} detects volta repeats. It will only allow a page
+The @code{Page_turn_engraver} detects volta repeats. It will only allow a page
turn during the repeat if there is enough time at the beginning and end of the
-repeat to turn the page back. The @code{Page_turn_engraver} can also disable
-page turns if the repeat is very short. If you set the context property
+repeat to turn the page back. The @code{Page_turn_engraver} can also disable
+page turns if the repeat is very short. If you set the context property
@code{minimumRepeatLengthForPageTurn} then the @code{Page_turn_engraver} will
only allow turns in repeats whose duration is longer than this value.
@refbugs
-There should only be one @code{Page_turn_engraver} in a score. If there is more
+There should only be one @code{Page_turn_engraver} in a score. If there is more
than one, they will interfere with each other.
@node Minimal page breaking
system is reevaluated in order to fill the page more evenly; if a page
has space left over, systems are stretched in order to fill that space.
The amount of stretching can be configured though the @code{max-stretch}
-property of the @internalsref{VerticalAlignment} grob. To disable this
+property of the @internalsref{VerticalAlignment} grob. To disable this
stretching entirely, set @code{max-stretch} to zero.
In some situations, you may want to stretch most of a system while
-leaving some parts fixed. For example, if a piano part occurs in the
+leaving some parts fixed. For example, if a piano part occurs in the
middle of an orchestral score, you may want to leave the piano staves
-close to each other while stretching the rest of the score. The
+close to each other while stretching the rest of the score. The
@code{keep-fixed-while-stretching} property of
-@internalsref{VerticalAxisGroup} can be used to achieve this. When set
+@internalsref{VerticalAxisGroup} can be used to achieve this. When set
to @code{##t}, this property keeps its staff (or line of lyrics) from
-moving relative to the one directly above it. In the example above,
+moving relative to the one directly above it. In the example above,
you would override @code{keep-fixed-while-stretching} to @code{##t} in
the second piano staff:
@seealso
Internals: Vertical alignment of staves is handled by the
-@internalsref{VerticalAlignment} object. The context parameters
+@internalsref{VerticalAlignment} object. The context parameters
specifying the vertical extent are described in connection with
the @internalsref{Axis_group_engraver}.
When only a couple of flat systems are placed on a page, the resulting
vertical spacing may be non-eleguant: one system at the top of the page,
-and the other at the bottom, with a huge gap between them. To avoid this
-situation, the space added between the systems can be limited. This
+and the other at the bottom, with a huge gap between them. To avoid this
+situation, the space added between the systems can be limited. This
feature is activated by setting to @code{#t} the
@code{page-limit-inter-system-space} variable in the @code{\paper}
-block. The paper variable @code{page-limit-inter-system-space-factor}
+block. The paper variable @code{page-limit-inter-system-space-factor}
determines how much the space can be increased: for instance, the value
@code{1.3} means that the space can be 30% larger than what it would be
on a ragged-bottom page.
In the following example, if the inter system space were not limited,
-the second system of page 1 would be placed at the page bottom. By
+the second system of page 1 would be placed at the page bottom. By
activating the space limitation, the second system is placed closer to
-the first one. By setting @code{page-limit-inter-system-space-factor} to
+the first one. By setting @code{page-limit-inter-system-space-factor} to
@code{1}, the spacing would the same as on a ragged-bottom page, like
the last one.
@end lilypond
This score isolates line- and page-breaking information in a dedicated
-voice. This technique of creating a breaks voice will help keep layout
+voice. This technique of creating a breaks voice will help keep layout
separate from music entry as our example becomes more complicated.
See @ref{Using an extra voice for breaks}.
@subsection Two-pass vertical spacing
Warning: two-pass vertical spacing is deprecated and will be removed in
-a future version of LilyPond. Systems are now stretched automatically
-in a single pass. See @ref{Vertical spacing inside a system}.
+a future version of LilyPond. Systems are now stretched automatically
+in a single pass. See @ref{Vertical spacing inside a system}.
In order to automatically stretch systems so that they should fill the
space left on a page, a two-pass technique can be used:
LilyPond supports proportional notation, a type of horizontal spacing
in which each note consumes an amount of horizontal space exactly
-equivalent to its rhythmic duration. This type of proportional spacing
-is comparable to horizontal spacing on top of graph paper. Some late
+equivalent to its rhythmic duration. This type of proportional spacing
+is comparable to horizontal spacing on top of graph paper. Some late
20th- and early 21st-century scores use proportional notation to
clarify complex rhythmic relationships or to faciliate the placement
of timelines or other graphics directly in the score.
which is the reference duration against which all music will be
spaced. The LilyPond Scheme function make-moment takes two arguments
-- a numerator and denominator which together express some fraction of
-a whole note. The call @code{#(ly:make-moment 1 20)} therefore produces a
-reference duration of a twentieth note. The values
+a whole note. The call @code{#(ly:make-moment 1 20)} therefore produces a
+reference duration of a twentieth note. The values
@code{#(ly:make-moment 1 16)}, @code{#(ly:make-moment 1 8)}, and
@code{#(ly:make-moment 3 97)} are all possible as well.
@lsr{staff,changing-the-number-of-lines-in-a-staff.ly} and
@lsr{staff,changing-the-staff-size.ly}.
-In addition, staves may be started and stopped at will. This is done
+In addition, staves may be started and stopped at will. This is done
with @code{\startStaff} and @code{\stopStaff}.
@lilypond[verbatim,relative=2,fragment]
@end lilypond
In combination with Frenched staves, this may be used to typeset ossia
-sections. An example is shown here
+sections. An example is shown here
@cindex ossia
These all use the same routines as the glissando for drawing the texts
and the lines, and tuning their behavior is therefore also done in the
-same way. It is done with a spanner, and the routine responsible for
-drawing the spanners is @code{ly:line-interface::print}. This
+same way. It is done with a spanner, and the routine responsible for
+drawing the spanners is @code{ly:line-interface::print}. This
routine determines the exact location of the two @i{span
points} and draws a line in between, in the style requested.
The @code{Glissando} object, like any other using the
@code{ly:line-interface::print} routine, carries a nested
-association list. In the above statement, the value for @code{Y}
+association list. In the above statement, the value for @code{Y}
is set to @code{-2} for the association list corresponding to the right
-end point. Of course, it is also possible to adjust the left side with
+end point. Of course, it is also possible to adjust the left side with
@code{left} instead of @code{right}.
If @code{Y} is not set, the value is computed from the vertical
head it is attached to.
@item X
-This is the absolute coordinate of the end point. It is usually
+This is the absolute coordinate of the end point. It is usually
computed on the fly, and there is little use in overriding it.
@item stencil
recommended to use @code{text}.
@item text
-This is a markup that is evaluated to yield stencil. It is
+This is a markup that is evaluated to yield stencil. It is
used to put @i{cresc.} and @i{tr} on horizontal spanners.
@lilypond[quote,ragged-right,fragment,relative=2,verbatim]
@end verbatim
@code{\markuplines} accepts a list of markup, that is either the result
-of a markup list command, or a list of markups or of markup lists. The
+of a markup list command, or a list of markups or of markup lists. The
built-in markup list commands are described in
@ref{Overview of text markup list commands}.
By setting the object properties described below, you can select a
font from the preconfigured font families. LilyPond has default
-support for the feta music fonts. Text fonts are selected through
-Pango/FontConfig. The serif font defaults to New Century Schoolbook,
+support for the feta music fonts. Text fonts are selected through
+Pango/FontConfig. The serif font defaults to New Century Schoolbook,
the sans and typewriter to whatever the Pango installation defaults
to.
@end itemize
Fonts selected in the way sketched above come from a predefined style
-sheet. If you want to use a font from outside the style sheet,
+sheet. If you want to use a font from outside the style sheet,
then set the
@code{font-name} property,
The size of the font may be set with the @code{font-size}
-property. The resulting size is taken relative to the
+property. The resulting size is taken relative to the
@code{text-font-size} as defined in the @code{\paper} block.
@cindex font size
It is also possible to change the default font family for the entire
-document. This is done by calling the @code{make-pango-font-tree} from
-within the @code{\paper} block. The function takes names for the font
-families to use for roman, sans serif and monospaced text. For
+document. This is done by calling the @code{make-pango-font-tree} from
+within the @code{\paper} block. The function takes names for the font
+families to use for roman, sans serif and monospaced text. For
example,
@cindex font families, setting
pointer.
To edit an existing @file{.ly} file, right-click on it and
-select @qq{Edit source}. To get an empty file to start from, run
+select @qq{Edit source}. To get an empty file to start from, run
the editor as described above and use @qq{New} in
the @qq{File} menu.
Time signatures entered in one staff affects all other
staves@footnote{This behavior may be changed if desired; see
-@ruser{Polymetric notation}, for details.}. On the other hand, the
+@ruser{Polymetric notation}, for details.}. On the other hand, the
key signature of one staff does @emph{not} affect other staves.
@lilypond[verbatim,quote,ragged-right]
instead) and the note. In LilyPond, this is called the
@code{padding} property; it is measured in staff spaces. For most
objects, this value is around 1.0 or less (it varies with each
-object). We want to increase it, so let's try 1.5
+object). We want to increase it, so let's try 1.5
@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
% temporary code to break this example:
Lyrics can also be entered without @code{\addlyrics} or
@code{\lyricsto}. In this case,
syllables are entered like notes -- but with pitches replaced by text -- and the
-duration of each syllable must be entered explicitly. For example:
+duration of each syllable must be entered explicitly. For example:
@example
play2 the4 game2.
@cindex lyrics, identifiers
To define identifiers containing lyrics, the function @code{\lyricmode}
-must be used. You do not have to enter durations though, if you add
+must be used. You do not have to enter durations though, if you add
@code{\addlyrics} or @code{\lyricsto}
when invoking your identifier.
@unnumberedsubsubsec Printing stanzas at the end in multiple columns
When a piece of music has many verses, they are often printed in
-multiple columns across the page. An outdented verse number often
-introduces each verse. The following example shows how to produce such
+multiple columns across the page. An outdented verse number often
+introduces each verse. The following example shows how to produce such
output in Lilypond.
@lilypond[ragged-right,quote,verbatim]