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.

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

[image of music]


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 une tête de note.

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-axisdirection
0-1gauche
01droite
1-1en dessous
11au-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"

[image of music]

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

[image of music]


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 "↓"
e1
% 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 "↓"
e2.
% 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
e1
\breathe
\mark "↓"

[image of music]

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 "↓"
e1
% 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

[image of music]

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 "↓"
e1
% The RehearsalMark will be centered above the Key Signature
\once \override Score.KeySignature.break-align-anchor-alignment = #CENTER
\mark "↓"
\key a \major
e1
% 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 "↓"
e1

[image of music]

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 "↓"
e1
% 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 "↓"
e1

[image of music]


Autres langues : English, deutsch, español, italiano, 日本語.
About automatic language selection.

LilyPond — Manuel de notation v2.17.97 (branche de développement).