GNU LilyPond Benutzerhandbuch: 1.8.2 Formatting text

### 1.8.2 Formatting text

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

#### Text markup introduction

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.

>     a1-\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.

>     a1^"\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:

>     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 Text markup commands.

#### See also

Notationsreferenz: Text markup commands.

Schnipsel: Text.

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

#### Known issues and warnings

Syntaxfehler im Textbeschriftungsmodus können sehr verwirrend sein.

#### Selecting font and font size

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

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

Die Größe von Buchstaben kann auf verschiedene Arten verändert werden:

- die Schriftgröße kann auf bestimmte deinierte Standardgrößen gesetzt werden,
- die Schriftgröße kann mit einem absoluten Wert gesetzt werden,
- die Schriftgröße kann relativ zur vorhergehenden Größe geändert werden.

Das Beispiel unten zeigt alle drei Möglichkeiten:

>     f1_\markup {
>       \tiny espressivo
>       \large e
>       \normalsize intenso
>     }
>     a^\markup {
>       \fontsize #5 Sinfonia
>       \fontsize #2 da
>       \fontsize #3 camera
>     }
>     bes^\markup { (con
>       \larger grande
>       \smaller emozione
>       \magnify #0.6 { e sentimento } )
>     }
>     d c2 r8 c bes a g1

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 New dynamic marks und Manual repeat marks.

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 Schriftfamlien zu definieren, wie erklärt in Fonts.

#### Predefined commands

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

#### See also

Notationsreferenz: Font, New dynamic marks, Manual repeat marks, Fonts.

Schnipsel: Text.

Referenz der Interna: TextScript.

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

#### Text alignment

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

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.

>     d1-\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:

>     a1-\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 Text marks.

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.

>     d2^\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:

>     d2^\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.

#### See also

Handbuch zum Lernen: Moving objects.

Notationsreferenz: Align, Text marks.

Schnipsel: Text.

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

Referenz der Interna: TextScript.

#### Graphic notation inside markup

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:

>     c1^\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.

#### See also

Notationsreferenz: Graphic, Editorial annotations.

Schnipsel: Text.

Referenz der Interna: TextScript.

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

#### Music notation inside markup

Auch Musikobjekte können innerhalb der Textbeschriftungsumgebung gesetzt werden.

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

>     a2 a^\markup {
>       \note #"4" #1
>       =
>       \note-by-number #1 #1 #1.5
>     }
>     b1_\markup {
>       \natural \semiflat \flat
>       \sesquiflat \doubleflat
>     }
>     \glissando
>     a1_\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 The Feta font.

>     c2
>     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 Fonts explained.

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

>     c1^\markup {
>       \fret-diagram-terse #"x;x;o;2;3;2;"
>     }
>     c^\markup {
>       \harp-pedal #"^-v|--ov^"
>     }
>     c
>     c^\markup {
>       \combine
>         \musicglyph #"accordion.accDiscant"
>         \combine
>           \raise #0.5 \musicglyph #"accordion.accDot"
>           \raise #1.5 \musicglyph #"accordion.accDot"
>     }

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:

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

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

#### See also

Notationsreferenz: Music, The Feta font, Fonts explained.

Schnipsel: Text.

Referenz der Interna: TextScript.

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

#### Multi-page markup

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:

>     \markuplines {
>       \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 Text markup list commands.

#### See also

Notationsreferenz: Text markup list commands, New markup list command definition.

Schnipsel: Text.

Referenz der Interna: TextScript.

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

#### Predefined commands

`\markuplines`.

Other languages: English, français, español.

#### Notation Reference