Ajustement du positionnement vertical d’unel liaison
Il est possible, à l’aide d’un \override Slur.positions
, de
définir le positionnement vertical des extrémités d’une liaison à des
valeurs absolues (ou, plutôt, forcer l’algoritme de LilyPond à
considérer ces valeurs comme étant préférables). Dans de nombreux cas,
ceci demande de procéder à tâtons pour obtenir une valeur acceptable,
d’autant que la commande \offset
est inéfficace pour les
liaisons et affiche un avertissement.
Le code ci-dessous parmet d’ajuster le positionnement du début et de la
fin d’une liaison en spécifiant des modifications relatives comme
le ferait un \offset
.
Syntaxe : \offsetPositions #'(dy1 . dy2)
offsetPositions = #(define-music-function (offsets) (number-pair?) #{ \once \override Slur.control-points = #(lambda (grob) (match-let ((((_ . y1) _ _ (_ . y2)) (ly:slur::calc-control-points grob)) ((off1 . off2) offsets)) (set! (ly:grob-property grob 'positions) (cons (+ y1 off1) (+ y2 off2))) (ly:slur::calc-control-points grob))) #}) \relative c'' { c4(^"default" c, d2) \offsetPositions #'(0 . 1) c'4(^"(0 . 1)" c, d2) \offsetPositions #'(0 . 2) c'4(^"(0 . 2)" c, d2) \bar "||" g4(^"default" a d'2) \offsetPositions #'(1 . 0) g,,4(^"(1 . 0)" a d'2) \offsetPositions #'(2 . 0) g,,4(^"(2 . 0)" a d'2) }