[ << Tweaks and overrides ] | [Top][Contents][Index][ ? ] | [ Titles >> ] | ||
[ < ] | [ Up : Top ] | [ > ] |
Paper and layout
These snippets illustrate the Notation Reference, section Spacing issues.
[ << Paper and layout ] | [Top][Contents][Index][ ? ] | [ Titles >> ] | ||
[ < Paper and layout ] | [ Up : Paper and layout ] | [ > ] |
Aligning and centering instrument names
The horizontal alignment of instrument names is tweaked
by changing the Staff.InstrumentName #'self-alignment-X
property.
The \layout
variables indent
and short-indent
define the space in which the instrument names are aligned before the
first and the following systems, respectively.
\paper { left-margin = 3\cm } \score { \new StaffGroup << \new Staff { \override Staff.InstrumentName #'self-alignment-X = #LEFT \set Staff.instrumentName = \markup \left-column { "Left aligned" "instrument name" } \set Staff.shortInstrumentName = #"Left" c''1 \break c''1 } \new Staff { \override Staff.InstrumentName #'self-alignment-X = #CENTER \set Staff.instrumentName = \markup \center-column { Centered "instrument name" } \set Staff.shortInstrumentName = #"Centered" g'1 g'1 } \new Staff { \override Staff.InstrumentName #'self-alignment-X = #RIGHT \set Staff.instrumentName = \markup \right-column { "Right aligned" "instrument name" } \set Staff.shortInstrumentName = #"Right" e'1 e'1 } >> \layout { ragged-right = ##t indent = 4\cm short-indent = 2\cm } }
[ << Paper and layout ] | [Top][Contents][Index][ ? ] | [ Titles >> ] | ||
[ < ] | [ Up : Paper and layout ] | [ > ] |
Book parts
\bookpart
can be used to split a book into
several parts.
Each part last page can be affected by ragged-bottom-last
.
Header and footer markups can detect a part last page, and make the
difference with the book last page.
#(set-default-paper-size "a6") \book { %% book paper, which is inherited by all children bookparts \paper { ragged-last-bottom = ##t %% Page footer: add a different part-tagline at part last page oddFooterMarkup = \markup { \column { \fill-line { %% Copyright header field only on book first page. \on-the-fly #first-page \fromproperty #'header:copyright } \fill-line { %% Part tagline header field only on each part last page. \on-the-fly #part-last-page \fromproperty #'header:parttagline } \fill-line { %% Tagline header field only on book last page. \on-the-fly #last-page \fromproperty #'header:tagline } } } } %% book header, which is inherited by the first bookpart \header { title = "Book title" copyright = "Copyright line on book first page" parttagline = "Part tagline" tagline = "Book tagline" } \bookpart { %% a different page breaking function may be used on each part \paper { #(define page-breaking optimal-page-breaks) } \header { subtitle = "First part" } \markup { The first book part } \markup { a page break } \pageBreak \markup { first part last page } \markup \wordwrap { with ragged-last-bottom (see the space below this text) } } \bookpart { \header { subtitle = "Second part" } { c' } } }
[ << Paper and layout ] | [Top][Contents][Index][ ? ] | [ Titles >> ] | ||
[ < ] | [ Up : Paper and layout ] | [ > ] |
Changing the staff size
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 } >>
[ << Paper and layout ] | [Top][Contents][Index][ ? ] | [ Titles >> ] | ||
[ < ] | [ Up : Paper and layout ] | [ > ] |
Clip systems
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’.
- If system starts and ends are included, they include extents of the System grob, e.g., instrument names.
- Grace notes at the end point of the region are not included.
- Regions can span multiple systems. In this case, multiple EPS files are generated.
#(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)) } } } }
[ << Paper and layout ] | [Top][Contents][Index][ ? ] | [ Titles >> ] | ||
[ < ] | [ Up : Paper and layout ] | [ > ] |
Creating blank staves
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 }
[ << Paper and layout ] | [Top][Contents][Index][ ? ] | [ Titles >> ] | ||
[ < ] | [ Up : Paper and layout ] | [ > ] |
Demonstrating all headers
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" } }
[ << Paper and layout ] | [Top][Contents][Index][ ? ] | [ Titles >> ] | ||
[ < ] | [ Up : Paper and layout ] | [ Titles > ] |
Table of contents
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" } } }
[ << Paper and layout ] | [Top][Contents][Index][ ? ] | [ Titles >> ] | ||
[ < ] | [ Up : Paper and layout ] | [ Titles > ] |