Suivant : Correction des collisions d’objets, Haut : Collisions d’objets
Aussi surprenant que cela puisse paraître, LilyPond n'est pas parfait. Certains éléments sur la partition peuvent se chevaucher, ce qui est regrettable mais, le plus souvent, facile à corriger. En général, quand on déplace des objets, c'est pour des raisons de lisibilité ou d'esthétique – ils rendraient mieux avec un peu plus ou un peu moins d'espace autour d'eux.
Il y a trois façons de résoudre les problèmes de chevauchement. Il est préférable de les aborder dans l'ordre suivant :
\override
. Il y a deux
avantages à changer ces propriétés : (a) d'autres objets pourront être
déplacés automatiquement si nécessaire pour faire de la place, et (b)
la même retouche peut s'appliquer à toutes les occurrences du même
type d'objet. Ces propriétés sont :
direction
Ce point a déjà été traité en détails – voir Objets inclus dans la portée.
padding
, left-padding
,
right-padding
, staff-padding
Au moment de positionner un objet, la valeur de sa propriété
padding
détermine l'espace à laisser libre entre celui-ci et le
coin le plus proche de l'objet à côté duquel il est placé. Vous remarquerez
que c'est la valeur padding
de l'objet à placer qui
compte ; la valeur padding
de l'objet déjà placé est ignorée.
Les espaces libres déterminés par padding
s'appliquent à tous
les objets associés à la side-position-interface
.
Le positionnement de groupes d'altérations est contrôlé par
left-padding
et right-padding
, et non plus padding
.
Ces propriétés appartiennent à l'objet AccidentalPlacement
, qui,
vous le remarquerez, prend place dans le contexte Staff. Dans le
processus de composition, les têtes de notes sont composées en premier,
puis les altérations, s'il y en a, sont ajoutées à gauche des têtes de notes
suivant la propriété right-padding
qui détermine l'espacement par
rapport aux têtes de notes. C'est pourquoi seule la propriété
right-padding
de l'objet AccidentalPlacement
joue sur le
positionnement des altérations.
La propriété staff-padding
est très proche de la propriété
padding
: padding
contrôle l'espace minimum entre un
objet qui accepte la side-position-interface
et l'objet le plus
proche (généralement une note ou une ligne de portée) ; staff-padding
ne s'applique qu'aux objets qui sont toujours placés en-dehors de la portée –
il contrôle l'espace minimum à insérer entre l'objet et la portée. Attention :
par défaut, staff-padding
concerne les objets positionnés par rapport
à la portée et n'a aucun effet sur les objets qui sont positionnés par
rapport à une note ; il est toutefois possible de le régler pour
fonctionner avec ces derniers.
Pour trouver quelle propriété ‘padding’ employer pour l'objet que vous cherchez à repositionner, il vous faut consulter les propriétés de l'objet dans la RPI. Prenez garde que les propriétés ‘padding’ ne sont pas forcément traitées dans l'objet en question ; il faut alors regarder les objets qui semblent s'en rapprocher.
Toutes les valeurs ‘padding’ sont exprimées en espaces de portée. Pour la plupart des objets, la valeur par défaut est aux alentours de 1.0, parfois moins (cela dépend de chaque objet). Il est possible de la modifier lorsqu'on a besoin d'un espace vide plus grand (ou plus petit).
self-alignment-X
Cette propriété sert à aligner les objets sur la gauche, sur la droite ou
à les centrer par rapport au point de référence des objets parents.
Elle peut être utilisée avec tous les objets qui acceptent la
self-alignment-interface
. Il s'agit, en général, des objets qui
contiennent du texte. Les valeurs admises sont LEFT
,
RIGHT
et CENTER
. On peut aussi attribuer à
la place une valeur numérique entre -1
et +1
,
où -1
signifie alignement sur la gauche, +1
alignement sur la droite, et les nombres intermédiaires déplacent
progressivement le texte de la gauche vers la droite. Des valeurs
numériques supérieures à 1
sont également admises
pour déplacer le texte encore plus loin vers la gauche, ou des
valeurs inférieures à -1
pour déplacer le texte encore
plus loin vers la droite. Un écart de 1
en valeur
correspond à un déplacement de la moitié de la longueur du
texte.
extra-spacing-width
Cette propriété est utilisée pour tous les objets qui acceptent la
item-interface
. Elle reçoit deux nombres, le premier étant
ajouté au bord gauche et le second au bord droit. Des nombres
négatifs déplacent le coin vers la gauche, des nombres positifs
vers la droite, si bien que pour élargir un objet, le premier nombre
doit être négatif et le second positif. Attention : tous les objets
n'acceptent pas forcément les deux nombres. Par exemple, l'objet
Accidental
ne retient que le premier nombre (coin gauche).
staff-position
staff-position
est une propriété de la
staff-symbol-referencer-interface
, qui s'applique aux objets
positionnés par rapport à la portée. Elle indique, en demi-espaces de
portée, la position verticale des objets par rapport à la ligne médiane
de la portée. C'est bien pratique pour résoudre des problèmes de
collision entre des objets comme les silences valant mesure entière,
les liaisons et les notes de différentes voix.
force-hshift
Des notes très proches dans un accord, ou des notes simultanées dans
différentes voix, peuvent être disposées sur deux colonnes, rarement
plus, pour éviter que les têtes de notes ne se chevauchent. On parle
alors de colonnes de notes et un objet appelé NoteColumn
est créé pour placer les notes sur la colonne.
La propriété force-hshift
appartient à NoteColumn
(en
réalité à la note-column-interface
). Le fait de la modifier permet
de déplacer une colonne de notes selon l'unité appropriée aux colonnes
de notes, à savoir la largeur des têtes de notes de la première voix. Son
utilisation est réservée à des situations complexes dans lesquelles les
commandes habituelles \shiftOn
(voir Instanciation explicite des voix) ne suffisent plus à résoudre les
conflits. Elle est alors préférable à l'utilisation de la propriété
extra-offset
, dans la mesure où on n'a pas besoin d'exprimer
la distance en espaces de portée et où le fait de déplacer les notes à
l'intérieur ou à l'extérieur d'une NoteColumn
affecte d'autres
actions comme les fusionnements de notes.
extra-offset
grob-interface
.
Elle reçoit une paire de nombre qui indiquent le déplacement supplémentaire
dans le sens horizontal et vertical. Des nombres négatifs déplacent l'objet
vers la gauche ou vers la droite. L'unité utilisée est l'espace de portée. Le
déplacement supplémentaire intervient une fois que la composition des
objets est achevée, si bien qu'un objet peut être repositionné à n'importe
quel endroit sans que ça perturbe quoi que ce soit.
positions
positions
a été retouchée, la
liaison la plus proche de la position demandée sera retenue dans la
liste.
Il est possible qu'un objet ne dispose pas de toutes ces propriétés. Il est donc nécessaire de consulter la RPI pour vérifier quelles sont les propriétés disponibles pour l'objet en question.
Voici une liste d'objets les plus couramment impliqués dans les collisions, avec le nom de l'objet à consulter dans la RPI afin de trouver les propriétés à retoucher pour obtenir un déplacement.
Type d'objet | Nom d'objet
|
---|---|
Articulations | Script
|
Barres de croches | Beam
|
Doigté | Fingering
|
Liaisons de phrasé | Slur
|
Liaisons de prolongation | Tie
|
Nolets | TupletBracket
|
Nuances (verticalement) | DynamicLineSpanner
|
Nuances (horizontalement) | DynamicText
|
Reprises / marques de texte | RehearsalMark
|
Texte, p.ex. ^"texte" | TextScript
|