GNU LilyPond – Manuel de notation : 5.1.4 Layout tunings within contexts
Description: GNU LilyPond – Manuel de notation: 5.1.4 Layout tunings within contexts
Keywords: GNU LilyPond – Manuel de notation: 5.1.4 Layout tunings within contexts

### 5.1.4 Layout tunings within contexts

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 Constructing a tweak 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)

#### See also

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

#### Known issues and warnings

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.

#### Manuel de notation