6.7 Utilisation de code Scheme au lieu de \tweak
L’inconvénient principal de la commande \tweak est la rigidité de sa
syntaxe. Par exemple, le code suivant produit une erreur.
F = \tweak #'font-size #-3 -\flageolet \relative c'' { c4^\F c4_\F }
En d’autres termes, \tweak ne se comporte pas comme une articulation :
il ne peut notamment pas être accolé avec les symboles ‘^’ ou ‘_’.
C’est en se servant du langage Scheme que l’on peut résoudre ce problème.
Dans cet exemple, on a recours aux méthodes décrites dans Exemple : ajouter une articulation à plusieurs notes, en particulier quant à l’emploi de
\displayMusic.
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 }
Ici les propriétés tweak de l’objet flageolet nommé
‘m’ (créé au moyen de make-music) sont extraites par
ly:music-property, une nouvelle valeur de la taille de fonte
est ajoutée à la liste de ses propriétés (grâce à la fonction Scheme
acons), et le résultat de cette opération est renvoyé par set!.
Le dernier élément, dans ce bloc let, est la valeur finale de
‘m’ lui-même.