4.2.2 Propriétés listées par interface
Supposons maintenant que nous voulions imprimer des paroles en italique.
Quelle formulation de la commande \override
allons-nous utiliser ?
Nous consultons en premier lieu, comme précédemment, la page de la RPI
qui contient la liste ‘Tous les objets de rendu’, et recherchons
un objet qui contrôle les paroles. Nous trouvons LyricText
, qui
semble approprié. Nous cliquons dessus et nous voyons apparaître les
différentes propriétés des paroles, parmi lesquelles font-series
et font-size
. Mais aucune ne propose l’italique. Car la mise
en forme des caractères est une propriété commune à tous les objets
d’écriture, si bien que, au lieu de figurer dans tous les objets de rendu,
elle est regroupée avec d’autres propriétés semblables et placée dans une
Interface, la font-interface
.
Il nous faut donc apprendre à trouver les propriétés des interfaces et découvrir les objets qui utilisent les propriétés de ces interfaces.
Retournons à la page de la RPI qui traite des paroles
(LyricText). En bas de la page est dressée sous forme de liens
la liste des interfaces qui concernent LyricText. Cette liste comporte
plusieurs entrées, dont font-interface
. En cliquant dessus, nous
voyons apparaître les différentes propriétés associées à cette
interface, qui sont en même temps les propriétés de tous les objets qui
s’y rapportent, parmi lesquels LyricText.
Nous avons alors sous les yeux tous les réglages de propriétés qui
contrôlent les polices de caractères, et notamment
font-shape(symbole)
, où symbole
peut prendre la valeur
upright
, italics
ou caps
.
Vous remarquerez que font-series
et font-size
figurent
aussi dans la liste. La question qui ne manque pas de se poser est :
« Comment se fait-il que les propriétés font-series
et
font-size
se retrouvent à la fois dans LyricText
et dans
l’interface font-interface
alors que ce n’est pas le cas pour
font-shape
? » La réponse est que lorsqu’un objet LyricText
est créé, les valeurs globales par défaut de font-series
et
font-size
sont modifiées, mais pas celles de font-shape
.
Les possibilités de modification dans LyricText
ne concernent
donc que les valeurs à appliquer à LyricText
. Les autres objets qui
dépendent de font-interface
fixeront leurs propriétés différemment
lorsqu’ils seront créés.
Voyons maintenant si nous sommes en mesure de formuler la commande
\override
pour mettre les paroles en italique. L’objet est
LyricText
, la propriété est font-shape
et la valeur est
italic
. Comme auparavant, nous laissons de côté le contexte.
Signalons rapidement – même si cette remarque est importante – que,
puisque les valeurs de font-shape
se présentent sous forme de
symboles, elles doivent être précédées d’une simple apostrophe,
'
. C’est pour cette raison qu’il fallait une apostrophe devant
thickness
dans l’exemple précédent, et qu’il en faut une devant
font-shape
. Ce sont à chaque fois des symboles, qui sont
interprétés comme tels par LilyPond. Certains symboles peuvent être des
noms de propriété, comme thickness
ou font-shape
,
d’autres sont des valeurs à attribuer aux propriétés, comme
italic
. À ne pas confondre avec les chaînes de caractères libres,
qui se présentent comme "un texte libre"
; pour plus de détails
sur les symboles et les chaînes de caractères, voir Tutoriel Scheme.
Ainsi, la commande \override
pour mettre les paroles en italique
est :
\override LyricText #'font-shape = #'italic
et elle doit être placée juste devant et tout près des paroles à modifier, comme ceci :
{ \time 6/8 { r4 b8 b[( g]) g | g[( e]) e d[( f]) a | a g } \addlyrics { \override LyricText #'font-shape = #'italic The man who feels love's sweet e -- mo -- tion } }
et voilà les paroles en italiques.
Spécification du contexte en mode lyrique
Lorsqu’il s’agit de paroles et qu’on cherche à préciser le contexte
sur le modèle de ce qui a été fait précédemment, la commande échoue.
Car une syllabe saisie en mode Paroles (lyricmode) se termine
obligatoirement par une espace, un saut de ligne ou un nombre. Tout
autre caractère compte comme un élément de la syllabe. C’est pourquoi
il faut une espace ou un saut de ligne avant le }
final, pour
éviter qu’il ne soit assimilé à la dernière syllabe. De même, il faut insérer
des espaces avant et après le point, ‘.’, qui sépare le nom de
contexte du nom de l’objet, faute de quoi les deux noms seront joints et
l’interpréteur ne pourra pas les reconnaître. La formulation correcte est
donc :
\override Lyrics . LyricText #'font-shape = #'italic
Note : Dans la saisie des paroles, pensez à toujours laisser une espace entre la dernière syllabe et l’accolade fermante. |
Note : Lorsqu’on retouche des paroles, toujours placer des espaces autour du point qui sépare le nom de contexte du nom d’objet. |
Voir aussi
Manuel d’initiation : Tutoriel Scheme.