LilyPond Benutzerhandbuch: 1.8.2 Text formatieren

### 1.8.2 Text formatieren

Dieser Abschnitt zeigt grundlegende und fortgeschrittene Formatierung von Text, wobei der Textbeschriftungsmodus (`\markup` benutzt wird.

#### Textbeschriftung (Einleitung)

Eine `\markup`-Umgebung wird benutzt, um Text mit einer großen Anzahl von Formatierungsmöglichkeiten (im „markup-Modus“) zu setzen.

Die Syntax für Textbeschriftungen ähnelt der normalen Syntax von LilyPond: ein `\markup`-Ausdruck wird in geschweifte Klammern eingeschlossen (`{… }`). Ein einzelnes Wort wird als ein Minimalausdruck erachtet und muss deshalb nicht notwendigerweise eingeklammert werden.

Anders als Text in Anführungsstrichen können sich in einer Textbeschriftungsumgebung (`\markup`) geschachtelte Ausdrücke oder weitere Textbefehle befinden, eingeführt mit einem Backslash (`\`). Derartige Befehle beziehen sich nur auf den ersten der folgenden Ausdrücke.

>     \relative {
>       a'1-\markup intenso
>       a2^\markup { poco \italic più forte  }
>       c e1
>       d2_\markup { \italic "string. assai" }
>       e
>       b1^\markup { \bold { molto \italic  agitato } }
>       c
>     }

Eine `\markup`-Umgebung kann auch Text in Anführungszeichen beinhalten. Derartige Zeichenketten werden als ein Textausdruck angesehen, und darum werden innerhalb von ihnen Befehle oder Sonderzeichen (wie `\` oder `#`) so ausgegeben, wie sie eingeben werden. Doppelte Anführungsstriche können gesetzt werden, indem man ihnen einen Backslash voranstellt.

>     \relative {
>       a'1^"\italic Text..."
>       a_\markup { \italic "... setzt \"kursive\" Buchstaben!" }
>       a a
>     }

Damit eine Anzahl von Wörtern als ein einziger Ausdruck behandelt wird, müssen alle Wörter zwischen geraden Anführungszeichen (Shift+2) stehen oder ihnen muss ein Befehl vorangestellt werden. Die Art, wie die Ausdrücke definiert sind, wirkt sich darauf aus, wie sie übereinander gestapelt, mittig und aneinander ausgerichtet werden. Im folgenden Beispiel verhält sich der zweite `\markup`-Ausdruck genauso wie der erste:

>     \relative c'' {
>       c1^\markup { \center-column { a bbb c } }
>       c1^\markup { \center-column { a { bbb c } } }
>       c1^\markup { \center-column { a \line { bbb c } } }
>       c1^\markup { \center-column { a "bbb c" } }
>     }

Textbeschriftung kann auch durch Variablen definiert werden. Diese Variablen können dann direkt an Noten angefügt werden:

>     allegro = \markup { \bold \large Allegro }

>     {
>       d''8.^\allegro
>       d'16 d'4 r2
>     }

Eine ausführliche Liste der `\markup`-Befehle findet sich in Textbeschriftungsbefehle.

#### Siehe auch

Notationsreferenz: Textbeschriftungsbefehle.

Schnipsel: Text.

Installierte Dateien: ‘`scm/markup.scm`’.

#### Bekannte Probleme und Warnungen

Syntaxfehler im Textbeschriftungsmodus können sehr verwirrend sein.

#### Überblick über die wichtigsten Textbeschriftungsbefehle

Einfache Änderungen des Schriftartschnitts können im Textbeschriftungsmodus vorgenommen werden:

>     \relative {
>       d''1^\markup {
>         \bold { Più mosso }
>         \italic { non troppo \underline Vivo }
>       }
>       r2 r4 r8
>       d,_\markup { \italic quasi \smallCaps Tromba }
>       f1 d2 r
>     }

Die Schriftgröße kann auf verschiedene Arten verändert werden, relativ zur globalen Notensystemgröße:

Sie kann auf eine vordefinierte Größe gesetzt werden:

>     \relative b' {
>       b1_\markup { \huge Sinfonia }
>       b1^\markup { \teeny da }
>       b1-\markup { \normalsize camera }
>     }

Sie kann relativ zum vorherigen Wert gesetzt werden:

>     \relative b' {
>       b1_\markup { \larger Sinfonia }
>       b1^\markup { \smaller da }
>       b1-\markup { \magnify #0.6  camera }
>     }

Sie kann vergrößert oder verkleinert werden relativ zum Wert, der von der globalen Notensystemgröße vorgegeben wird:

>     \relative b' {
>       b1_\markup { \fontsize #-2 Sinfonia }
>       b1^\markup { \fontsize #1 da }
>       b1-\markup { \fontsize #3 camera }
>     }

Sie kann auch auf eine bestimmte Punktegröße festgelegt werden, unabhängig von der globalen Notensystemgröße:

>     \relative b' {
>       b1_\markup { \abs-fontsize #20 Sinfonia }
>       b1^\markup { \abs-fontsize #8 da }
>       b1-\markup { \abs-fontsize #14 camera }
>     }

Text kann auch hoch- bzw. tiefgestellt gesetzt werden. Die so markierten Buchstaben werden automatisch in einer kleineren Schriftgröße gesetzt, aber die normale Schriftgröße kann auch eingesetzt werden:

>     \markup {
>       \column {
>         \line { 1 \super st movement }
>         \line { 1 \normal-size-super st movement
>           \sub { (part two) }  }
>       }
>     }

Der Textbeschriftungsmodus stellt eine einfache Möglichkeit zur Verfügung unterschiedliche Schriftschnitte anzuwählen. Ohne besondere Einstellungen wird automatisch eine Schriftart mit Serifen ausgewählt. Das Beispiel unten zeigt die Verwendung der eigenen Zahlenschriftart von LilyPond, den Einsatz von serifenloser Schriftart und von Schreibmaschinenschriftart. Die letzte Zeile zeigt, dass sich die Standardeinstellung mit dem Befehl `\roman` wieder herstellen lässt.

>     \markup {
>       \column {
>         \line { Act \number 1 }
>         \line { \sans { Scene I. } }
>         \line { \typewriter { Verona. An open place. } }
>         \line { Enter \roman Valentine and Proteus. }
>       }
>     }

Einige dieser Schriftarten, etwa die Zahlenschriftart oder die Schriftart für Dynamikzeichen, stellen nicht alle Zeichen zur Verfügung, wie beschrieben in Neue Lautstärkezeichen und Manuelle Wiederholungszeichen.

Einige Schriftartbefehle können ungewollte Leerzeichen innerhalb von Wörtern hervorrufen. Das kann vermieden werden, indem die einzelnen Elemente mit dem Befehl `\concat` zu einem Element verschmolzen werden:

>     \markup {
>       \column {
>         \line {
>           \concat { 1 \super st }
>           movement
>         }
>         \line {
>           \concat { \dynamic p , }
>           \italic { con dolce espressione }
>         }
>       }
>     }

Eine ausführliche Liste der unterschiedlichen Befehl zur Beeinflussung der Schriftarten findet sich in Font.

Es ist auch möglich, eigene Schriftfamilien zu definieren, wie erklärt in Schriftarten.

#### Vordefinierte Befehle

`\teeny`, `\tiny`, `\small`, `\normalsize`, `\large`, `\huge`, `\smaller`, `\larger`.

#### Siehe auch

Notationsreferenz: Font, Neue Lautstärkezeichen, Manuelle Wiederholungszeichen, Schriftarten.

Installierte Dateien: ‘`scm/define-markup-commands.scm`’.

Schnipsel: Text.

Referenz der Interna: TextScript.

#### Bekannte Probleme und Warnungen

Wenn die Befehle `\teeny`, `\tiny`, `\small`, `\normalsize`, `\large` und `\huge` eingesetzt werden, erhält man schlechte Zeilenabstände verglichen mit `\fontsize`.

#### Textausrichtung

Dieser Abschnitt zeigt, wie man Text im Textbeschriftungsmodus eingibt. Textobjekte können auch als eine Einheit verschoben werden, wie beschrieben in Verschieben von Objekten.

Textbeschriftungsobjekte können auf verschiedene Weise ausgerichtet werden. Standardmäßig wird ein Textobjekt an seiner linken Ecke ausgerichtet, darum wird das erste und zweite Objekt gleichermaßen an der linken Ecke ausgerichtet.

>     \relative {
>       d''1-\markup { poco }
>       f
>       d-\markup { \left-align poco }
>       f
>       d-\markup { \center-align { poco } }
>       f
>       d-\markup { \right-align poco }
>     }

Die horizontale Ausrichtung kann mit einer Zahl auf einen exakten Wert festgelegt werden:

>     \relative {
>       a'1-\markup { \halign #-1 poco }
>       e'
>       a,-\markup { \halign #0 poco }
>       e'
>       a,-\markup { \halign #0.5 poco }
>       e'
>       a,-\markup { \halign #2 poco }
>     }

Manche Objekte haben eigene Ausrichtungsvorgänge und werden deshalb nicht von diesen Befehlen beeinflusst. Es ist möglich, solche Objekte als eine Einheit anzusprechen und zu bewegen, wie gezeigt in Textartige Zeichen.

Die vertikale Ausrichtung ist etwas schwieriger. Textelemente können komplett verschoben werden, es ist aber auch möglich, nur einen Teil innerhalb der Textbeschriftung zu bewegen. In diesem Fall muss dem zu verschiebenden Objekt ein Ankerpunkt zugewiesen werden, welcher entweder ein anderes Textelement oder ein unsichtbares Objekt sein kann (im Beispiel mit `\null` erstellt). Der letzte Text im Beispiel hat keinen Anker und wird deshalb auch nicht verschoben.

>     \relative {
>       d'2^\markup {
>         Acte I
>         \raise #2 { Scène 1 }
>       }
>       a'
>       g_\markup {
>         \null
>         \lower #4 \bold { Très modéré }
>       }
>       a
>       d,^\markup {
>         \raise #4 \italic { Une forêt. }
>       }
>       a'4 a g2 a
>     }

Einige Befehle können sowohl die horizontale als auch die vertikale Ausrichtung von Textobjekten beeinflussen. Jedes Objekt, das auf diese Weise verschoben wird, benötigt einen Anker:

>     \relative {
>       d'2^\markup {
>         Acte I
>         \translate #'(-1 . 2) "Scène 1"
>       }
>       a'
>       g_\markup {
>         \null
>         \general-align #Y #3.2 \bold "Très modéré"
>       }
>       a
>       d,^\markup {
>         \null
>         \translate-scaled #'(-1 . 2) \teeny "Une forêt."
>       }
>       a'4 a g2 a
>     }

Ein Textbeschriftungsobjekt kann mehrere Zeilen beinhalten. Im folgenden Beispiel wird jeder Ausdruck innerhalb von `\markup` auf einer eigenen Zeile gesetzt, entweder linksbündig oder zentriert:

>     \markup {
>       \column {
>         a
>         "b c"
>         \line { d e f }
>       }
>       \hspace #10
>       \center-column {
>         a
>         "b c"
>         \line { d e f }
>       }
>     }

Eine Anzahl an Ausdrücken innerhalb von `\markup` kann auch gestreckt werden, so dass die gesamte Seitenbreite benutzt wird. Wenn nur ein Objekt vorhanden ist, wird es zentriert gesetzt. Die Ausdrücke selber können wiederum mehrzeilig sein und andere Textbeschriftungsbefehle beinhalten.

>     \markup {
>       \fill-line {
>         \line { William S. Gilbert }
>         \center-column {
>           \huge \smallCaps "The Mikado"
>           or
>           \smallCaps "The Town of Titipu"
>         }
>         \line { Sir Arthur Sullivan }
>       }
>     }
>     \markup {
>       \fill-line { 1885 }
>     }

Längere Texte können auch automatisch umgebrochen werden, wobei es möglich ist, die Zeilenbreite zu bestimmen. Der Text ist entweder linksbündig oder im Blocksatz, wie das nächste Beispiel illustriert:

>     \markup {
>       \column {
>         \line  \smallCaps { La vida breve }
>         \line \bold { Acto I }
>         \wordwrap \italic {
>           (La escena representa el corral de una casa de
>           gitanos en el Albaicín de Granada.  Al fondo una
>           puerta por la que se ve el negro interior de
>           una Fragua, iluminado por los rojos resplandores
>           del fuego.)
>         }
>         \hspace #0

>         \line \bold { Acto II }
>         \override #'(line-width . 50)
>         \justify \italic {
>           (Calle de Granada.  Fachada de la casa de Carmela
>           y su hermano Manuel con grandes ventanas abiertas
>           a través de las que se ve el patio
>           donde se celebra una alegre fiesta)
>         }
>       }
>     }

Eine vollständige Liste der Textausrichtungsbefehle findet sich in Align.

#### Siehe auch

Handbuch zum Lernen: Verschieben von Objekten.

Notationsreferenz: Align, Textartige Zeichen.

Installierte Dateien: ‘`scm/define-markup-commands.scm`’.

Schnipsel: Text.

Referenz der Interna: TextScript.

#### Graphische Notation innerhalb einer Textbeschriftung

Verschiedene graphische Objekte können im Textbeschriftungsmodus eingefügt werden.

Mit bestimmten Textbeschriftungsbefehlen kann man Textelementen Graphik hinzufügen, wie das nächste Beispiel zeigt:

>     \markup \fill-line {
>       \center-column {
>         \circle Jack
>         \box "in the box"
>         \null
>         \line {
>           Erik Satie
>           \hspace #3
>           \bracket "1866 - 1925"
>         }
>         \null
>         \rounded-box \bold Prelude
>       }
>     }

Es kann nötig sein, einem Text mehr Platz einzuräumen. Das geschieht mit verschiedenen Befehlen, wie das folgende Beispiel zeigt. Eine ausführliche Übersicht findet sich in Align.

>     \markup \fill-line {
>       \center-column {
>         \box "Charles Ives (1874 - 1954)"
>         \null
>         \box \pad-markup #2 "THE UNANSWERED QUESTION"
>         \box \pad-x #8 "A Cosmic Landscape"
>         \null
>       }
>     }
>     \markup \column {
>       \line {
>         \hspace #10
>         \box \pad-to-box #'(-5 . 20) #'(0 . 5)
>           \bold "Largo to Presto"
>       }
>       \pad-around #3
>           "String quartet keeps very even time,
>     Flute quartet keeps very uneven time."
>     }

Andere graphische Elemente oder Symbole können gesetzt werden, ohne dass man Text benötigt. Wie mit allen Textbeschriftungen können Objekte innerhalb von `\markup` kombiniert werden.

>     \markup {
>       \combine
>         \draw-circle #4 #0.4 ##f
>         \filled-box #'(-4 . 4) #'(-0.5 . 0.5) #1
>       \hspace #5

>       \center-column {
>         \triangle ##t
>         \combine
>           \draw-line #'(0 . 4)
>           \arrow-head #Y #DOWN ##f
>       }
>     }

Fortgeschrittene graphische Möglichkeiten bietet unter Anderem eine Funktion, mit der man externe Graphiken im Encapsulated PostScript (eps) -Format einbinden kann oder aber Graphiken direkt in den Quelltext unter Verwendung von PostScript-Code notiert. In diesem Fall kann es nötig sein, die Größe der Zeichnung explizit anzugeben, wie im Beispiel unten gezeigt:

>     c'1^\markup {
>       \combine
>         \epsfile #X #10 "./context-example.eps"
>         \with-dimensions #'(0 . 6) #'(0 . 10)
>         \postscript "
>           -2 3 translate
>           2.7 2 scale
>           newpath
>           2 -1 moveto
>           4 -2 4 1 1 arct
>           4 2 3 3 1 arct
>           0 4 0 3 1 arct
>           0 0 1 -1 1 arct
>           closepath
>           stroke"
>       }
>     c'

Eine ausführliche Liste der Graphik-Befehle findet sich in Graphic.

#### Siehe auch

Notationsreferenz: Graphic, Anmerkungen, Align.

Installierte Dateien: ‘`scm/define-markup-commands.scm`’, ‘`scm/stencil.scm`’.

Schnipsel: Text.

Referenz der Interna: TextScript.

#### Musikalische Notation innerhalb einer Textbeschriftung

Auch Musikobjekte können innerhalb der Textbeschriftungsumgebung gesetzt werden.

Noten und Versetzungszeichen lassen sich mit `\markup` einfügen:

>     a'2 a'^\markup {
>       \note {4} #1
>       =
>       \note-by-number #1 #1 #1.5
>     }
>     b'1_\markup {
>       \natural \semiflat \flat
>       \sesquiflat \doubleflat
>     }
>     \glissando
>     a'1_\markup {
>       \natural \semisharp \sharp
>       \sesquisharp \doublesharp
>     }
>     \glissando b'

Andere Notationsobjekte können auch eingefügt werden:

>     g1 bes
>     ees-\markup {
>       \finger 4
>       \tied-lyric "~"
>       \finger 1
>     }
>     fis_\markup { \dynamic rf }
>     bes^\markup {
>       \beam #8 #0.1 #0.5
>     }
>     cis
>     d-\markup {
>       \markalphabet #8
>       \markletter #8
>     }

Allgemeiner gesagt kann jedes verfügbare Notationssymbol unabhängig von der Notation als ein Textbeschriftungsobjekt eingefügt werden, wie unten gezeigt. Eine vollständige Liste der verfügbaren Symbole findet sich in Die Emmentaler-Schriftart.

>     \relative {
>       c''2
>       c'^\markup { \musicglyph "eight" }
>       c,4
>       c,8._\markup { \musicglyph "clefs.G_change" }
>       c16
>       c2^\markup { \musicglyph "timesig.neomensural94" }
>     }

Eine andere Möglichkeit, andere als Textsymbole zu schreiben, findet sich in Was sind Schriftarten. Diese Methode bietet sich an, um Klammern unterschiedlicher Größe zu setzen.

Der Textbeschriftungsmodus unterstützt auch Diagramme für bestimmte Instrumente:

>     \relative {
>       c''1^\markup {
>         \fret-diagram-terse "x;x;o;2;3;2;"
>       }
>       c^\markup {
>         \harp-pedal "^-v|--ov^"
>       }
>       c
>       c^\markup {
>         \combine
>           \musicglyph "accordion.discant"
>           \combine
>     	\raise #0.5 \musicglyph "accordion.dot"
>     	\raise #1.5 \musicglyph "accordion.dot"
>       }
>     }

Derartige Digramme sind dokumentiert in Instrument Specific Markup.

Sogar eine ganze Partitur kann in ein Textbeschriftungsobjekt eingefügt werden. In diesem Fall muss die eingefügte `\score`-Umgebung eine `\layout`-Umgebung haben, wie in diesem Beispiel:

>     \relative {
>       c'4 d^\markup {
>         \score {
>           \relative { c'4 d e f }
>           \layout { }
>         }
>       }
>       e f |
>       c d e f
>     }

Eine vollständige Liste der Musiksymbol-Befehle findet sich in Music.

#### Siehe auch

Notationsreferenz: Music, Die Emmentaler-Schriftart, Was sind Schriftarten.

Installierte Dateien: ‘`scm/define-markup-commands.scm`’, ‘`scm/fret-diagrams.scm`’, ‘`scm/harp-pedals.scm`’.

Schnipsel: Text.

Referenz der Interna: TextScript.

#### Textbeschriftung über mehrere Seiten

Normale Textbeschriftungsobjekte können nicht getrennt werden, aber mit einer spezifischen Umgebung ist es möglich, Text auch über mehrere Seiten fließen zu lassen:

>     \markuplist {
>       \justified-lines {
>         A very long text of justified lines.
>         ...
>       }
>       \wordwrap-lines {
>         Another very long paragraph.
>         ...
>       }
>       ...
>     }

Die Syntax braucht eine Liste von Textbeschriftungen folgender Art:

- das Resultat eines Beschriftungslistenbefehls,
- eine Textbeschriftungsliste,
- eine Liste von Beschriftungslisten.

Eine vollständige Liste der Beschriftungslistenbefehle findet sich in Textbeschriftungslistenbefehle.

#### Siehe auch

Notationsreferenz: Textbeschriftungslistenbefehle.

Erweitern: Neue Definitionen von Beschriftungslistenbefehlen.

Installierte Dateien: ‘`scm/define-markup-commands.scm`’.

Schnipsel: Text.

Referenz der Interna: TextScript.

#### Vordefinierte Befehle

`\markuplist`.

#### LilyPond – Notationsreferenz v2.24.4 (stabiler Zweig).