[ << Musikalische Notation ] | [Anfang][Inhalt][Index] | [ Spezielle Notation >> ] |
[ < Separater Text ] | [ Nach oben : Text ] | [ Textbeschriftung (Einleitung) > ] |
1.8.2 Text formatieren
Dieser Abschnitt zeigt grundlegende und fortgeschrittene
Formatierung von Text, wobei der Textbeschriftungsmodus
(\markup
benutzt wird.
[ << Musikalische Notation ] | [Anfang][Inhalt][Index] | [ Spezielle Notation >> ] |
[ < Text formatieren ] | [ Nach oben : Text formatieren ] | [ Überblick über die wichtigsten Textbeschriftungsbefehle > ] |
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.
[ << Musikalische Notation ] | [Anfang][Inhalt][Index] | [ Spezielle Notation >> ] |
[ < Textbeschriftung (Einleitung) ] | [ Nach oben : Text formatieren ] | [ Textausrichtung > ] |
Ü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.
[ << Musikalische Notation ] | [Anfang][Inhalt][Index] | [ Spezielle Notation >> ] |
[ < Textausrichtung ] | [ Nach oben : Text formatieren ] | [ Musikalische Notation innerhalb einer Textbeschriftung > ] |
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.
[ << Musikalische Notation ] | [Anfang][Inhalt][Index] | [ Spezielle Notation >> ] |
[ < Musikalische Notation innerhalb einer Textbeschriftung ] | [ Nach oben : Text formatieren ] | [ Schriftarten > ] |
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
.
[ << Musikalische Notation ] | [Anfang][Inhalt][Index] | [ Spezielle Notation >> ] |
[ < Musikalische Notation innerhalb einer Textbeschriftung ] | [ Nach oben : Text formatieren ] | [ Schriftarten > ] |