LilyPond snippets: Titles

# Titles

Titles and headers

## Adding the current date to a score

With a little Scheme code, the current date can easily be added to a score.

    % first, define a variable to hold the formatted date:
    date = #(strftime "%d-%m-%Y" (localtime (current-time)))

    % use it in the title block:
    \header {
      title = "Including the date!"
      subtitle = \date
    }

    \score {
      \relative c'' {
        c4 c c c
      }
    }
    % and use it in a \markup block:
    \markup {
      \date
    }

## 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
      }
    }

## 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"
       }
    }

## Outputting the version number

By putting the output of `lilypond-version` into a lyric, it is possible to print the version number of LilyPond in a score, or in a document generated with `lilypond-book`. Another possibility is to append the version number to the doc-string, in this manner:

    \score {
      \new Lyrics {
        \override Score.RehearsalMark #'self-alignment-X = #LEFT
        \mark #(string-append "Processed with LilyPond version " (lilypond-version))
        s2
      }
    }

#### LilyPond — Snippets