GNU LilyPond – Manuel de notation: 4.3.1 Sauts de ligne

### 4.3.1 Sauts de ligne

Les sauts de ligne sont normalement gérés de façon automatique. Ils interviennent de telle sorte qu’une ligne ne soit ni trop resserrée, ni trop aérée, et que des lignes consécutives aient à peu près la même densité.

Vous pouvez cependant insérer l’instruction `\break` à l’endroit où vous le jugez utile pour « forcer » le passage à la ligne suivante :

>     \relative c'' {
>       c4 c c c | \break
>       c4 c c c |
>     }

Par défaut, un saut de ligne ne peut se produire qu’en présence d’une barre de mesure. D’autres facteurs peuvent empêcher la survenance d’un saut de ligne :

- une note ou un silence se prolonge sur la mesure suivante,
- la présence d’un bandeau non ruptible, telle une ligature ou un glissando à cheval sur les mesures.

La commande `\break` force le saut de ligne dans tous les cas, sans tenir compte de la présence d’une barre de mesure ou des autres facteurs. On peut aussi s’affranchir de tous ces facteurs à l’aide de la commande `\allowBreak`. Dans l’exemple suivant, les ruptures sont autorisées partout, y compris au milieu des mesures et malgré la présence de ligature.

>     \repeat unfold 56 { c'8 \allowBreak }

Il existe différents moyens d’éviter l’abus de `\allowBreak` afin de contourner les facteurs ci-dessus qui empêchent les ruptures.

- Le `Bar_engraver` interdit les ruptures entre les barres de mesure lorsqu’est activée `forbidBreakBetweenBarLines`. Pour s’en affranchir, il suffit de désactiver cette propriété.

  >     \layout {
  >       \context {
  >         \Score
  >         forbidBreakBetweenBarLines = ##f
  >       }
  >     }

  >     \fixed c' {
  >       c4 d
  >     }

- Notes et silences en suspend en fin de mesure n’interdiront plus les ruptures dès lors que le `Forbid_line_break_engraver` aura été supprimé du contexte `Voice` :

  >     \new Voice \with {
  >       \remove Forbid_line_break_engraver
  >     } \relative {
  >       c''2. \tuplet 3/2 { c4 c c } c2.
  >     }

- Une ligature ou autre bandeau non ruptible s’étendant sur deux mesures consécutives seront ignorés dès lors que leur propriété `breakable` est activée.

  >     \relative c'' {
  >       \override Beam.breakable = ##t
  >       c2. c8[ c |
  >       c8 c] c2. |
  >      }

L’instruction opposée, `\noBreak`, interdira toute tentative de saut de ligne à la fin de la mesure où elle est explicitée.

Au sein même d’une pièce, les sauts de lignes automatiques sont inhibés dans la musique encadrée par les commandes `\autoLineBreaksOff` et `\autoLineBreaksOn`. Dans le cas où les sauts de page automatiques devraient eux aussi être inhibés, ce sont les commandes `\autoBreaksOff` et `\autoBreaksOn` qu’il faudrait utiliser. Les sauts de ligne ou de page manuels ne sont pas affectés par ces commandes. Notez bien que la désactivation du positionnement automatique des sauts des ligne peut avoir pour effet un débordement de la musique dans la marge de droite si tout ne peut être contenu sur une ligne.

Des sauts de ligne automatiques peuvent cependant être autorisés en un point particulier à l’aide d’un `\once \autoLineBreaksOn` sur une barre de mesure. Ceci ne concerne pas les sauts de page. Ceci indique qu’un saut de ligne peut intervenir à cet endroit précis, mais ne le force en aucun cas.

LilyPond dispose de deux variables de base pour influencer l’espacement au niveau des lignes. Toutes deux se définissent dans un bloc `\layout`, `indent` réglant l’indentation de la première ligne, et `line-width` la longueur des lignes.

L’activation du commutateur `ragged-right` au sein du bloc `\layout` aura pour effet de terminer les systèmes là où ils prendraient fin normalement plutôt que de les étirer sur toute la longueur de la ligne. Ceci est particulièrement utile pour de petits fragments ou pour vérifier la densité induite par l’espacement naturel.

Le commutateur `ragged-last` est équivalent à `ragged-right`, à ceci près qu’il n’affecte que la dernière ligne de la pièce.

>     \layout {
>       indent = 0\mm
>       line-width = 150\mm
>       ragged-last = ##t
>     }

L’utilisation conjointe de `\break` et de blancs dans une section `\repeat` vous permettra de positionner des sauts de ligne à intervalle régulier. Par exemple, les 28 mesures de ce qui suit, si l’on est à 4/4, seront coupées toutes les quatre mesures, pas ailleurs :

>     <<
>       \repeat unfold 7 {
>         s1 \noBreak s1 \noBreak
>         s1 \noBreak s1 \break
>       }
>       { et ici la musique… }
>     >>

#### Commandes prédéfinies

`\break`, `\allowBreak`, `\noBreak`, `\autoBreaksOff`, `\autoBreaksOn`, `\autoLineBreaksOff`, `\autoLineBreaksOn`.

#### Morceaux choisis

#### Recours à une voix supplémentaire pour gérer les sauts

Il est souvent plus pratique de séparer ce qui est purement musical et les informations concernant les sauts de ligne ou de page, en créant une voix supplémentaire dédiée. Cette voix spécifique ne contiendra que des blancs – des silences invisibles `\skip` –, des `\break`, des `\pageBreak` et autres informations concernant les ruptures.

Cette manière de procéder est tout à fait indiquée lorsque vous ajustez les `line-break-system-details` et autres propriétés fort intéressantes de `NonMusicalPaperColumnGrob`.

>     music = \relative c'' { c4 c c c }

>     \score {
>       \new Staff <<
>         \new Voice {
>           s1 * 2 \break
>           s1 * 3 \break
>           s1 * 6 \break
>           s1 * 5 \break
>         }
>         \new Voice {
>           \repeat unfold 2 { \music }
>           \repeat unfold 3 { \music }
>           \repeat unfold 6 { \music }
>           \repeat unfold 5 { \music }
>         }
>       >>
>     }

#### Voir aussi

Manuel de notation : Le bloc `\layout`, Variables de gestion des sauts de ligne.

Référence des propriétés internes : LineBreakEvent.

Morceaux choisis : Espacements.

#### Problèmes connus et avertissements

Les commandes `\autoLineBreaksOff` et `\autoBreaksOff` doivent impérativement se placer après le début de la musique pour éviter tout message d’erreur.

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