Dimensionnement des objets graphiques

Tout d’abord, nous devons apprendre ce qui détermine la dimension des grobs. Tous les grobs portent en eux un point de référence qui est utilisé pour les positionner par rapport à leur objet parent. Ce point du grob est placé à une distance horizontale, X-offset, et à une distance verticale, Y-offset, de son parent. L’étendue horizontale de l’objet est fixée par une paire de nombres, X-extent, qui donnent la position du coin gauche et du coin droit par rapport au point de référence. De même, l’amplitude verticale est fixée par une paire de nombres, Y-extent. Ce sont des propriétés communes à tous les grobs et que gère la grob-interface.

Par défaut, la largeur des objets extérieurs à la portée est donnée comme étant nulle, si bien qu’ils peuvent se chevaucher horizontalement. Pour remédier à cela, on a ajouté l’infini à l’extension gauche et moins l’infini à l’extension droite, en attribuant à extra-spacing-width la valeur '(+inf.0 . -inf.0). Pour être sûr que les objets ne se chevaucheront pas horizontalement, nous devons donc corriger cette valeur de extra-spacing-width pour leur attribuer un peu d’espace supplémentaire. L’unité de base est ici la largeur séparant deux lignes de portée ; décaler le bord gauche d’une demie unité vers la gauche et le bord droit d’une demie unité vers la droite devrait suffire :

\override DynamicText.extra-spacing-width = #'(-0.5 . 0.5)

Voyons si ça marche sur notre exemple précédent :

\dynamicUp
% Extend width by 1 staff space
\override DynamicText.extra-spacing-width = #'(-0.5 . 0.5)
\relative { a'4\f b\mf a\mp b\p }

[image of music]

C’est mieux mais nous voulons peut-être aligner les indications de nuance sur une même ligne plutôt que de les voir monter et descendre avec les notes. La propriété qui gère cela est staff-padding – voir Collisions d’objets.


GNU LilyPond – Manuel d’initiation v2.25.12 (branche de développement).