B.7 Scheme-Code anstelle von weak
verwenden
Der hauptsächliche Nachteil von \tweak
ist seine
syntaktische Inflexibilität. Folgender Code beispielsweise
ergibt einen Syntaxfehler:
F = \tweak #'font-size #-3 -\flageolet \relative c'' { c4^\F c4_\F }
Anders gesagt verhält sich \tweak
nicht wie eine Artikulation
und kann auch nicht deren Syntax verwenden: man kann es nicht
mit ^
oder _
anfügen.
Durch die Verwendung von Scheme kann dieses Problem umgangen werden.
Der Weg zum Resultat wird gezeigt in
Artikulationszeichen zu Noten hinzufügen (Beispiel), insbesondere
wie \displayMusic
benutzt wird, hilft hier weiter.
F = #(let ((m (make-music 'ArticulationEvent 'articulation-type "flageolet"))) (set! (ly:music-property m 'tweaks) (acons 'font-size -3 (ly:music-property m 'tweaks))) m) \relative c'' { c4^\F c4_\F }
In diesem Beispiel werden die tweaks
-Eigenschaften
des Flageolet-Objekts m
(mit make-music
erstellt)
werden mit ly:music-property
ausgelesen, ein neues
Schlüssel-Wert-Paar, um die Schriftgröße zu ändern, wird
der Eigenschaftenliste mithilfe der acons
-Schemefunktion
vorangestellt, und das Resultat wird schließlich mit
set!
zurückgeschrieben. Das letzte Element des
let
-Blocks ist der Wiedergabewert, m
.