Next: Titles, Previous: Tweaks and overrides, Up: Top
These snippets illustrate the Notation Reference, section Spacing issues.
Instrument names are generally printed to the left of the staves. To
align the names of several different intruments, put them in a
\markup
block and use one of the following possibilites:
* Right-aligned instrument names: this is the default behavior
*
Center-aligned instrument names: using the \hcenter-in #n
command
places the instrument names inside a padded box, with n
being
the width
of the box
*
Left-aligned instrument names: the names are printed on top of an
empty box, using the \combine
command
with an \hspace #n
object.
\paper { indent = #0 left-margin = #30 line-width = #160 } \new StaffGroup \relative c' << \new Staff { \set Staff.instrumentName = #"Piccolo" c1^"default" | c \break \set Staff.instrumentName = \markup { \hcenter-in #10 Piccolo } c1^"centered" | c \break \set Staff.instrumentName = \markup { \combine \hspace #8 Piccolo } c1^"left-aligned" | c } \new Staff { \set Staff.instrumentName = #"Flute" c1 | c \break \set Staff.instrumentName = \markup { \hcenter-in #10 Flute } c1 | c \break \set Staff.instrumentName = \markup { \combine \hspace #8 Flute } c1 | c } >>
By setting properties in NonMusicalPaperColumn
, vertical spacing
can be adjusted per system.
By setting alignment-extra-space
or
fixed-alignment-extra-space
an individual system may be
stretched vertically.
For technical reasons, \overrideProperty
must be used for
changing these properties within a staff; \override
in a
\context
block may still be used for global overrides.
#(set-global-staff-size 13) \relative c'' \new StaffGroup << \new Staff { c1 \break c1 \break c1 \break } \new Staff { c1 | c | c } \new PianoStaff << \new Voice { \set PianoStaff.instrumentName = #"piano" \set PianoStaff.shortInstrumentName = #"pn" c1_"normal" \overrideProperty #"Score.NonMusicalPaperColumn" #'line-break-system-details #'((fixed-alignment-extra-space . 15)) c_"fixed-aligment-extra-space" \overrideProperty #"Score.NonMusicalPaperColumn" #'line-break-system-details #'((alignment-extra-space . 15)) c_"aligment-extra-space" } { c1 | c | c } >> >>
Though the simplest way to resize staves is to use
#(set-global-staff-size xx)
, an individual staff's size can be
changed by scaling the properties staff-space
and
fontSize
.
<< \new Staff \relative c'' { \dynamicDown c8\ff c c c c c c c } \new Staff \with { fontSize = #-3 \override StaffSymbol #'staff-space = #(magstep -3) } { \clef bass c8 c c c c\f c c c } >>
This code shows how to clip (extract) snippets from a full score.
This file needs to be run separately with -dclip-systems
; the
snippets page may not adequately show the results.
The result will be files named base-from-start-to-end[-count].eps.
#(ly:set-option 'clip-systems) #(set! output-count 1) origScore = \score { \relative c' { \set Staff.instrumentName = #"bla" c1 d1 \grace c16 e1 \key d \major f1 \break \clef bass g,1 fis1 } } \book { \score { \origScore \layout { % Each clip-region is a (START . END) pair % where both are rhythmic-locations. % (make-rhythmic-locations BAR-NUMBER NUM DEN) % means NUM/DEN whole-notes into bar numbered BAR-NUMBER clip-regions = #(list (cons (make-rhythmic-location 2 0 1) (make-rhythmic-location 4 0 1)) (cons (make-rhythmic-location 0 0 1) (make-rhythmic-location 4 0 1)) (cons (make-rhythmic-location 0 0 1) (make-rhythmic-location 6 0 1)) ) } } } #(set! output-count 0) #(ly:set-option 'clip-systems #f) \book { \score { \origScore } \markup { \bold \fontsize #6 clips } \score { \lyrics { \markup { from-2.0.1-to-4.0.1-clip.eps } \markup { \epsfile #X #30.0 #(format #f "~a-1-from-2.0.1-to-4.0.1-clip.eps" (ly:parser-output-name parser)) } } } }
To create blank staves, generate empty measures then remove the
Bar_number_engraver
from the Score
context, and the
Time_signature_engraver
, Clef_engraver
and
Bar_engraver
from the Staff
context.
#(set-global-staff-size 20) \score { { \repeat unfold 12 { s1 \break } } \layout { indent = 0\in \context { \Staff \remove "Time_signature_engraver" \remove "Clef_engraver" \remove "Bar_engraver" } \context { \Score \remove "Bar_number_engraver" } } } \paper { #(set-paper-size "letter") ragged-last-bottom = ##f line-width = 7.5\in left-margin = 0.5\in bottom-margin = 0.25\in top-margin = 0.25\in }
All header fields with special meanings.
\header { copyright = "copyright" title = "title" subtitle = "subtitle" composer = "composer" arranger = "arranger" instrument = "instrument" metre = "metre" opus = "opus" piece = "piece" poet = "poet" texidoc = "All header fields with special meanings." copyright = "public domain" enteredby = "jcn" source = "urtext" } \layout { ragged-right = ##f } \score { \relative c'' { c1 | c | c | c } } \score { \relative c'' { c1 | c | c | c } \header { title = "localtitle" subtitle = "localsubtitle" composer = "localcomposer" arranger = "localarranger" instrument = "localinstrument" metre = "localmetre" opus = "localopus" piece = "localpiece" poet = "localpoet" copyright = "localcopyright" } }
A table of contents is included using
\markuplines \table-of-contents
. The TOC items are
added with the \tocItem
command.
#(set-default-paper-size "a6") \book { \markuplines \table-of-contents \pageBreak \tocItem \markup { The first score } \score { { c'1 \pageBreak \mark "A" \tocItem \markup { Mark A } d'1 } } \pageBreak \tocItem \markup { The second score } \score { { e'1 } \header { piece = "Second score" } } }
This page is for LilyPond-2.11.58 (development-branch).
Report errors to http://post.gmane.org/post.php?group=gmane.comp.gnu.lilypond.bugs.
Your suggestions for the documentation are welcome.