Précédent : set ou override, Haut : La commande override
Certains réglages sont plus délicats que d'autres.
\override
.
En d'autres termes, une commande \override
affecte toujours les deux extrémités
d'un objet ‘spanner’. Pour ne modifier que la partie précédant ou suivant le changement
de ligne, il faut intervenir directement dans le processus de mise en page.
La fonction de rappel after-line-breaking
contient toute l'opération Scheme
effectuée lorsque les sauts de lignes ont été déterminés, et que des objets graphiques
ont été divisés sur des systèmes différents.
Dans l'exemple suivant, on définit une nouvelle opération nommée
my-callback
. Cette opération
extra-offset
).
On ajoute cette procédure à l'objet Tie (liaison de tenue), de façon à ce que le deuxième morceau d'une liaison divisée soit rehaussé.
#(define (my-callback grob) (let* ( ; l'objet a-t-il été divisé ? (orig (ly:grob-original grob)) ; si oui, rechercher les morceaux frères (siblings) (siblings (if (ly:grob? orig) (ly:spanner-broken-into orig) '() ))) (if (and (>= (length siblings) 2) (eq? (car (last-pair siblings)) grob)) (ly:grob-set-property! grob 'extra-offset '(-2 . 5))))) \relative c'' { \override Tie #'after-line-breaking = #my-callback c1 ~ \break c2 ~ c }
Lorsque cette astuce va être appliquée, notre nouvelle fonction de rappel
after-line-breaking
devra également appeler celle d'origine
(after-line-breaking
), si elle existe.
Ainsi, pour l'utiliser dans le cas d'un crescendo (objet Hairpin
),
il faudra appeler également ly:hairpin::after-line-breaking
.
\override
. Parmi ceux-là, les objets NonMusicalPaperColumn
et PaperColumn
. La commande \overrideProperty
sert à les modifier, de
façon similaire à \once \override
, mais avec une syntaxe différente :
\overrideProperty #"Score.NonMusicalPaperColumn" % Nom de l'objet #'line-break-system-details % Nom de la propriété #'((next-padding . 20)) % valeur
Notez cependant que la commande \override
peut tout de même être appliquée
à NoteMusicalPaperColumn
et PaperColumn
dans un bloc \context
.
Cette page documente LilyPond-2.11.58 (branche de développement).
Rapportez toute anomalie en français à lilypond-user-fr@gnu.org ou en anglais à http://post.gmane.org/post.php?group=gmane.comp.gnu.lilypond.bugs
Vos suggestions à propos de la documentation sont les bienvenues.
Autres langues : English.