GNU LilyPond – Manuel d'initiation: 4.3.2 Taille des objets

### 4.3.2 Taille des objets

Pour commencer, reprenons l’exemple qui se trouvait dans Expressions musicales imbriquées, qui montrait comment créer une nouvelle portée temporaire, du type ossia.

>     \new Staff ="main" {
>       \relative g' {
>         r4 g8 g c4 c8 d |
>         e4 r8
>         <<
>           { f8 c c }
>           \new Staff \with {
>             alignAboveContext = #"main" }
>           { f8 f c }
>         >>
>         r4 |
>       }
>     }

Normalement, les ossias ne comportent ni clef ni indication de mesure, et elles sont imprimées légèrement plus petit que la portée principale. Nous avons déjà appris à enlever la clef et la métrique – il suffit de régler le stencil de chacun sur `#f`, comme ceci :

>     \new Staff ="main" {
>       \relative g' {
>         r4 g8 g c4 c8 d |
>         e4 r8
>         <<
>           { f8 c c }
>           \new Staff \with {
>             alignAboveContext = #"main"
>           }
>           {
>             \override Staff.Clef #'stencil = ##f
>             \override Staff.TimeSignature #'stencil = ##f
>             { f8 f c }
>           }
>         >>
>         r4 |
>       }
>     }

La paire d’accolades ajoutée après la clause `\with` est nécessaire pour être sûr que les retouches (`\override`) ainsi que la musique qui se trouvent à l’intérieur soient bien appliquées à la portée d’ossia.

Mais alors, quelle différence y a-t-il à modifier le contexte de portée au moyen de `\with` ou à modifier les stencils de la clef et de la métrique avec `\override` ? La principale différence est que les changements opérés dans une clause `\with` sont réalisés au moment où le contexte est créé et restent par la suite les valeurs par défaut aussi longtemps que ce contexte existe, tandis que les commandes `\set` ou `\override` insérées dans la musique sont dynamiques – elles provoquent des changements synchronisés avec un point particulier de la musique. Si les changements sont annulés ou désactivés par `\unset` ou `\revert`, les réglages reprennent leurs valeurs par défaut, c’est-à-dire celles qui ont été fixées dans la clause `\with`, ou, en l’absence de celle-ci, les valeurs par défaut normales.

Certaines propriétés de contexte ne peuvent être modifiées que dans une clause `\with`. Il s’agit des propriétés qu’on ne peut évidemment plus changer après que le contexte a été créé. C’est le cas de `alignAboveContext` et de son pendant, `alignBelowContext` – une fois que la portée a été créée, son alignement est décidé et cela n’aurait aucun sens de vouloir le modifier par la suite.

Dans une clause `\with`, on peut aussi régler les valeurs par défaut des propriétés d’un objet. Il suffit d’utiliser la commande `\override` normale, sans s’occuper du nom de contexte puisqu’il ne fait pas de doute qu’il s’agit du contexte en cours de modification par la clause `\with`. Il se produirait même une erreur si le contexte était précisé.

Remplaçons donc l’exemple ci-dessus par celui-ci :

>     \new Staff ="main" {
>       \relative g' {
>         r4 g8 g c4 c8 d |
>         e4 r8
>         <<
>           { f8 c c }
>           \new Staff \with {
>             alignAboveContext = #"main"
>             % Don't print clefs in this staff
>             \override Clef #'stencil = ##f
>             % Don't print time signatures in this staff
>             \override TimeSignature #'stencil = ##f
>           }
>           { f8 f c }
>         >>
>         r4 |
>       }
>     }

Venons-en finalement au changement de taille des objets.

Certains objets sont créés comme des glyphes choisis dans une police de caractères. C’est le cas des têtes de notes, des altérations, des markup, des clefs, des métriques, des nuances et des paroles. Pour changer leur taille, on modifie la propriété `font-size`, comme nous le verrons rapidement. D’autres objets, comme les liaisons de phrasé ou de prolongation – en général les objets étendus – sont dessinés à la demande, si bien qu’aucune `font-size` ne leur est associée. Ces objets tirent généralement leur dimension des objets auxquels ils sont rattachés, de sorte qu’on ne doit pas avoir à les redimensionner à la main. D’autres propriétés, comme la hauteur des hampes et des barres de mesure, l’épaisseur des ligatures et d’autres lignes, et l’écartement des lignes de portée, doivent encore être modifiées de façon particulière.

Si l’on revient à l’exemple d’ossia, commençons par changer la taille de police. Nous pouvons employer deux méthodes. Soit nous changeons la taille de police de chaque type d’objet avec des commandes comme celle-ci pour les têtes de notes (`NoteHead`) :

>     \override NoteHead #'font-size = #-2

soit nous changeons la taille de toutes les polices à la fois grâce à la propriété `fontSize`, en utilisant `\set` ou en l’insérant dans une clause `\with` (mais alors sans le `\set`).

>     \set fontSize = #-2

Chacune de ces méthodes réduira la taille de police de deux points par rapport à sa valeur précédente, sachant que chaque point réduit ou augmente la taille d’environ 12 %.

Essayons sur l’exemple d’ossia :

>     \new Staff ="main" {
>       \relative g' {
>         r4 g8 g c4 c8 d |
>         e4 r8
>         <<
>           { f8 c c }
>           \new Staff \with {
>             alignAboveContext = #"main"
>             \override Clef #'stencil = ##f
>             \override TimeSignature #'stencil = ##f
>             % Reduce all font sizes by ~24%
>             fontSize = #-2
>           }
>           { f8 f c }
>         >>
>         r4 |
>       }
>     }

Ce n’est pas encore parfait. Les têtes de notes et les crochets sont plus petits mais, proportionnellement, les hampes sont trop longues et les lignes de la portée trop espacées. Il faut donc les réduire dans les mêmes proportions que les polices de caractères. La prochaine sous-section montrera comment faire.

Autres langues : English, česky, deutsch, español, 日本語, nederlands.

#### LilyPond — Manuel d’initiation