LilyPond erweitern: 2.5 Scheme-Code innerhalb LilyPonds

## 2.5 Scheme-Code innerhalb LilyPonds

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`.

Andere Sprachen: English, español.

#### LilyPond – Extending