5.3.3 Longueur et épaisseur des objets

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 (de)crescendo présentent par défaut une épaisseur d’une 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 – beam-thickness – 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 question. Voici comment elle s’utilise :

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

[image of music]

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 taille et longueur 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 ou 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 Propriétés des objets de rendu, 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.


LilyPond — Manuel d’initiation v2.23.82 (branche de développement).