Angepasstes Layout für Titelumgebungen

\markup-Befehle in der \header-Umgebung sind sinnvoll für einfaches Formatieren von Text, aber sie gewähren keine genaue Kontrolle über die Positionierung von Titeln. Um die Positionierung von Titeltextfeldern vorzunehmen, eignen sich beide oder eine von folgenden Variablen (die man in der \paper-Umgebung einsetzen muss):

Die Positionierung von Titeln, wenn die Standardeinstellung dieser Variablen benützt werden, wird anhand einem Beispiel gezeigt in Standardlayout von book- und Partitur-Titelumgebungen.

Die Standardeinstellungen von scoreTitleMarkup, wie in der Datei ly/titling-init.ly definiert, sind:

scoreTitleMarkup = \markup { \column {
  \if \should-print-all-headers { \bookTitleMarkup \hspace #1 }
  \fill-line {
    \fromproperty #'header:piece
    \fromproperty #'header:opus
  }
}
}

Dadurch werden die Textfelder piece (Stück) und opus an den gegenüberliegenden Enden der gleichen Zeile platziert:

\score {
  \header {
    piece = "PRAELUDIUM I"
    opus = "BWV 846"
  }
  { s1 }
}

[image of music]

Das folgende Beispiel verändert die Einstellungen von scoreTitleMarkup, sodass das Textfeld piece zentriert wird und in fetter, größerer Schrift erscheint.

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

[image of music]

Textfelder, die normalerweise nur im Haupttitel ausgegeben werden, können auch in die Titel einzelner Partituren aufgenommen werden, indem man print-all-headers in die \paper-Umgebung einfügt. Ein Nachteil dieser Methode ist, dass Textfelder, die tatsächlich nur im Haupttitel erscheinen sollen, manuell für jede Partitur unterdrückt werden müssen. Siehe auch Wie funktioniert die Titel-Umgebung?.

Um das zu vermeiden, kann das gewünschte Feld zur Definition von scoreTitleMarkup hinzugefügt werden. Im folgenden Beispiel wird das Komponistenfeld (composer) (normalerweise mit bookTitleMarkup assoziiert) zu scoreTitleMarkup hinzugefügt, sodass jede Partitur einen eigenen Komponisten haben kann.

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

[image of music]

Es ist auch möglich, eigene Textfelder zu erstellen und dann auf sie in der Beschriftungsdefinition zu verweisen:

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

[image of music]

Siehe auch

Notationsreferenz: Wie funktioniert die Titel-Umgebung?.


LilyPond Benutzerhandbuch v2.25.14 (Entwicklungszweig).