[ << Allgemeine Eingabe und Ausgabe ] | [Anfang][Inhalt][Index] | [ Abstände >> ] |
[ < Standardlayout von Kopf und Fußzeilen ] | [ Nach oben : Titel ] | [ Angepasste Textformatierung für Titelumgebungen > ] |
3.2.2 Eigene Kopf- und Fußzeilen sowie Titel
Angepasste Textformatierung für Titelumgebungen | ||
Angepasstes Layout für Titelumgebungen | ||
Angepasstes Layout für Kopf- und Fußzeilen |
Angepasste Textformatierung für Titelumgebungen
Standard-\markup
-Befehle können eingesetzt werden, um jeglichen
Text in Titeln, Kopf- und Fußzeilen innerhalb der \header
-Umgebung
zu verändern.
\score { \header { piece = \markup { \fontsize #4 \bold "PRAELUDIUM I" } subtitle = \markup { \italic "(Excerpt)" } } { s1 } }
Siehe auch
Notationsreferenz: Text formatieren.
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):
-
bookTitleMarkup
-
scoreTitleMarkup
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 } }
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 } } }
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 } } }
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 } } }
Siehe auch
Notationsreferenz: Wie funktioniert die Titel-Umgebung?.
[ << Allgemeine Eingabe und Ausgabe ] | [Anfang][Inhalt][Index] | [ Abstände >> ] |
[ < Angepasstes Layout für Titelumgebungen ] | [ Nach oben : Eigene Kopf und Fußzeilen sowie Titel ] | [ Fußnoten erstellen > ] |
Angepasstes Layout für Kopf- und Fußzeilen
\markup
-Befehle in der \header
-Umgebung sind nützlich
um einfachen Text zu formatieren, erlauben aber keine Kontrolle
über die Positionierung von Kopf- und Fußzeilen. Um die Positionierung
der Textfelder zu ändern, eignen sich beide oder eine von
folgenden Variablen (die man in der \paper
-Umgebung einsetzen muss):
-
oddHeaderMarkup
-
evenHeaderMarkup
-
oddFooterMarkup
-
evenFooterMarkup
Der \markup
-Befehl \on-the-fly
kann eingesetzt werden,
um Beschriftung anhand einer Bedingung zu Kopf- und Fußzeilentext
innerhalb der \paper
-Umgebung hinzuzufügen. Hierzu wird folgende
Syntax eingesetzt:
Variable = \markup { ... \on-the-fly #Prozedur Beschriftung ... }
Die Prozedur wird jedes mal aufgerufen, wenn dar
\markup
-Befehl, auf den sie sich auswirkt, ausgewertet wird.
Die Prozedur sollte nach einer bestimmten Bedingung fragen und
das Beschriftung-Argument ausführen (also setzen), wenn diese
Bedinung wahr ist.
Eine Anzahl von fertigen Prozeduren, um verschiedene Bedinungen zu testen, werden bereitgestellt:
Prozedurbezeichnung
Getestete Bedinung
print-page-number-check-first
sollte diese Seitenzahl gesetzt werden?
create-page-number-stencil
’print-page-numbers wahr?
print-all-headers
’print-all-headers wahr?
first-page
erste Seite im Buch?
(on-page nmbr)
Seitenzahl = nmbr?
last-page
letzte Seite im Buch?
not-first-page
nicht erste Seite im Buch?
part-first-page
erste Seite im book part?
part-last-page
letzte Seite im book part?
not-single-page
Seiten im book part > 1?
Das folgende Beispiel zentriert die Seitenzahlen unten auf jeder Seite.
Zuerst werden die Standardeinstellungen von oddHeaderMarkup
und
evenHeaderMarkup
entfernt, indem sie als „Null“-Beschriftung
definiert werden. Dann wird oddFooterMarkup
mit zentrierter
Seitennummer neu definiert. Schließlich erhält evenFooterMarkup
die selbe Layoutdefinition wie \oddFooterMarkup
:
\book { \paper { print-page-number = ##t print-first-page-number = ##t oddHeaderMarkup = \markup \null evenHeaderMarkup = \markup \null oddFooterMarkup = \markup { \fill-line { \if \should-print-page-number \fromproperty #'page:page-number-string } } evenFooterMarkup = \oddFooterMarkup } \score { \new Staff { s1 \break s1 \break s1 } } }
Verschiedene \on-the-fly
-Bedingungen können mit dem Operator
„UND“ verknüpft werden, beispielsweise bestimmt
\if \on-first-page \if \on-last-page { \markup ... \fromproperty #'header: ... }
ob es sich um eine einzelne Seite bei der Ausgabe handelt.
Siehe auch
Notationsreferenz:
Wie funktioniert die Titel-Umgebung?,
Standardlayout von book
- und Partitur-Titelumgebungen.
Installierte Dateien: ‘../ly/titling-init.ly’.
[ << Allgemeine Eingabe und Ausgabe ] | [Anfang][Inhalt][Index] | [ Abstände >> ] |
[ < Angepasstes Layout für Titelumgebungen ] | [ Nach oben : Eigene Kopf und Fußzeilen sowie Titel ] | [ Fußnoten erstellen > ] |