@c -*- coding: utf-8; mode: texinfo; documentlanguage: de -*- @c This file is part of lilypond.tely @ignore Translation of GIT committish: 4a527608c5ff2ce31e596495d00dce181dc1b9ea When revising a translation, copy the HEAD committish of the version that you are working on. See TRANSLATION for details. @end ignore @c \version "2.11.61" @node Text @section Text @lilypondfile[quote]{text-headword.ly} Dieser Abschnitt erklärt, wie man Text (mit vielfältiger Formatierung) in Partituren einfügt. @noindent Einige Textelemente, die hier nicht behandelt werden, finden sich in anderen Abschnitten: @ref{Vocal music}, @ref{Titles and headers}. @menu * Writing text:: * Formatting text:: * Fonts:: @end menu @cindex Text, andere Sprachen @warning{Wenn man Zeichen mit Akzenten und Umlaute oder besondere Zeichen (wie etwa Text mit anderen Alphabeten) eingeben möchte, kann man die Zeichen einfach direkt in die Datei einfügen. Die Datei muss als UTF-8 gespeichert werden. Für mehr Information siehe @ref{Text encoding}.} @node Writing text @subsection Writing text Dieser Abschnitt zeigt verschiedene Arten, wie Text in die Partitur eingefügt werden kann. @menu * Text scripts:: * Text spanners:: * Text marks:: * Separate text:: @end menu @node Text scripts @unnumberedsubsubsec Text scripts @cindex Textarten @cindex Textelemente, nicht leer @cindex zitierter Text Am einfachsten kann Text mit geraden Anführungsstrichen in eine Partitur eingefügt werden, wie das folgende Beispiel zeigt. Derartiger Text kann manuell über oder unter dem Notensystem platziert werden, die Syntax hierzu ist beschrieben in @ref{Direction and placement}. @lilypond[quote,fragment,ragged-right,verbatim,relative=1] d8^"pizz." e f g a4-"scherz." f @end lilypond Diese Syntax ist eine Kurzform, komplexere Formatierungen können einem Text hinzugefügt werden, wenn man explizit den @code{\markup}-Befehl mit darauf folgenden geschweiften Klammern einsetzt, wie beschrieben in @ref{Formatting text}. @lilypond[quote,fragment,ragged-right,verbatim,relative=1] d8^\markup { \italic pizz. } e f g a4_\markup { \tiny scherz. \bold molto } f @end lilypond Standardmäßig haben Textbeschriftungen keinen Einfluss auf die Positionierung der Noten. Man kann aber auch bestimmen, dass die Breite des Textes mit berücksichtigt wird. Im nächsten Beispiel fordert der erste Text keinen Platz, während der zweite die Note nach rechts verschiebt. Das Verhalten wird mit dem Befehl @code{\textLengthOn} (Textlänge an) erreicht, rückgängig kann es mit dem Befehl @code{\textLengthOff} gemacht werden. @lilypond[quote,fragment,ragged-right,verbatim,relative=1] d8^"pizz." e f g \textLengthOn a4_"scherzando" f @end lilypond @predefined @funindex \textLengthOn @code{\textLengthOn}, @funindex \textLengthOff @code{\textLengthOff} @seealso Notationsreferenz: @ref{Formatting text}, @ref{Direction and placement}. Schnipsel: @rlsr{Text}. Referenz der Interna: @rinternals{TextScript}. @knownissues Eine Überprüfung, ob sich auch alle Textbeschriftungen und Gesangstext innerhalb der Ränder der Noten befinden, braucht verhältnismäßig viel Rechenaufwand. Diese Überprüfung ist standardmäßig ausgestellt, damit LilyPond die Dateien schneller bearbeiten kann. Man kann die Überprüfung aber mit folgendem Code einschalten: @example \override Score.PaperColumn #'keep-inside-line = ##t @end example @node Text spanners @unnumberedsubsubsec Text spanners @cindex Textstrecker @cindex Strecker, Text Einige Aufführungsanweisungen, etwa @notation{rallentando} oder @notation{accelerando}, werden als Text geschrieben, gefolgt von einer gestrichelten Linie, die anzeigt, wie weit sich die Anweisung auswirkt. Solche Objekte, @qq{Strecker} (engl. spanners) genannt, können von einer Note bis zu einer anderen mit folgender Anweisung erstellt werden: @lilypond[verbatim,quote,ragged-right,fragment,relative=2] \override TextSpanner #'bound-details #'left #'text = "rit." b1\startTextSpan e,\stopTextSpan @end lilypond @noindent Der Text wird durch Objekteigenschaften beeinflusst. In den Standardeinstellungen wird er kursiv ausgegeben, aber eine andere Formatierung kann erreicht werden, indem man @code{\markup}-Blöcke einsetzt, wie beschrieben in @ref{Formatting text}. @lilypond[quote,ragged-right,fragment,relative=2,verbatim] \override TextSpanner #'bound-details #'left #'text = \markup { \upright "rit." } b1\startTextSpan c e,\stopTextSpan @end lilypond Auch der Stil der Linie kann ähnlich wie der Text mit den Objekteigenschaften geändert werden. Diese Syntax ist beschrieben in @ref{Line styles}. @predefined @funindex textSpannerUp @code{\textSpannerUp}, @funindex textSpannerDown @code{\textSpannerDown}, @funindex textSpannerNeutral @code{\textSpannerNeutral} @seealso Notationsreferenz: @ref{Line styles}, @ref{Dynamics}. Schnipsel: @rlsr{Text}. Referenz der Interna: @rinternals{TextSpanner}. @node Text marks @unnumberedsubsubsec Text marks @cindex Coda an Taktlinie @cindex Segno an Taktlinie @cindex Fermate an Taktlinie @cindex Taktlinie, Symbole anfügen @cindex Symbole auf der Taktlinie @funindex \mark Verschiedene Textelemente können der Partitur hinzugefügt werden, indem man die Syntax für Zeichen einsetzen, wie beschrieben in @ref{Rehearsal marks}: @c \mark needs to be placed on a separate line (it's not @c attached to an object like \markup is). -vv @lilypond[verbatim,quote,ragged-right,fragment,relative=2] c4 \mark "Allegro" c c c @end lilypond Diese Syntax ermöglicht es, beliebigen Text über eine Taktlinie zu platzieren, weitere Formatierungsmöglichkeiten sind mit dem @code{\markup}-Befehl gegeben, wie beschrieben in @ref{Formatting text}: @lilypond[fragment,quote,ragged-right,verbatim,relative=1] 1 \mark \markup { \italic { colla parte } } 2 1 @end lilypond @noindent Diese Syntax ermöglicht es auch, besondere Zeichen einzufügen, wie etwa Coda-, Segno- oder Fermatenzeichen, indem das entsprechende Symbol mit dem Befehl @code{\musicglyph} angegeben wird, wie beschrieben in @ref{Music notation inside markup}: @lilypond[fragment,quote,ragged-right,verbatim,relative=1] 2 \mark \markup { \musicglyph #"scripts.ufermata" } 1 @end lilypond @noindent Derartige Objekte werden über dem höchsten System einer Partitur gesetzt -- abhängig davon, ob sie mitten im Takt oder an seinem Ende notiert werden, werden sie zwischen Noten oder über der Taktlinie gesetzt. Wenn sie an einem Zeilenumbruch angegeben werden, wird das Zeichen zu Beginn der nächsten Zeile ausgegeben. @lilypond[fragment,quote,ragged-right,verbatim,relative=2] \mark "Allegro" c1 c \mark "assai" \break c c @end lilypond @snippets @lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle] {printing-marks-at-the-end-of-a-line-or-a-score.ly} @lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle] {aligning-marks-with-various-notation-objects.ly} @lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle] {printing-marks-on-every-staff.ly} @seealso Notationsreferenz: @ref{Rehearsal marks}, @ref{Formatting text}, @ref{Music notation inside markup}, @ref{The Feta font}. Schnipsel: @rlsr{Text}. Referenz der Interna: @rinternals{RehearsalMark}. @knownissues @c To be removed when Issue 69 in the tracker gets fixed. -vv Wenn ein Zeichen am Ende des letzten Taktes eines Stückes notiert wird (wo also keine nächste Zeile mehr existiert), wird das Zeichen überhaupt nicht gesetzt. @node Separate text @unnumberedsubsubsec Separate text @cindex separater Text @cindex Text alleine @cindex nur Text @funindex \markup Eine @code{\markup}-Umgebung kann auch für sich alleine existieren, außerhalb einer @code{\score}-Umgebung, als ein Ausdruck auf der höchsten Ebene. @c KEEP LY @lilypond[verbatim,quote] \markup { Morgen, morgen, und morgen... } @end lilypond @noindent Damit kann Text unabhängig von den Noten gesetzt werden. Das bietet sich vor allem in Situationen an, in denen mehrere Stücke in einer Datei vorkommen, wie beschrieben in @ref{Multiple scores in a book}. @c KEEP LY @lilypond[quote,ragged-right,verbatim] \score { c'1 } \markup { Morgen, übermorgen, und überübermorgen... } \score { c'1 } @end lilypond Unabhängige Textabschnitte können über mehrere Seiten reichen, so dass man Textdokumente oder Bücher ausschließlich mit LilyPond setzen kann. Einzelheiten zu den vielfältigen Möglichkeiten finden sich in @ref{Multi-page markup}. @predefined @code{\markup}, @funindex \markuplines @code{\markuplines} @ignore @snippets TODO: add convenient snippets in input/new -vv @end ignore @seealso Notationsreferenz: @ref{Formatting text}, @ref{File structure}, @ref{Multiple scores in a book}, @ref{Multi-page markup}. Schnipsel: @rlsr{Text}. Referenz der Interna: @rinternals{TextScript}. @node Formatting text @subsection Formatting text Dieser Abschnitt zeigt grundlegende und fortgeschrittene Formatierung von Text, wobei der Textbeschriftungsmodus (@code{\markup} benutzt wird. @menu * Text markup introduction:: * Selecting font and font size:: * Text alignment:: * Graphic notation inside markup:: * Music notation inside markup:: * Multi-page markup:: @end menu @node Text markup introduction @unnumberedsubsubsec Text markup introduction @cindex markup @cindex Textbeschriftung @cindex Beschriftung, Text @cindex Setzen von Text @funindex \markup Eine @code{\markup}-Umgebung wird benutzt, um Text mit einer großen Anzahl von Formatierungsmöglichkeiten (im @qq{markup-Modus}) zu setzen. @cindex Textbeschriftungs-Ausdrücke @cindex Text, Syntax @cindex markup, syntax Die Syntax für Textbeschriftungen ähnelt der normalen Syntax von LilyPond: ein @code{\markup}-Ausdruck wird in geschweifte Klammern eingeschlossen (@code{@{@dots{} @}}). 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 (@code{\markup}) geschachtelte Ausdrücke oder weitere Textbefehle befinden, eingeführt mit einem Backslash (@code{\}). Derartige Befehle beziehen sich nur auf den ersten der folgenden Ausdrücke. @lilypond[quote,verbatim,fragment,relative=1] e1-\markup intenso a2^\markup { poco \italic più forte } c e1 d2_\markup { \italic "string. assai" } e b1^\markup { \bold { molto \italic agitato } } c @end lilypond @cindex Sonderzeichen in Textbeschriftungen @cindex Textbeschriftung, Sonderzeichen @cindex besondere Zeichen, Text @cindex Text mit Sonderzeichen @cindex Anführungsstriche im Text Eine @code{\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 @code{\} oder @code{#}) so ausgegeben, wie sie eingeben werden. Doppelte Anführungsstriche können gesetzt werden, indem man ihnen einen Backslash voranstellt. @c KEEP LY @lilypond[quote,verbatim,fragment,relative=1] d1^"\italic Text..." d_\markup { \italic "... setzt \"kursive\" Buchstaben!" } d d @end lilypond 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 @code{\markup}-Ausdruck genauso wie der erste: @lilypond[quote,verbatim,fragment,relative=1] 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" } } @end lilypond Textbeschriftung kann auch durch Variblen definiert werden. Diese Variablen können dann direkt an Noten angefügt werden: @lilypond[quote,verbatim] allegro = \markup { \bold \large Allegro } { d''8.^\allegro d'16 d'4 r2 } @end lilypond @noindent Eine ausführliche Liste der @code{\markup}-Befehle findet sich in @ref{Text markup commands}. @seealso Notationsreferenz: @ref{Text markup commands}. Schnipsel: @rlsr{Text}. Installierte Dateien: @file{scm/@/markup@/.scm}. @knownissues Syntaxfehler im Textbeschriftungsmodus können sehr verwirrend sein. @node Selecting font and font size @unnumberedsubsubsec Selecting font and font size @cindex Schriftschnitt verändern @funindex \italic @funindex \bold @funindex \underline Einfache Änderungen des Schriftartschnitts können im Textbeschriftungsmodus vorgenommen werden: @lilypond[quote,verbatim,relative=2] d1^\markup { \bold { Più mosso } \italic { non troppo \underline Vivo } } r2 r4 r8 d,_\markup { \italic quasi \smallCaps Tromba } f1 d2 r @end lilypond @cindex Schriftgröße @cindex Textgröße @cindex Größe der Schriftart @funindex \fontsize @funindex \smaller @funindex \larger @funindex \magnify Die Größe von Buchstaben kann auf verschiedene Arten verändert werden: @itemize @item die Schriftgröße kann auf bestimmte deinierte Standardgrößen gesetzt werden, @item die Schriftgröße kann mit einem absoluten Wert gesetzt werden, @item die Schriftgröße kann relativ zur vorhergehenden Größe geändert werden. @end itemize @noindent Das Beispiel unten zeigt alle drei Möglichkeiten: @lilypond[quote,verbatim,relative=1] 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 @end lilypond @cindex hochgestellt @cindex tiefergestellt @funindex \super @funindex \sub 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: @lilypond[quote,verbatim] \markup { \column { \line { 1 \super st movement } \line { 1 \normal-size-super st movement \sub { (part two) } } } } @end lilypond @cindex Schriftfamilien @cindex Schriftschnitte 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 @code{\roman} wieder herstellen lässt. @lilypond[quote,verbatim] \markup { \column { \line { Act \number 1 } \line { \sans { Scene I. } } \line { \typewriter { Verona. An open place. } } \line { Enter \roman Valentine and Proteus. } } } @end lilypond @noindent Einige dieser Schriftarten, etwa die Zahlenschriftart oder die Schriftart für Dynamikzeichen, stellen nicht alle Zeichen zur Verfügung, wie beschrieben in @ref{New dynamic marks} und @ref{Manual repeat marks}. @c \concat is actually documented in Align (it is not @c a font-switching command). But we need it here. -vv Einige Schriftartbefehle können ungewollte Leerzeichen innerhalb von Wörtern hervorrufen. Das kann vermieden werden, indem die einzelnen Elemente mit dem Befehl @code{\concat} zu einem Element verschmolzen werden: @lilypond[quote,verbatim] \markup { \column { \line { \concat { 1 \super st } movement } \line { \concat { \dynamic p , } \italic { con dolce espressione } } } } @end lilypond Eine ausführliche Liste der unterschiedlichen Befehl zur Beeinflussung der Schriftarten findet sich in @ref{Font}. Es ist auch möglich, eigene Schriftfamlien zu definieren, wie erklärt in @ref{Fonts}. @predefined @funindex \teeny @funindex \tiny @funindex \small @funindex \normalsize @funindex \large @funindex \huge @funindex \smaller @funindex \larger @code{\teeny}, @code{\tiny}, @code{\small}, @code{\normalsize}, @code{\large}, @code{\huge}, @code{\smaller}, @code{\larger}. @seealso Notationsreferenz: @ref{Font}, @ref{New dynamic marks}, @ref{Manual repeat marks}, @ref{Fonts}. Schnipsel: @rlsr{Text}. Referenz der Interna: @rinternals{TextScript}. Installierte Dateien: @file{scm/@/define@/-markup@/-commands@/.scm}. @node Text alignment @unnumberedsubsubsec Text alignment @cindex Text, Ausrichtung @cindex Ausrichtung von Text Dieser Abschnitt zeigt, wie man Text im Textbeschriftungsmodus eingibt. Textobjekte können auch als eine Einheit verschoben werden, wie beschrieben in @rlearning{Moving objects}. @c Padding commands should be mentioned on this page, but @c most of these require \box to be more clearly illustrated. -vv @cindex Text, horizontale Ausrichtung @cindex horizontale Ausrichtung von Text @funindex \left-align @funindex \center-align @funindex \right-align 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. @lilypond[quote,verbatim,fragment,relative=1] d1-\markup { poco } f d-\markup { \left-align poco } f d-\markup { \center-align { poco } } f d-\markup { \right-align poco } @end lilypond @funindex \halign Die horizontale Ausrichtung kann mit einer Zahl auf einen exakten Wert festgelegt werden: @lilypond[quote,verbatim,fragment,relative=1] a1-\markup { \halign #-1 poco } e' a,-\markup { \halign #0 poco } e' a,-\markup { \halign #0.5 poco } e' a,-\markup { \halign #2 poco } @end lilypond @noindent 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 @ref{Text marks}. @cindex Text, vertikale Ausrichtung @cindex vertickale Ausrichtung von Text @funindex \raise @funindex \lower 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 @code{\null} erstellt). Der letzte Text im Beispiel hat keinen Anker und wird deshalb auch nicht verschoben. @lilypond[quote,verbatim,fragment,relative=1] 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 @end lilypond @funindex \general-align @funindex \translate @funindex \translate-scaled 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: @lilypond[quote,verbatim,fragment,relative=1] 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 @end lilypond @funindex \column @funindex \center-column @cindex mehrzeiliger Text @cindex Text, mehrere Zeilen @cindex Blöcke, Text @cindex Textblöcke Ein Textbeschriftungsobjekt kann mehrere Zeilen beinhalten. Im folgenden Beispiel wird jeder Ausdruck innerhalb von @code{\markup} auf einer eigenen Zeile gesetzt, entweder linksbündig oder zentriert: @lilypond[quote,verbatim] \markup { \column { a "b c" \line { d e f } } \hspace #10 \center-column { a "b c" \line { d e f } } } @end lilypond @funindex \fill-line @cindex Text auf der Seite zentrieren @cindex Zentrieren von Text auf der Seite Eine Anzahl an Ausdrücken innerhalb von @code{\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. @lilypond[quote,verbatim] \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 } } @end lilypond @funindex \wordwrap @funindex \justify @cindex Umbruch von Text @cindex Blocksatz, Text @cindex Text, Blocksatz 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: @lilypond[quote,verbatim] \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) } } } @end lilypond Eine vollständige Liste der Textausrichtungsbefehle findet sich in @ref{Align}. @seealso Handbuch zum Lernen: @rlearning{Moving objects}. Notationsreferenz: @ref{Align}, @ref{Text marks}. Schnipsel: @rlsr{Text}. Installierte Dateien: @file{scm/@/define@/-markup@/-commands@/.scm}. Referenz der Interna: @rinternals{TextScript}. @node Graphic notation inside markup @unnumberedsubsubsec Graphic notation inside markup @cindex Graphik, eingebunden @cindex Illustrationen im Text @cindex Zeichnen im Text @cindex Abbildungen im Text Verschiedene graphische Objekte können im Textbeschriftungsmodus eingefügt werden. @funindex \box @funindex \circle @funindex \rounded-box @funindex \bracket @funindex \hbracket @cindex Kasten, Graphik @cindex gerundeter Kasten, Graphik @cindex Klammern, Graphik @cindex Text verzieren @cindex Text einrahmen @cindex Rahmen, Text Mit bestimmten Textbeschriftungsbefehlen kann man Textelementen Graphik hinzufügen, wie das nächste Beispiel zeigt: @lilypond[quote,verbatim] \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 } } @end lilypond @funindex \pad-markup @funindex \pad-x @funindex \pad-to-box @funindex \pad-around @cindex Platz um Text @cindex Rand um Text @cindex Füllung um Text @cindex Text, Rand außen 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 @ref{Align}. @lilypond[quote,verbatim] \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." } @end lilypond @funindex \combine @funindex \draw-circle @funindex \filled-box @funindex \triangle @funindex \draw-line @funindex \arrow-head @cindex Graphische Notation @cindex Symbole, nicht Musik- Andere graphische Elemente oder Symbole können gesetzt werden, ohne dass man Text benötigt. Wie mit allen Textbeschriftungen können Objekte innerhalb von @code{\markup} kombiniert werden. @lilypond[quote,verbatim] \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 } } @end lilypond @funindex \epsfile @funindex \postscript @cindex Einbinden von Graphik @cindex Bilder einbinden @cindex Graphik einbinden @cindex Postscript, Graphik Fortgeschrittene graphische Möglichkeiten bietet unter Anderem eine Funktion, mit der man externe Graphiken im Encapsulated PostScript (@emph{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: @lilypond[quote,verbatim,fragment,relative=1] 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 @end lilypond Eine ausführliche Liste der Graphik-Befehle findet sich in @ref{Graphic}. @seealso Notationsreferenz: @ref{Graphic}, @ref{Editorial annotations}. Schnipsel: @rlsr{Text}. Referenz der Interna: @rinternals{TextScript}. Installierte Dateien: @file{scm/@/define@/-markup@/-commands@/.scm}, @file{scm/@/stencil@/.scm}. @node Music notation inside markup @unnumberedsubsubsec Music notation inside markup @cindex Notationsobjekte, Einfügen @cindex Einfügen von Notationsobjekten @cindex Musikobjekte, Einfügen Auch Musikobjekte können innerhalb der Textbeschriftungsumgebung gesetzt werden. Noten und Versetzungszeichen lassen sich mit @code{\markup} einfügen: @lilypond[quote,verbatim,fragment,relative=2] 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 @end lilypond Andere Notationsobjekte können auch eingefügt werden: @lilypond[quote,verbatim,fragment,relative=1] 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 } @end lilypond 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 @ref{The Feta font}. @lilypond[quote,verbatim,fragment,relative=2] c2 c'^\markup { \musicglyph #"eight" } c,4 c,8._\markup { \musicglyph #"clefs.G_change" } c16 c2^\markup { \musicglyph #"timesig.neomensural94" } @end lilypond @c TODO: add \lookup here? -vv @noindent Eine andere Möglichkeit, andere als Textsymbole zu schreiben, findet sich in @ref{Fonts explained}. Der Textbeschriftungsmodus unterstützt auch Diagramme für bestimmte Instrumente: @lilypond[quote,verbatim,fragment,relative=2] 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" } @end lilypond @c The accordion diagram is actually taken from a snippet. @noindent Derartige Digramme sind dokumentiert in @ref{Instrument Specific Markup}. Sogar eine ganze Partitur kann in ein Textbeschriftungsobjekt eingefügt werden. In diesem Fall muss die eingefügte @code{\score}-Umgebung eine @code{\layout}-Umgebung haben, wie in diesem Beispiel: @lilypond[quote,verbatim,fragment,relative=1] c4 d^\markup { \score { \relative { c4 d e f } \layout { } } } e f | c d e f @end lilypond Eine vollständige Liste der Musiksymbol-Befehle findet sich in @ref{Music}. @seealso Notationsreferenz: @ref{Music}, @ref{The Feta font}, @ref{Fonts explained}. Schnipsel: @rlsr{Text}. Referenz der Interna: @rinternals{TextScript}. Installierte Dateien: @file{scm/@/define@/-markup@/-commands@/.scm}, @file{scm/@/fret@/-diagrams@/.scm}, @file{scm/@/harp@/-pedals@/.scm}. @node Multi-page markup @unnumberedsubsubsec 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: @lilypond[quote,verbatim] \markuplines { \justified-lines { A very long text of justified lines. ... } \wordwrap-lines { An other very long paragraph. ... } ... } @end lilypond Die Syntax braucht eine Liste von Textbeschriftungen folgender Art: @itemize @item das Resultat eines Beschriftungslistenbefehls, @item eine Textbeschriftungsliste, @item eine Liste von Beschriftungslisten. @end itemize Eine vollständige Liste der Beschriftungslistenbefehle findet sich in @ref{Text markup list commands}. @seealso Notationsreferenz: @ref{Text markup list commands}, @ref{New markup list command definition}. Schnipsel: @rlsr{Text}. Referenz der Interna: @rinternals{TextScript}. Installierte Dateien: @file{scm/@/define@/-markup@/-commands@/.scm}. @predefined @funindex \markuplines @code{\markuplines} @node Fonts @subsection Fonts Dieser Abschnitt zeigt, wie Schriftarten eingesetzt werden können und wie man sie in Partituren ändern kann. @menu * Fonts explained:: * Single entry fonts:: * Entire document fonts:: @end menu @node Fonts explained @unnumberedsubsubsec Fonts explained @cindex Pango @cindex Schriftarten, Hintergrundinformation @funindex font-interface Schriftarten werden von mehreren Bibliotheken verwaltet. FontConfig wird benützt, um die vorhandenen Schriftarten des Systems zu erkennen, die gewählte Schriftart wird dann mit Pango verarbeitet. Notationsschriftarten können als eine Ansammlung von besonderen Zeichen erklärt werden, wobei die Sonderzeichen in verschiedene Familien klassifiziert werden. Die Syntax des folgenden Beispiels ermöglicht es, direkt auf verschiedene Sonderzeichen der @code{feta}-Schriftart zuzugreifen. Das ist die Standardschriftart für Notationselemente in LilyPond. @lilypond[quote,verbatim,fragment,relative=2] a1^\markup { \vcenter { \override #'(font-encoding . fetaBraces) \lookup #"brace120" \override #'(font-encoding . fetaNumber) \column { 1 3 } \override #'(font-encoding . fetaDynamic) sf \override #'(font-encoding . fetaMusic) \lookup #"noteheads.s0petrucci" } } @end lilypond @noindent Eine einfachere, aber weniger vielfältige Syntax wird beschrieben in @ref{Music notation inside markup}. Drei Textschriftarten sind verfügbar (auf Englisch @code{family} genannt): mit @code{roman} eine Schriftart mit Serifen (Standard ist New Century Schoolbook), mit @code{sans} eine serifenlose (gerade) Schriftart und mit @code{typewriter} eine Schreibmaschinenschrift, in welcher die Buchstaben alle die gleiche Weite haben. Die aktuelle Schriftart von @code{sans} und @code{tpyewriter} wird durch Pango entspechend den Systemvorgaben gewählt. Jede Familie kann verschiedene Schriftschnitte besitzen. Im Englischen wird unterschieden zwischen @code{shape} für kursive Schnitte und @code{series} für fette Schnitte. Im folgenden Beispiel wird demonstriert, wie man die verschiedenen Eigenschaften auswählen kann. @lilypond[quote,verbatim,fragment,relative=2] \override Score.RehearsalMark #'font-family = #'typewriter \mark \markup "Ouverture" \key d \major \override Voice.TextScript #'font-shape = #'italic \override Voice.TextScript #'font-series = #'bold d'2.^\markup "Allegro" r4 @end lilypond @noindent Eine ähnliche Syntax kann im Textbeschriftungsmodus eingesetzt werden, hier bietet es sich aber an, die einfacheren Befehle zu verwenden, die erklärt wurden in @ref{Selecting font and font size}: @lilypond[quote,verbatim] \markup { \column { \line { \override #'(font-shape . italic) \override #'(font-size . 4) Idomeneo, } \line { \override #'(font-family . typewriter) { \override #'(font-series . bold) re di } \override #'(font-family . sans) Creta } } } @end lilypond @ignore @c FIXME: This needs an example -vv The size of the font may be set with the @code{font-size} property. The resulting size is taken relative to the @code{text-font-size} as defined in the @code{\paper} block. @end ignore Auch wenn es einfach ist, zwischen den vorefinierten Schriftarten umzuschalten, kann man auch eigene Schriftarten verwenden, wie erklärt in folgenden Abschnitten: @ref{Single entry fonts} und @ref{Entire document fonts}. @seealso Notationsreferenz: @ref{The Feta font}, @ref{Music notation inside markup}, @ref{Selecting font and font size}, @ref{Font}. @node Single entry fonts @unnumberedsubsubsec Single entry fonts Jede Schriftart, die über das Betriebssystem installiert ist und von FontConfig erkannt wird, kann in einer Partitur eingefügt werden. Dazu verwendet man folgende Syntax: @lilypond[quote,verbatim,fragment,relative=1] \override Staff.TimeSignature #'font-name = #"Charter" \override Staff.TimeSignature #'font-size = #2 \time 3/4 c1_\markup { \override #'(font-name . "Vera Bold") { Vera Bold } } @end lilypond @funindex show-available-fonts Mit folgendem Befehl erhält man eine Liste aller verfügbaren Schriftarten des Betriebssystems: @example lilypond -dshow-available-fonts x @end example @noindent Das letzte Argument kann ein beliebiges Zeichen sein, aber es darf nicht fehlen. @seealso Notationsreferenz: @ref{Fonts explained}, @ref{Entire document fonts}. Schnipsel: @rlsr{Text}. Installierte Dateien: @file{lily/@/font@/-config@/-scheme@/.cc}. @node Entire document fonts @unnumberedsubsubsec Entire document fonts Es ist auch möglich, die Schriftart für die gesamte Partitur zu ändern. In diesem Fall muss die folgende Syntax benutzt werden, mit der drei Schriftarten für die drei unterschiedlichen Familien @code{roman}, @code{sans} und @code{typewriter} definiert werden. Einzelheiten zu den Familien in @ref{Fonts explained}. @cindex Schriftartenfamilien, Definieren @funindex make-pango-font-tree @lilypond[verbatim,quote] \paper { myStaffSize = #20 #(define fonts (make-pango-font-tree "Times New Roman" "Nimbus Sans" "Luxi Mono" (/ myStaffSize 20))) } \relative c'{ c1-\markup { roman, \sans sans, \typewriter typewriter. } } @end lilypond @c we don't do Helvetica / Courier, since GS incorrectly loads @c Apple TTF fonts @seealso Notationsreferenz: @ref{Fonts explained}, @ref{Single entry fonts}, @ref{Selecting font and font size}, @ref{Font}.