Suivant : , Précédent : Utilisation de code Scheme au lieu de \"tweak\", Haut : La commande override


5.2.7 \set vs. \override

Si les propriétés peuvent être modifiées de deux façons, par les commandes \set et \override, c'est qu'il y a deux types de propriétés.

Les contextes peuvent avoir des propriétés, dont les noms commencent par une minuscule puis comprennent une ou plusieurs majuscules (de style totoTutu). Elles ont surtout trait à la notation des éléments musicaux : par exemple, localKeySignature permet de choisir s'il faut ou non imprimer une altération, ou measurePosition permet de choisir quand il faut imprimer une barre de mesure. Ces propriétés de contextes sont appelées à changer au long de l'interprétation de la partition : measurePosition en est un exemple évident. Ces propriétés doivent être modifiées avec la commande \set.

Il existe un type particulier de propriétés : les descriptions d'éléments. Ces propriétés, dont les noms commencent par une majuscule, puis comprennent une ou plusieurs majuscules (de style TotoTata), contiennent les réglages ‘par défaut’ pour les objets graphiques. Ces réglages sont sous forme de liste Scheme ; on peut les consulter dans le fichier scm/define-grobs.scm. Les descriptions d'éléments doivent être modifiées avec la commande \override.

\override est en fait un raccourci :

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

est plus ou moins l'équivalent de

\set contexte.objet #'propriété = #(cons (cons 'propriété valeur) <valeur précédente de contexte)

La valeur de context (la liste Scheme, ou ‘alist’) sert à initialiser les propriétés des objets un par un. Les objets eux-même ont leurs propriétés, dont les noms, dans la tradition du langage Scheme, comprennent un trait d'union (toto-titi). Ces propriétés internes changent constamment au cours de la mise en page : en fait, la gravure d'une page n'est autre que le calcul de toutes ces propriétés, au moyen de fonctions de rappel.

La propriété fontSize est une exception : c'est un raccourci, qui équivaudrait à saisir \override ... #'font-size pour tous les objets textuels. Dans la mesure où il s'agit d'une manipulation très courante, une propriété spéciale a été créée. Elle doit être modifiée avec la commande \set.

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.