GNU LilyPond – Manuel de notation: 4.1.4 Variables d'espacement vertical fluctuant

### 4.1.4 Variables d’espacement vertical fluctuant

Il est souvent judicieux d’apporter un peu de flexibilité à l’espacement entre différents éléments (marges, titres, systèmes ou mouvements), en dilatation ou compression selon le cas. Un certain nombre de variables de type `\paper` répertoriées ci-dessous vous permettront d’affiner ces dimensionnements.

Gardez à l’esprit que les variables du bloc `\paper` dont nous parlons ici n’influencent en rien l’espacement des portées d’un même système. L’espacement au sein des systèmes est géré par des propriétés attachées à des objets graphiques (grobs) qui, elles, se définissent au niveau du bloc `\score` – voir à ce sujet Espacement vertical au sein d’un système.

#### Structure des variables d’espacement vertical fluctuant

Chacune de ces variables attachées au bloc `\paper` est constituée d’une liste associative (alist) à quatre clés :

- `basic-distance` (distance de base) – la grandeur d’espace par défaut, exprimée en hauteur de portée, séparant les points de référence de deux éléments, qui évite tout risque de collision en l’absence de dilatation ou compression. Le point de référence d’un titre ou d’un markup est son sommet, celui d’un système est le centre vertical du `StaffSymbol` le plus proche – même lorsqu’une ligne de « non-portée » viendrait à s’intercaler. Une `basic-distance` inférieure à `padding` ou `minimum-distance` sera sans effet, dans la mesure où l’espacement résultant ne saurait être inférieur à `padding` ou `minimum-distance`.
- `minimum-distance` (distance minimale) – l’espacement minimal, exprimé en hauteur de portée, entre les points de référence des deux éléments alors qu’il y a déjà un effet de compression. Une `minimum-distance` inférieure à la valeur du `padding` sera sans effet, dans la mesure où l’espacement résultant ne saurait être inférieur au `padding`.
- `padding` (décalage) – la grandeur minimale de « blanc » qui sépare deux éléments, exprimée en hauteur de portée. On peut le voir comme la hauteur minimale d’un rectangle vide qui devrait s’étendre sur toute la largeur des deux éléments.
- `stretchability` (dilatation) – le coefficient d’étirement de cet espace. Un coefficient nul permet de figer l’espacement, à moins qu’il n’en résulte des collisions. Un coefficient positif déterminera la propension d’un espacement à s’étirer, tout en tenant compte du coefficient affecté aux autres espacements. Par exemple, lorsque le coefficient de dilatation d’une dimension est double de celui d’une autre, elle pourra s’étirer deux fois plus que cette dernière. Il ne saurait être négatif. La valeur `+inf.0` provoque une `programming_error` (erreur de programmation) et est ignorée ; vous pouvez toutefois utiliser `1.0e7` pour obtenir une valeur proche de l’infini. Lorsque cette clé n’est pas définie, sa valeur est par défaut égale à `space`. Notez bien que l’utilisateur ne peut définir une propension à la compression ; elle est en fait égale à (`basic-distance` - `minimum-distance`).

Lorsque l’impression n’est pas en pleine page – elle est donc ragged bottom pour les anglophones – l’élément `space` n’est pas étiré. Les hauteurs sur une telle page correspondront donc au maximum de

- `basic-distance`, plus
- `minimum-distance` et
- `padding`, augmenté de ce qu’il faut pour éviter les chevauchements.

Cependant, lorsque la partition fait plusieurs pages, la dernière page reprendra dans la mesure du possible l’espacement de la page précédente.

Les manières de modifier des listes associatives font l’objet d’un chapitre spécifique. L’exemple suivant indique deux façons de modifier une liste associative. La première déclaration intervient sur une seule clé, alors que la deuxième redéfinit complètement la variable.

>     \paper {
>       system-system-spacing.basic-distance = #8

>       score-system-spacing =
>         #'((padding . 1)
>            (basic-distance . 12)
>            (minimum-distance . 6)
>            (stretchability . 12))
>     }

#### Liste des variables d’espacement fluctuant

Le nom des dimensionnements à hauteur variable sont de la forme `avant-après-spacing`, où `avant` et `après` représentent les éléments qui doivent être espacés. La distance s’établit entre les points de référence des deux éléments concernés (voir la rubrique précédente pour plus de précision). Notez bien que, dans les règles de nommage des variables qui suivent, le terme `markup` fait référence aussi bien à un markup de titrage (`bookTitleMarkup` ou `scoreTitleMarkup`) qu’à un markup de haut niveau (voir Structure de fichier). Toutes les distances sont exprimées en espace de portée.

Leurs valeurs par défaut sont inscrites dans le fichier ‘`ly/paper-defaults-init.ly`’.

`markup-system-spacing`

  détermine l’espacement entre un titre ou un markup de premier niveau, et le système qui le suit.

`score-markup-spacing`

  détermine l’espacement entre le dernier système et le titre ou markup de haut niveau qui le suit.

`score-system-spacing`

  détermine l’espacement entre le dernier système d’une partition et le premier système de la partition suivante, en l’absence de titrage ou markup qui les sépare.

`system-system-spacing`

  détermine l’espacement entre deux systèmes d’un même mouvement.

`markup-markup-spacing`

  détermine l’espacement entre deux titres ou markups de premier niveau.

`last-bottom-spacing`

  détermine la distance entre le dernier système ou le dernier markup de haut niveau, et le bas de la surface imprimable – autrement dit le haut de la marge basse.

`top-system-spacing`

  détermine l’espace entre le haut de la surface imprimable (le bas de la marge haute) et le milieu du premier système. Cette variable n’est effective qu’en l’absence de titre ou markup de premier niveau en haut de page.

`top-markup-spacing`

  détermine l’espace entre le haut de la surface imprimable (le bas de la marge haute) et le premier titre ou markup de premier niveau. Cette variable n’est effective qu’en l’absence de système en haut de page.

#### Voir aussi

Manuel de notation : Espacement vertical au sein d’un système.

Morceaux choisis : Espacements.

Morceaux choisis : Espacements.

#### LilyPond — Manuel de notation v2.24.4 (branche stable).