LilyPond Notation Reference: 3.2.2 Custom headers, footers, and titles

### 3.2.2 Custom headers, footers, and titles

#### Custom text formatting for title blocks

Standard `\markup` commands can be used to customize any header, footer and title text within the `\header` block.

>     \score {
>       { s1 }
>       \header {
>         piece = \markup { \fontsize #4 \bold "PRAELUDIUM I" }
>         subtitle = \markup { \italic "(Excerpt)" }
>       }
>     }

#### See also

Notation Reference: Formatting text.

#### Custom layout for title blocks

`\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, use either or both of the following `\paper` variables:

- `bookTitleMarkup`
- `scoreTitleMarkup`

These markup variables are discussed in Default layout of book and score title blocks.

The default settings for `scoreTitleMarkup` as defined in ‘`ly/titling-init.ly`’ are:

>     scoreTitleMarkup = \markup { \column {
>       \on-the-fly #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 {
>       { s1 }
>       \header {
>         piece = "PRAELUDIUM I"
>         opus = "BWV 846"
>       }
>     }

This example redefines `scoreTitleMarkup` so that the `piece` text field is centered and in 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 {
>         { s1 }
>         \header {
>           piece = "PRAELUDIUM I"
>           opus = "BWV 846"
>         }
>       }
>     }

Text fields normally reserved for the main title block can be included in individual score title blocks with the `print-all-headers` placed inside the `\paper` block. A disadvantage of using this method is that the text fields that are intended specifically for the top-level `\header` block need to be manually suppressed in every `\score` block. See Title blocks 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 {
>         { s1 }
>         \header {
>           piece = "MENUET"
>           composer = "Christian Petzold"
>         }
>       }
>       \score {
>         { s1 }
>         \header {
>           piece = "RONDEAU"
>           composer = "François Couperin"
>         }
>       }
>     }

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 {
>         { s1 }
>         \header {
>           piece = "FUGA I"
>           mycustomtext = "A 4 VOCI" %% User-defined field
>           opus = "BWV 846"
>         }
>       }
>     }

#### Custom layout for headers and footers

`\markup` commands in the `\header` block are useful for simple text formatting, but they do not allow precise control over the placement of headers and footers. To customize the placement of the text fields, use either or both of the following `\paper` variables:

- `oddHeaderMarkup`
- `evenHeaderMarkup`
- `oddFooterMarkup`
- `evenFooterMarkup`

These markup variables are discussed in Default layout of book and score title blocks.

The following example centers page numbers at the bottom of every page. First, the default settings for `oddHeaderMarkup` and `evenHeaderMarkup` are removed by defining each as a null markup. Then, `oddFooterMarkup` is redefined with the page number centered. Finally, `evenFooterMarkup` is given the same layout by defining it as `\oddFooterMarkup`:

>     \book {
>       \paper {
>         print-page-number = ##t
>         print-first-page-number = ##t
>         oddHeaderMarkup = \markup \null
>         evenHeaderMarkup = \markup \null
>         oddFooterMarkup = \markup {
>           \fill-line {
>             \on-the-fly #print-page-number-check-first
>             \fromproperty #'page:page-number-string
>           }
>         }
>         evenFooterMarkup = \oddFooterMarkup
>       }
>       \score {
>         \new Staff { s1 \break s1 \break s1 }
>       }
>     }

Other languages: deutsch, español, français, 日本語.

#### LilyPond — Notation Reference