GNU LilyPond – Manuel d’initiation : 4.3.3 Length and thickness of objects
Description: GNU LilyPond – Manuel d'initiation: 4.3.3 Length and thickness of objects
Keywords: GNU LilyPond – Manuel d'initiation: 4.3.3 Length and thickness of objects

### 4.3.3 Length and thickness of objects

Dans LilyPond, les écartements et longueurs sont généralement mesurés en « intervalles de lignes » (staff-spaces en anglais), c’est-à-dire l’écartement qui sépare deux lignes adjacentes dans la portée – plus rarement, il est question de demi-intervalles de lignes. Les propriétés d’épaisseur (`thickness`), quant à elles, sont généralement mesurées en unités d’une propriété interne appelée « épaisseur de ligne » (`line-thickness`). Par exemple, les lignes de crescendo/decrescendo présentent par défaut une épaisseur de 1 unité de `line-thickness`, alors que l’épaisseur d’une hampe est de 1,3. Toutefois, certaines propriétés d’épaisseur sont différentes : par exemple, l’épaisseur des ligature se mesure en espaces de portée.

Dans ces conditions, comment ajuster les longueurs à la taille des polices de caractères ? La solution consiste à utiliser une fonction spéciale appelée `magstep` – pseudo facteur de zoom –, créée précisément dans ce but. Elle comporte un argument, le changement de taille de police (#-2 dans l’exemple précédent), à partir duquel elle applique un facteur de mise à l’échelle qui réduit, ou augmente, les objets en proportion. Voici comment elle s’utilise :

>     \new Staff ="main" {
>       \relative g' {
>         r4 g8 g c4 c8 d |
>         e4 r8
>         <<
>           { f c c }
>           \new Staff \with {
>             alignAboveContext = #"main"
>             \override Clef #'stencil = ##f
>             \override TimeSignature #'stencil = ##f
>             fontSize = #-2
>             % Reduce stem length and line spacing to match
>             \override StaffSymbol #'staff-space = #(magstep -2)
>           }
>             { f8 f c }
>         >>
>         r4 |
>       }
>     }

Puisque la longueur des hampes et plusieurs autres propriétés de longueur sont calculées par rapport à la valeur de la propriété `staff-space`, elles sont automatiquement mises à l’échelle. Vous remarquerez que cela n’affecte que la dimension verticale de l’ossia – la dimension horizontale étant déterminée par les objets de la portée principale de façon à rester synchronisée vis-à-vis d’elle, elle n’est pas affectée par tous ces changements de taille. Bien sûr, si l’échelle de toute la portée principale était modifiée, tout le placement horizontal s’en trouverait affecté. Il en sera question plus bas dans cette section.

Voilà qui complète la création d’une ossia. Les tailles et longueurs de tous les objets peuvent être modifiées de manière analogue.

Pour de petits changements d’échelle, comme dans l’exemple ci-dessus, il n’est généralement pas utile d’ajuster l’épaisseur des différentes lignes telles que les barres de mesure, les ligatures, les soufflets de crescendo/decrescendo, les liaisons, etc. Si l’épaisseur d’un objet en particulier doit être ajustée, le mieux est de modifier sa propriété `thickness`. Nous avons vu plus haut, dans Properties of layout objects, un exemple de modification de l’épaisseur des liaisons. L’épaisseur de tous les objets tracés (c’est-à-dire ceux qui ne proviennent pas d’une police de caractère) peut être changée de la même manière.

Other languages: English, español, deutsch.

#### Manuel d’initiation