| [ << General input and output ] | [Top][Contents][Index][ ? ] | [ Spacing issues >> ] | ||
| [ < Multiple scores in a book ] | [ Up : Input structure ] | [ Titles and headers > ] | ||
3.1.3 File structure
A .ly file may contain any number of toplevel expressions, where a
toplevel expression is one of the following:
-
An output definition, such as
\paper,\midi, and\layout. Such a definition at the toplevel changes the default book-wide settings. If more than one such definition of the same type is entered at the top level any definitions in the later expressions have precedence. -
A direct scheme expression, such as
#(set-default-paper-size "a7" 'landscape)or#(ly:set-option 'point-and-click #f). -
A
\headerblock. This sets the global header block. This is the block containing the definitions for book-wide settings, like composer, title, etc. -
A
\scoreblock. This score will be collected with other toplevel scores, and combined as a single\book. This behavior can be changed by setting the variabletoplevel-score-handlerat toplevel. The default handler is defined in the init file ‘../scm/lily.scm’. -
A
\bookblock logically combines multiple movements (i.e., multiple\scoreblocks) in one document. If there are a number of\scores, one output file will be created for each\bookblock, in which all corresponding movements are concatenated. The only reason to explicitly specify\bookblocks in a.lyfile is if you wish to create multiple output files from a single input file. One exception is within lilypond-book documents, where you explicitly have to add a\bookblock if you want more than a single\scoreor\markupin the same example. This behavior can be changed by setting the variabletoplevel-book-handlerat toplevel. The default handler is defined in the init file ‘../scm/lily.scm’. -
A
\bookpartblock. A book may be divided into several parts, using\bookpartblocks, in order to ease the page breaking, or to use different\papersettings in different parts. -
A compound music expression, such as
{ c'4 d' e'2 }This will add the piece in a
\scoreand format it in a single book together with all other toplevel\scores and music expressions. In other words, a file containing only the above music expression will be translated into\book { \score { \new Staff { \new Voice { { c'4 d' e'2 } } } } \layout { } \header { } }This behavior can be changed by setting the variable
toplevel-music-handlerat toplevel. The default handler is defined in the init file ‘../scm/lily.scm’. -
A markup text, a verse for example
\markup { 2. The first line verse two. }Markup texts are rendered above, between or below the scores or music expressions, wherever they appear.
-
A variable, such as
foo = { c4 d e d }This can be used later on in the file by entering
\foo. The name of a variable should have alphabetic characters only; no numbers, underscores or dashes.
The following example shows three things that may be entered at toplevel
\layout {
% Don't justify the output
ragged-right = ##t
}
\header {
title = "Do-re-mi"
}
{ c'4 d' e2 }
At any point in a file, any of the following lexical instructions can be entered:
-
\version -
\include -
\sourcefilename -
\sourcefileline -
A single-line comment, introduced by a leading
%sign. -
A multi-line comment delimited by
%{ .. %}.
See also
Learning Manual: How LilyPond input files work.
| [ << General input and output ] | [Top][Contents][Index][ ? ] | [ Spacing issues >> ] | ||
| [ < Multiple scores in a book ] | [ Up : Input structure ] | [ Titles and headers > ] | ||