5.5.1 Alignement des objets
Les objets graphiques disposant des interfaces
self-alignment-interface
ou side-position-interface
peuvent s’aligner par rapport à un objet précédemment positionné, ce de
différentes manières. Ces objets sont référencés aux rubriques
self-alignment-interface et
side-position-interface.
Tous les objets graphiques ont un point de référence, 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.
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. 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.
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.
Détermination directe de X-offset et Y-offset | ||
Utilisation de side-position-interface | ||
Utilisation de self-alignment-interface | ||
Utilisation de break-aligned-interface |
Voir aussi
Manuel de notation :
Utilisation de break-aligned-interface
.
Manuel d’extension : Fonctions de rappel.
Détermination directe de X-offset
et Y-offset
Vous pouvez fournir, pour de nombreux objets, des valeurs numériques aux
propriétés X-offset
et Y-offset
. Voici par exemple une
note avec indication du doigté tout d’abord avec un positionnement par
défaut, puis repositionnement par modification successive du
X-offset
et du Y-offset
.
a'-3 a' -\tweak X-offset #0 -\tweak Y-offset #0 -3 a' -\tweak X-offset #-1 -\tweak Y-offset #1 -3
Utilisation de side-position-interface
Un objet disposant de la side-position-interface
peut se voir
accolé à son voisin de telle sorte que les bords des deux objets se
touchent. Un tel objet peut se positionner au-dessus, en dessous, à
droite ou à gauche de son parent. Ce parent ne saurait être
stipulé ; il est déterminé par l’ordre d’apparition des éléments
dans le flux des saisies. La plupart de ces objets ont pour parent la
tête de note qui leur est associée.
Les valeurs des propriétés side-axis
et direction
détermineront l’endroit où viendra se positionner l’objet, selon les
préceptes suivants :
Propriété | Propriété | Positionnement |
---|---|---|
side-axis | direction | |
0 | -1 | gauche |
0 | 1 | droite |
1 | -1 | en dessous |
1 | 1 | au-dessus |
Pour un side-axis
à 0
, le X-offset
devrait engager
la procédure ly:side-position-interface::x-aligned-side
.
Celle-ci renverra la valeur adéquate de X-offset
permettant
d’accoler l’objet sur la droite ou sur la gauche de son parent, selon la
valeur de direction
.
Pour un side-axis
à 1
, le Y-offset
devrait engager
la procédure ly:side-position-interface::y-aligned-side
.
Celle-ci renverra la valeur adéquate de Y-offset
permettant
d’accoler l’objet au-dessus ou en dessous de son parent, selon la valeur
de direction
.
Utilisation de self-alignment-interface
Réalignement d’objets horizontalement
L’alignement horizontal d’un objet disposant de la
self-alignment-interface
dépend de la valeur de sa propriété
self-alignment-X
, si tant est que la propriété X-offset
de
cet objet engage la procédure
ly:self-alignment-interface::x-aligned-on-self
.
La propriété self-alignment-X
peut contenir un nombre réel,
l’unité de base étant la moitié de l’étendue horizontale de l’objet.
Une valeur négative décalera l’objet vers la droite, une valeur positive
vers la gauche. La valeur 0
permet de centrer l’objet sur
le point de référence de son parent. Une valeur de -1
alignera le bord gauche de l’objet sur le point de référence de son
parent, et une valeur de 1
alignera le bord droit de l’objet
sur le point de référence de son parent. Les valeurs symboliques
LEFT
, CENTER
et RIGHT
correspondent respectivement
à -1
, 0
et 1
.
En règle générale, la valeur de self-alignment-X
se modifie à
l’aide d’une commande \override
. Le recours à la commande
\tweak
permet de traiter séparément plusieurs annotations
affectées à une même note :
a' -\tweak self-alignment-X #-1 ^"left-aligned" -\tweak self-alignment-X #0 ^"center-aligned" -\tweak self-alignment-X #RIGHT ^"right-aligned" -\tweak self-alignment-X #-2.5 ^"aligned further to the right"
Réalignement d’objets verticalement
L’alignement vertical suit le même principe : la propriété
Y-offset
doit alors engager la procédure
ly:self-alignment-interface::y-aligned-on-self
. Toutefois, il
arrive bien souvent que d’autres mécanismes interviennent dans
l’alignement vertical. La valeur de Y-offset
n’étant que l’une
des variables qui seront prises en compte, l’ajustement pour certains
objets peut se révéler fastidieux. L’unité de base est relativement
réduite, puisqu’elle est de la moitié de l’étendue verticale de
l’objet ; le nombre à fournir en argument pourrait donc être
relativement élevé. Une valeur de -1
alignera le bord
inférieur de l’objet sur le point de référence de son parent, et une
valeur de 1
alignera le bord supérieur de l’objet sur le point de
référence de son parent. La valeur 0
permet de centrer l’objet
sur le point de référence de son parent. Les valeurs symboliques
DOWN
, CENTER
et UP
correspondent respectivement
à -1
, 0
et 1
.
Réalignement d’objets sur les deux axes
Définir à la fois X-offset
et Y-offset
permet de réaligner
un objet sur les deux axes.
Dans l’exemple ci-dessous, nous ajustons l’indication de doigté de telle sorte qu’elle se place au plus près de la tête de note.
a' -\tweak self-alignment-X #0.5 % move horizontally left -\tweak Y-offset #ly:self-alignment-interface::y-aligned-on-self -\tweak self-alignment-Y #-1 % move vertically up -3 % third finger
Utilisation de break-aligned-interface
Indications de repère et numéros de mesure peuvent s’aligner sur des
objets de notation autres qu’une barre de mesure. Parmi ces objets,
nous citerons ambitus
, breathing-sign
, clef
,
custos
, staff-bar
, left-edge
,
key-cancellation
, key-signature
, et time-signature
.
Chaque objet possède son propre point de référence par défaut, sur lequel viendra s’aligner les indications de repère :
% The rehearsal mark will be aligned to the right edge of the Clef \override Score.RehearsalMark.break-align-symbols = #'(clef) \key a \major \clef treble \mark "↓" e'1 % The rehearsal mark will be aligned to the left edge of the Time Signature \override Score.RehearsalMark.break-align-symbols = #'(time-signature) \key a \major \clef treble \time 3/4 \mark "↓" e'2. % The rehearsal mark will be centered above the Breath Mark \override Score.RehearsalMark.break-align-symbols = #'(breathing-sign) \key a \major \clef treble \time 4/4 e'1 \breathe \mark "↓"
Les différents objets sur lesquels l’alignement pourrait intervenir
seront regroupés dans une liste. Si l’un des objets est invisible à
l’endroit voulu, en raison d’un réglage de break-visibility
ou
bien par forçage de la visibilité des armures et clefs, le repère ou le
numéro de mesure viendra s’aligner sur le premier élément de cette liste
qui soit visible. Dans le cas où aucun objet de la liste n’est visible,
l’alignement se fera sur la barre de mesure ou, dans le cas où la barre
de mesure est invisible, à l’endroit même où la barre prendrait place.
% The rehearsal mark will be aligned to the right edge of the Key Signature \override Score.RehearsalMark.break-align-symbols = #'(key-signature clef) \key a \major \clef treble \mark "↓" e'1 % The rehearsal mark will be aligned to the right edge of the Clef \set Staff.explicitKeySignatureVisibility = #all-invisible \override Score.RehearsalMark.break-align-symbols = #'(key-signature clef) \key a \major \clef bass \mark "↓" gis,1 % The rehearsal mark will be centered above the Bar Line \set Staff.explicitKeySignatureVisibility = #all-invisible \set Staff.explicitClefVisibility = #all-invisible \override Score.RehearsalMark.break-align-symbols = #'(key-signature clef) \key a \major \clef treble \mark "↓" e'1
L’alignement d’un repère sur un objet de notation peut se modifier, comme l’illustre l’exemple suivant. Toutefois, si la partition comporte plusieurs portées, ce réglage devra apparaître dans chacune des portées.
% The RehearsalMark will be aligned with the right edge of the Key Signature \override Score.RehearsalMark.break-align-symbols = #'(key-signature) \key a \major \clef treble \time 4/4 \mark "↓" e'1 % The RehearsalMark will be centered above the Key Signature \once \override Score.KeySignature.break-align-anchor-alignment = #CENTER \mark "↓" \key a \major e'1 % The RehearsalMark will be aligned with the left edge of the Key Signature \once \override Score.KeySignature.break-align-anchor-alignment = #LEFT \key a \major \mark "↓" e'1
Le bord gauche d’un repère peut se décaler arbitrairement sur la gauche ou la droite. La valeur est exprimée en espaces de portée.
% The RehearsalMark will be aligned with the left edge of the Key Signature % and then shifted right by 3.5 staff-spaces \override Score.RehearsalMark.break-align-symbols = #'(key-signature) \once \override Score.KeySignature.break-align-anchor = #3.5 \key a \major \mark "↓" e'1 % The RehearsalMark will be aligned with the left edge of the Key Signature % and then shifted left by 2 staff-spaces \once \override Score.KeySignature.break-align-anchor = #-2 \key a \major \mark "↓" e'1
Autres langues : English, català, deutsch, español, italiano, 日本語.
About automatic language selection.