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.

À FAIRE : les modifications de la gestion des espacements de la version 2.12 feront perdre leur pertinence aux exemples suivants. Ils démontrent cependant la puissance de LilyPond, et justifient à ce titre leur présence dans ces lignes, tant que d'autres exemples n'auront pas été proposés.

     
       % temporary code to break this example:
       \override TextScript #'outside-staff-priority = ##f
     e4^\markup{ \italic ritenuto } g b e

[image of music]

Le plus simple est ici d'augmenter la distance entre l'objet (du texte comme ici, ou bien des nuances ou des doigtés) et la note. Dans LilyPond, il s'agit de la propriété padding, qui se mesure en espaces relatifs à la taille de la portée. Pour la plupart des objets (chacun ayant sa propre valeur), elle est définie à 1.0, ou un peu moins. Nous voulons ici l'augmenter : essayons 1.5.

     
       % temporary code to break this example:
       \override TextScript #'outside-staff-priority = ##f
     \once \override TextScript #'padding = #1.5
     e4^\markup{ \italic ritenuto } g b e

[image of music]

C'est déjà mieux ! Mais on peut certainement encore améliorer le résultat. Il nous semble, après plusieurs essais, que la meilleure valeur dans ce cas soit 2.3. Toutefois, ce constat est le fruit d'expérimentations et de goût personnel en matière de notation. Essayez le même exemple avec 2.3... mais également avec des valeurs plus grandes (ou plus petites). À votre avis, quelle est la meilleure version ?

La propriété staff-padding est de nature similaire. padding détermine l'espace minimum entre un objet et l'objet le plus proche (le plus souvent une note ou les lignes de la portée) ; staff-padding détermine pour sa part l'espace minimum entre un objet et la portée. La différence est subtile, mais vous apparaîtra clairement ici :

     
       % temporary code to break this example:
       \override TextScript #'outside-staff-priority = ##f
     c4^"piu mosso" b a b
     \once \override TextScript #'padding = #4.6
     c4^"piu mosso" d e f
     \once \override TextScript #'staff-padding = #4.6
     c4^"piu mosso" fis a g
     \break
     c'4^"piu mosso" b a b
     \once \override TextScript #'padding = #4.6
     c4^"piu mosso" d e f
     \once \override TextScript #'staff-padding = #4.6
     c4^"piu mosso" fis a g

[image of music]

Une autre démarche permet de contrôler totalement la position d'un objet — on peut le déplacer horizontalement ou verticalement. Il suffit d'avoir recours à la propriété extra-offset. En fait c'est une méthode plus complexe, qui peut en outre poser des problèmes. Quand on déplace un objet à l'aide de extra-offset, le déplacement est effectué après que LilyPond a placé tous les autres objets. Par conséquent, l'objet ainsi déplacé peut venir recouvrir d'autres objets déjà placés.

     
       % temporary code to break this example:
       \override TextScript #'outside-staff-priority = ##f
     \once \override TextScript #'extra-offset = #'( 1.0 . -1.0 )
     e4^\markup{ \italic ritenuto } g b e

[image of music]

Lorsqu'on utilise extra-offset, le premier nombre décrit le déplacement horizontal (négatif pour un déplacement vers la gauche) tandis que le deuxième décrit un déplacement vertical (positif pour le haut). Après quelques essais, on peut choisir les valeurs suivantes qui semblent donner un résultat satisfaisant.

     
       % temporary code to break this example:
       \override TextScript #'outside-staff-priority = ##f
     \once \override TextScript #'extra-offset = #'( -1.6 . 1.0 )
     e4^\markup{ \italic ritenuto } g b e

[image of music]

Une fois encore, c'est après quelques tâtonnements que l'on a abouti à ces nombres, au regard du résultat final. Si vous souhaitez que le texte soit plus haut, plus à gauche, etc. essayez vous-même et choisissez aprés avoir regardé le résultat.

Une dernière mise en garde : dans cette section, nous avons eu recours à

\once \override TextScript ...

ce qui permet de régler le placement du texte pour la note suivante. Mais si cette note n'a pas de texte, le réglage ne s'appliquera pas et n'attendra pas le prochain texte. Pour que ce comportement persiste après la commande, ne mettez pas \once. Votre réglage s'appliquera alors partout, jusqu'à ce que vous l'annuliez au moyen de la commande \revert. Ceci est expliqué en détail dans La commande override.

     
       % temporary code to break this example:
       \override TextScript #'outside-staff-priority = ##f
     c4^"piu mosso" b
     \once \override TextScript #'padding = #4.6
       a4 b
     c4^"piu mosso" d e f
     \once \override TextScript #'padding = #4.6
     c4^"piu mosso" d e f
     c4^"piu mosso" d e f
     \break
     \override TextScript #'padding = #4.6
     c4^"piu mosso" d e f
     c4^"piu mosso" d e f
     \revert TextScript #'padding
     c4^"piu mosso" d e f

[image of music]

Voir aussi

Dans ce même manuel : La commande override, Retouches courantes.

Cette page documente LilyPond-2.11.58 (branche de développement).

Rapportez toute anomalie en français à lilypond-user-fr@gnu.org ou en anglais à http://post.gmane.org/post.php?group=gmane.comp.gnu.lilypond.bugs

Vos suggestions à propos de la documentation sont les bienvenues.

Autres langues : English, español, deutsch.