36.9 Alignement des objets ¶
Tous les objets graphiques ont un point de référence ; en matière de coordonnées, ce point de référence est réputé être à la position (0,0).
Tous les objets graphiques ont aussi une étendue horizontale et
une étendue verticale. L’étendue horizontale est représentée par
une paire de nombres indiquant l’écart entre le point de référence et
les bords gauche et droit – l’écart à gauche étant négatif. L’étendue
verticale est représentée par une paire de nombres indiquant l’écart
entre le point de référence et les bords inférieur et supérieur –
l’écart vers le bas étant négatif. Dans l’image suivante, le point en
coordonnée 0 est le point de référence ; l’étendue horizontale est
#'(-9 . 26), et l’étendue verticale est #'(-10 . 29).
Voir Le modèle de boîte de LilyPond pour plus de détails sur l’étendue des glyphes musicaux.
Les objets graphiques ont aussi des points d’alignement, qui ne sont pas nécessairement le même que leur point de référence. Un point d’alignement est un point relatif à un objet que LilyPond utilise pour aligner cet objet avec d’autres objets. Les points de self-alignment sont relatifs à l’objet lui-même ; les points de parent-alignment sont relatifs à l’objet parent si tant est qu’il y en ait un.
La plupart des objets graphiques ont des parents qui influencent leur
positionnement. Pour ces objets, LilyPond bouge l’objet de telle sorte
que son point d’alignement soit à la même position que le point
d’alignement de son parent. Par exemple,
TextScript.parent-alignment-X est la propriété d’un objet
TextScript qui spécifie le point d’alignement sur l’axe des
abscisses (coordonnée X) relativement au parent de cet objet
TextScript (son objet NoteColumn associé) sur lequel
LilyPond alignera cet objet TextScript. Lorsque l’on place
horizontalement un objet TextScript, LilyPond aligne le point de
self-alignment de l’objet sur un point de parent-alignment
relatif à l’objet NoteColumn qui est parent du TextScript.
Si l’objet NoteColumn a plusieurs enfants, ces objets enfants
peuvent avoir des points de parent-alignment différents.
See Utilisation de self-alignment-interface pour plus d’information.
La position d’un objet sur la portée est donnée par la valeur des
propriétés X-offset et Y-offset. La valeur de
X-offset indique l’écart en abscisse (coordonnée X) par rapport
au point de référence de l’objet parent ; la valeur de Y-offset
indique l’écart par rapport à la ligne médiane de la
portée.13 Les valeurs de
X-offset et Y-offset peuvent être fournies arbitrairement,
ou bien être calculé par des procédures spécifiques qui détermineront
l’alignement par rapport à l’objet parent.
Note : Nombre d’objets sont affectés par des considérations
spécifiques en matière de positionnement ; jouer sur les valeurs de
X-offset ou Y-offset se révélera inefficace en pareil cas,
même si l’objet dispose de la self-alignment-interface. Fixer
arbitrairement les propriétés X-offset ou Y-offset
annihilera alors les effets de la propriété self-alignment
correspondante.
Par exemple, une altération peut se repositionner verticalement grâce à
son Y-offset ; toute modification de son X-offset restera
par contre sans effet.
De nombreux objets peuvent s’aligner antérieurement placés à l’aide de
la self-alignment-interface et/ou la
side-position-interface. La liste des objets concernée est
disponible aux rubriques self-alignment-interface et
side-position-interface.
Les indications de repère s’alignent sur des objets de rupture – tels
les barres de mesure, clefs, métriques et armures. Certaines propriétés
spécifiques – dépendant de la break-aligned-interface –
permettent de gérer le positionnement des indications de repère sur ces
objets.
Voir aussi ¶
Manuel de notation :
Utilisation de break-aligned-interface.
Manuel d’extension : Fonctions de rappel.
36.9.1 Détermination directe de X-offset et Y-offset | ||
36.9.2 Utilisation de side-position-interface | ||
36.9.3 Utilisation de self-alignment-interface | ||
36.9.4 Utilisation de break-aligned-interface |
Footnotes
(13)
Pour les objets non directement associés à une portée,
d’autres conventions peuvent s’appliquer. Par exemple, les valeurs d’un
Y-offset des objets InstrumentName sont mesurés à partir
du haut de la portée supérieure du système.
![[image of music]](../f5/lily-49560838.png)