Suivant : , Précédent : Modification des greffons de contexte, Haut : Contextes d’interprétation


5.1.4 Retouches de mise en forme au sein des contextes

Chaque contexte est chargé de créer plusieurs types d'objets graphiques. Il contient également les réglages nécessaires pour chacun de ces objets. Si l'on modifie ces réglages, les objets n'auront plus la même apparence.

La syntaxe employée pour ce faire est

\override contexte.objet #'propriété = #valeur

Ici objet est un objet graphique, tel que Stem (les hampes) ou NoteHead (les têtes de note) ; propriété est une variable (désignée par un symbole, ce qui explique l'apostrophe) employée par le système de mise en page. La sous-section Élaboration d’une retouche vous aidera à savoir quoi mettre à la place de objet, propriété et valeur ; notre propos n'est ici que d'examiner l'emploi de cette commande.

La commande suivante :

\override Staff.Stem #'thickness = #4.0

rend les hampes plus épaisses (la valeur par défaut est 1.3, ce qui signifie qu'elles sont 1,3 fois plus épaisses que les lignes de la portée). Dans la mesure où nous avons indiqué Staff comme contexte, ce réglage ne s'appliquera qu'à la portée courante ; les autres portées demeureront intactes.

     
     c4
     \override Staff.Stem #'thickness = #4.0
     c4
     c4
     c4

[image of music]

La commande \override modifie donc la définition de l'objet Stem dans le contexte Staff ; toutes les hampes qui suivent seront affectées.

Tout comme avec la commande \set, l'argument contexte peut être omis, auquel cas le contexte par défaut (ici, Voice) sera employé. La commande \once permet de n'appliquer la modification qu'une seule fois.

     
     c4
     \once \override Stem #'thickness = #4.0
     c4
     c4

[image of music]

La commande \override doit être entrée avant l'objet concerné. Ainsi, lorsque l'on veut altérer un objet qui se prolonge, tel qu'une liaison, une ligature ou tout autre objet dit Spanner, la commande \override doit être saisie avant que l'objet soit créé.

     
     \override Slur #'thickness = #3.0
     c8[( c
     \override Beam #'thickness = #0.6
     c8 c])

[image of music]

Dans cet exemple, la liaison (Slur) est épaissie, mais non la ligature (Beam). En effet, le code qui lui est relatif n'a pas été inséré avant le début de la ligature, et demeure donc sans effet.

De même que la commande \unset, la commande \revert défait ce qui a été fait par une commande \override. Tout comme avec \unset, elle ne peut annuler que les réglages effectués dans le même contexte. Ainsi dans l'exemple suivant, la commande \revert est sans effet.

\override Voice.Stem #'thickness = #4.0
\revert Staff.Stem #'thickness

Il existe, à l'intérieur même de certaines propriétés, des options que l'on nomme ‘sous-propriétés’. La syntaxe est alors

\override contexte.objet #'propriété #'sous-propriété = #valeur

Ainsi, par exemple :

\override Stem #'details #'beamed-lengths = #'(4 4 3)

Voir aussi

Référence du programme : OverrideProperty, RevertProperty, PropertySet, Backend, et All layout objects.

Problèmes connus et avertissements

La sous-couche Scheme ne vérifie pas la saisie des propriétés de façon très stricte. Des références cycliques dans des valeurs Scheme peuvent de ce fait interrompre, ou faire planter le programme – ou bien les deux.

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.