[ << Die Ausgabe verbessern ] | [Top][Contents][Index] | [ Vorlagen >> ] |
[ < Der \once -Präfix ] | [ Up : Optimierungsmethoden ] | [ Der \single -Präfix > ] |
Der \tweak
-Befehl
Der letzte Optimierungsbefehl in LilyPond ist \tweak
(engl. optimieren). Er wird eingesetzt um Eigenschaften
nur eines Objektes von mehreren Objekten zu verändern,
die zum selben Musik-Zeitpunkt
auftreten, wie etwa die Noten eines Akkordes. Ein
\override
würde alle Noten des Akkords beeinflussen,
während mit \tweak
nur das nächste Objekt der
Eingabe geändert wird.
Hier ein Beispiel. Angenommen, die Größe des mittleren
Notenkopfes (ein E) in einem C-Dur-Akkord soll geändert
werden. Schauen wir zuerst, was wir mit
\once \override
erhalten:
\relative { <c' e g>4 \once \override NoteHead.font-size = #-3 <c e g>4 <c e g>4 }
Wie man sehen kann, beeinflusst override
alle
Notenköpfe des Akkordes. Das liegt daran, dass alle die Noten
eines Akkordes zum selben Musik-Moment auftreten und
die Funktion von \once
ist es, die Optimierung auf
an allen Objekten auszuführen, die zum selben Musik-Moment
auftreten wie der \override
-Befehl.
Der \tweak
-Befehl funktioniert anders. Er bezieht sich
auf das direkt folgende Element in der Eingabe-Datei. In seiner
einfachsten Form ist der Befehl nur an Objekten wirksam, die direkt
vom vorhergehenden Element erstellt worden sind, insbesondere
Notenköpfe und Artikulation.
Um also zu unserem Beispiel zurückzukommen, könnte man die mittlere Note eines Akkordes auf diese Weise ändern:
\relative { <c' e g>4 <c \tweak font-size #-3 e g>4 }
Beachten Sie, dass die Syntax des \tweak
-Befehls sich
von der des \override
-Befehls unterscheidet. Der
Kontext dürfen nicht angegeben werden, denn
das würde zu einem Fehler führen. Sowohl Kontext als auch das Layout-Objekt sind
durch das folgende Element im Inputstream impliziert. Hier sollte auch
kein Gleichheitszeichen vorhanden sein. Die verallgemeinerte
Syntax des \tweak
-Befehls ist also
\tweak layout-eigenschaft #Wert
Ein \tweak
-Befehl kann auch benutzt werden, um nur
eine von mehreren Artikulationen zu ändern, wie im nächsten
Beispiel zu sehen ist.
a'4^"Black" -\tweak color "red" ^"Red" -\tweak color "green" _"Green"
Beachten Sie, dass ein Artikulationsmodifikator vor dem \tweak
-Befehl
geschrieben werden muss, weil auch der \tweak
-Ausdruck als
Artikulation angefügt wird. Im Falle von mehreren Richtungsmodifikatoren
(^
or _
) gilt der Modifikator links außen, weil er als
letzter angefügt wird.
Objekte wie Hälse und Versetzungszeichen werden später erstellt und nicht
direkt aus dem vorhergehenden Ereignis. Es ist dennoch möglich, \tweak
mit solchen indirekt erstelltn Objekten zu verwenden, indem man die
Layout-Objekte direkt benennt, vorausgesetzt dass LilyPond ihre Herkunft
bis zu dem ursprünglichen Ereignis zurück verfolgen kann:
<\tweak Accidental.color "red" cis''4 \tweak Accidental.color "green" es'' g''>
Diese Langform des \tweak
-Befehls kann wie folgend beschrieben werden:
\tweak layout-object.layout-property value
Der \tweak
-Befehl muss auch benutzt werden, wenn das
Aussehen einer vor mehreren geschachtelten Triolenklammern
geändert werden soll, die zum selben Zeitpunkt beginnen.
Im folgenden Beispiel beginnen die lange Klammer und die
erste Triolenklammer zum selben Zeitpunkt, sodass ein
\override
-Befehl sich auf beide beziehen würde.
In dem Beispiel wird \tweak
benutzt, um zwischen
ihnen zu unterscheiden. Der erste \tweak
Befehl
gibt an, dass die lange Klammer über den Noten gesetzt
werden soll, und der zweite, dass die Zahl der rhythmischen
Aufteilung für die erste der kurzen Klammern in rot
gesetzt wird.
\relative c'' { \tweak direction #up \tuplet 3/4 { \tweak color "red" \tuplet 3/2 { c8[ c c] } \tuplet 3/2 { c8[ c c] } \tuplet 3/2 { c8[ c c] } } }
Wenn geschachtelte N-tolen nicht zum gleichen Zeitpunkt
beginnen, kann ihr Aussehen auf die übliche Art mit dem
\override
-Befehl geändert werden:
\relative { \tuplet 3/2 { c'8[ c c] } \once \override TupletNumber.text = #tuplet-number::calc-fraction-text \tuplet 3/2 { c8[ c] c8[ c] \once \override TupletNumber.transparent = ##t \tuplet 3/2 { c8[ c c] } \tuplet 3/2 { c8[ c c] } } }
Siehe auch
Notationsreferenz: Der tweak-Befehl.
[ << Die Ausgabe verbessern ] | [Top][Contents][Index] | [ Vorlagen >> ] |
[ < Der \once -Präfix ] | [ Up : Optimierungsmethoden ] | [ Der \single -Präfix > ] |