Custom layout for titles
\markup
commands in the \header
block are useful for
simple text formatting, but they do not allow precise control over the
placement of titles. To customize the placement of the text fields,
change either or both of the following \paper
variables:
-
bookTitleMarkup
-
scoreTitleMarkup
See Default layout of bookpart and score titles for the
placement of titles when using the default values of these
\markup
variables.
The default setting for scoreTitleMarkup
defined in
ly/titling-init.ly is as follows.
scoreTitleMarkup = \markup \column { \if \should-print-all-headers { \bookTitleMarkup \hspace #1 } \fill-line { \fromproperty #'header:piece \fromproperty #'header:opus } }
This places the piece
and opus
text fields at opposite
ends of the same line.
\score { \header { piece = "PRAELUDIUM I" opus = "BWV 846" } { s1 } }
The next example redefines scoreTitleMarkup
so that the
piece
text field is centered, using a large, bold font.
\book { \paper { indent = 0\mm scoreTitleMarkup = \markup { \fill-line { \null \fontsize #4 \bold \fromproperty #'header:piece \fromproperty #'header:opus } } } \header { tagline = ##f } \score { \header { piece = "PRAELUDIUM I" opus = "BWV 846" } { s1 } } }
Text fields not normally effective in score \header
blocks
can be printed in the score title area if print-all-headers
is
placed inside the \paper
block. A disadvantage of using this
method is that text fields intended specifically for the
bookpart title area need to be manually suppressed in every
\score
block. See Titles explained.
To avoid this, add the desired text field to the scoreTitleMarkup
definition. In the following example, the composer
text field
(normally associated with bookTitleMarkup
) is added to
scoreTitleMarkup
, allowing each score to list a different
composer.
\book { \paper { indent = 0\mm scoreTitleMarkup = \markup { \fill-line { \null \fontsize #4 \bold \fromproperty #'header:piece \fromproperty #'header:composer } } } \header { tagline = ##f } \score { \header { piece = "MENUET" composer = "Christian Petzold" } { s1 } } \score { \header { piece = "RONDEAU" composer = "François Couperin" } { s1 } } }
It is also possible to create your own custom text fields and refer to them in the markup definition.
\book { \paper { indent = 0\mm scoreTitleMarkup = \markup { \fill-line { \null \override #`(direction . ,UP) \dir-column { \center-align \fontsize #-1 \bold \fromproperty #'header:mycustomtext %% User-defined field \center-align \fontsize #4 \bold \fromproperty #'header:piece } \fromproperty #'header:opus } } } \header { tagline = ##f } \score { \header { piece = "FUGA I" mycustomtext = "A 4 VOCI" %% User-defined field opus = "BWV 846" } { s1 } } }
See also
Notation Reference: Titles explained.