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.
À 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
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
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
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
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
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
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.