Suivant : , Haut : Collisions d’objets


4.5.1 Déplacement 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 :

  1. L'orientation d'un objet qui en chevauche un autre peut être changée grâce aux commandes prédéfinies dont la liste a été donnée plus haut à propos des objets de portée (voir Objets inclus dans la portée). Les queues de notes, les liaisons de phrasé et de prolongation, les crochets, les nuances et les nolets peuvent facilement être repositionnés de cette manière. En contrepartie, vous n'avez le choix qu'entre deux positions, sans personnalisation possible.
  2. Les propriétés d'objet, auxquelles LilyPond a recours pour positionner les objets, sont modifiables avec \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 :
  3. Pour terminer, quand toutes les autres méthodes ont échoué, il est possible de repositionner verticalement les objets à la main par rapport à la ligne médiane de la portée, ou en les déplaçant à une distance donnée vers une nouvelle position. Les inconvénients sont qu'il faut individuellement pour chaque objet trouver les valeurs correctes de repositionnement, souvent par tâtonnement, et que, puisque le mouvement est opéré après que LilyPond a placé tous les autres objets, c'est à l'utilisateur de résoudre tous les problèmes de collisions qui pourraient survenir. Et le pire avec cette méthode est que, le jour où la musique est modifiée, il faut de nouveau rechercher les valeurs de repositionnement. Les propriétés à utiliser pour ce type de repositionnement manuel sont :
    extra-offset
    Cette propriété s'applique à tout objet acceptant la 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
    Cette propriété est très utile pour ajuster manuellement l'inclinaison et la hauteur des barres de croches, des liaisons et des nolets. Elle est suivie de deux nombres qui donnent la position des bords gauche et droit des barres, liaisons, etc., par rapport à la ligne médiane de la portée. L'unité de référence est l'intervalle de lignes de portée. Attention toutefois au fait que les liaisons et phrasés ne peuvent pas être repositionnés n'importe où. LilyPond commence par dresser la liste des emplacements possibles pour les liaisons et choisit par défaut la liaison qui « semble la meilleure ». Si la propriété 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

Autres langues : English, español, deutsch.