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
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
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])
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.