+Les @i{lignes de non-portée}, comme les @code{Lyrics} ou les
+@code{ChordNames} sont des contextes dont les objets de rendu sont
+gravés à l'instar des portées -- une ligne horizontale dans un système.
+En fait, les lignes de non-portée sont des contextes qui vont créer un
+objet de rendu @code{VerticalAxisGroup}.
+
+L'espacement des lignes de non-portée est géré par les propriétés
+suivantes :
+
+@itemize
+@item Propriétés du @code{VerticalAxisGroup} :
+@itemize
+@item @code{staff-affinity}
+@item @code{nonstaff-relatedstaff-spacing}
+@item @code{nonstaff-nonstaff-spacing}
+@item @code{nonstaff-unrelatedstaff-spacing}
+@end itemize
+@end itemize
+
+Ces propriétés d'objet graphique sont expliquées une à une au chapitre
+@ref{Propriétés d'espacement au sein d'un système}.
+
+L'exemple suivant utilise la propriété @code{nonstaff-nonstaff-spacing}
+pour gérer l'espacement entre des lignes consécutives de non-portée.
+Vous noterez que la valeur élevée attribuée à la clé
+@code{stretchability} permet aux paroles de s'étirer plus que de raison.
+
+@lilypond[verbatim,quote,staffsize=16]
+\layout {
+ \context {
+ \Lyrics
+ \override VerticalAxisGroup.nonstaff-nonstaff-spacing.stretchability = #1000
+ }
+}
+
+\new StaffGroup
+<<
+ \new Staff \with {
+ \override VerticalAxisGroup.staff-staff-spacing = #'((basic-distance . 30))
+ } { c'1 }
+ \new Lyrics \with {
+ \override VerticalAxisGroup.staff-affinity = #UP
+ } \lyricmode { up }
+ \new Lyrics \with {
+ \override VerticalAxisGroup.staff-affinity = #CENTER
+ } \lyricmode { center }
+ \new Lyrics \with {
+ \override VerticalAxisGroup.staff-affinity = #DOWN
+ } \lyricmode { down }
+ \new Staff { c'1 }
+>>
+@end lilypond
+
+@seealso
+Fichiers d'initialisation :
+@file{ly/engraver-init.ly},
+@file{scm/define-grobs.scm}.
+
+Morceaux choisis :
+@rlsrnamed{Spacing,Espacements}.
+
+@c @lsr{spacing,page-spacing.ly},
+@c @lsr{spacing,alignment-vertical-spacing.ly}.
+
+Référence des propriétés internes :
+@rinternals{Contexts},
+@rinternals{VerticalAxisGroup}.
+
+
+@node Positionnement explicite des portées et systèmes
+@subsection Positionnement explicite des portées et systèmes
+@translationof Explicit staff and system positioning
+
+Pour bien comprendre comment fonctionnent les réglages de
+@code{VerticalAxisGroup} et de @code{\paper} abordés dans les deux
+rubriques précédentes, rien ne vaut une collection d'exemples illustrant
+les différentes mises au point du décalage vertical appliqué aux portées
+et systèmes distribués sur une page.
+
+Une autre approche de l'espacement vertical est le recours à
+@code{NonMusicalPaperColumn #'line-break-system-details}. Alors que
+@code{VerticalAxisGroup} et @code{\paper} gèrent un décalage vertical,
+@code{NonMusicalPaperColumn #'line-break-system-details} spécifiera le
+positionnement vertical absolu sur la page.
+
+@code{NonMusicalPaperColumn #'line-break-system-details} prend en charge
+une liste associative de trois mises au point :
+
+@itemize
+@item @code{X-offset}
+@item @code{Y-offset}
+@item @code{alignment-distances}
+@end itemize
+
+Les dérogations en matière d'objet graphique, y compris celles
+concernant les @code{NonMusicalPaperColumn} ci-dessus, peuvent se placer
+à trois différents endroits de votre fichier source :
+
+@itemize
+@item directement au beau milieu des notes
+@item au sein d'un bloc @code{\context}
+@item dans un bloc @code{\with}
+@end itemize
+
+Le réglage de @code{NonMusicalPaperColumn} s'effectue à l'aide d'une
+simple commande @code{\override} au sein d'un bloc @code{\context} ou
+@code{\with}. Dans le cas ou il est stipulé au fil des notes, c'est la
+commande spécifique @code{\overrideProperty} qui doit intervenir. Voici
+quelques exemples de réglages de @code{NonMusicalPaperColumn} à l'aide
+de la commande @code{\overrideProperty} :
+
+@example
+\overrideProperty NonMusicalPaperColumn.line-break-system-details #'((X-offset . 20))
+
+\overrideProperty NonMusicalPaperColumn.line-break-system-details #'((Y-offset . 40))
+
+\overrideProperty NonMusicalPaperColumn.line-break-system-details #'((X-offset . 20)
+ (Y-offset . 40))
+
+\overrideProperty NonMusicalPaperColumn.line-break-system-details #'((alignment-distances . (15)))
+
+\overrideProperty NonMusicalPaperColumn.line-break-system-details #'((X-offset . 20)
+ (Y-offset . 40)
+ (alignment-distances . (15)))
+@end example
+
+Nous allons maintenant voir ces différents réglages en action.
+Commençons par examiner un exemple dépourvu de toute mise au point.
+
+@c \book { } is required in these examples to ensure the spacing
+@c overrides can be seen between systems. -np
+
+@lilypond[verbatim,quote,staffsize=16]
+\header { tagline = ##f }
+\paper { left-margin = 0\mm }
+\book {
+ \score {
+ <<
+ \new Staff <<
+ \new Voice {
+ s1*5 \break
+ s1*5 \break
+ s1*5 \break
+ }
+ \new Voice { \repeat unfold 15 { c'4 c' c' c' } }
+ >>
+ \new Staff {
+ \repeat unfold 15 { d'4 d' d' d' }
+ }
+ >>
+ }
+}
+@end lilypond
+
+Cette partition isole les informations de saut de ligne ou de page dans
+une voix spécifique. La mise en forme est ainsi séparée des événements
+musicaux ; ceci nous permettra d'y voir plus clair au fur et à
+mesure que nous avancerons. Pour plus de précisions, relisez
+@ref{Recours à une voix supplémentaire pour gérer les sauts}.
+
+Les @code{\break} explicites répartissent la musique en lignes de cinq
+mesures chacune. L'espacement vertical est celui que LilyPond attribue
+par défaut. Nous pouvons, afin de fixer explicitement le point
+d'attache vertical de chacun des systèmes, définir un doublet
+@code{Y-offset} en tant qu'attribut du @code{line-break-system-details}
+de l'objet @code{NonMusicalPaperColumn} :
+
+@lilypond[verbatim,quote,staffsize=16]
+\header { tagline = ##f }
+\paper { left-margin = 0\mm }
+\book {
+ \score {
+ <<
+ \new Staff <<
+ \new Voice {
+ \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details #'((Y-offset . 0))
+ s1*5 \break
+ \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details #'((Y-offset . 40))
+ s1*5 \break
+ \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details #'((Y-offset . 80))
+ s1*5 \break
+ }
+ \new Voice { \repeat unfold 15 { c'4 c' c' c' } }
+ >>
+ \new Staff {
+ \repeat unfold 15 { d'4 d' d' d' }
+ }
+ >>
+ }
+}
+@end lilypond
+
+Vous aurez remarqué que nous n'avons déterminé qu'une seule valeur, même
+si la liste associative de @code{line-break-system-details} peut en
+comporter un certain nombre. Vous aurez aussi noté que la propriété
+@code{Y-offset} détermine ici le point de départ de chacun des systèmes
+de la page.
+
+Maintenant que chaque système est explicitement positionné, nous pouvons
+jouer sur la distance séparant les portées de chacun des systèmes, grâce
+à la sous-propriété @code{alignment-distances} de
+@code{line-break-system-details}.
+
+@lilypond[verbatim,quote,staffsize=16]
+\header { tagline = ##f }
+\paper { left-margin = 0\mm }
+\book {
+ \score {
+ <<
+ \new Staff <<
+ \new Voice {
+ \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details #'((Y-offset . 20)
+ (alignment-distances . (15)))
+ s1*5 \break
+ \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details #'((Y-offset . 60)
+ (alignment-distances . (15)))
+ s1*5 \break
+ \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details #'((Y-offset . 100)
+ (alignment-distances . (15)))
+ s1*5 \break
+ }
+ \new Voice { \repeat unfold 15 { c'4 c' c' c' } }
+ >>
+ \new Staff {
+ \repeat unfold 15 { d'4 d' d' d' }
+ }
+ >>
+ }
+}
+@end lilypond
+
+Nous avons maintenant assigné deux valeurs différentes à l'attribut
+@code{line-break-system-details} de l'objet
+@code{NonMusicalPaperColumn}. @code{line-break-system-details} pourrait
+prendre bien d'autres paramètres d'espacement, y compris un doublet
+@code{X-offset}, mais nous n'avons utilisé que @code{Y-offset} et
+@code{alignment-distances} pour contrôler le positionnement de chaque
+système et de chaque portée. Vous noterez enfin que
+@code{alignment-distances} traite le positionnement des portées, non
+d'un regroupement de portées.
+
+@lilypond[verbatim,quote,staffsize=16]
+\header { tagline = ##f }
+\paper { left-margin = 0\mm }
+\book {
+ \score {
+ <<
+ \new Staff <<
+ \new Voice {
+ \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details #'((Y-offset . 0)
+ (alignment-distances . (30 10)))
+ s1*5 \break
+ \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details #'((Y-offset . 60)
+ (alignment-distances . (10 10)))
+ s1*5 \break
+ \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details #'((Y-offset . 100)
+ (alignment-distances . (10 30)))
+ s1*5 \break
+ }
+ \new Voice { \repeat unfold 15 { c'4 c' c' c' } }
+ >>
+ \new StaffGroup <<
+ \new Staff { \repeat unfold 15 { d'4 d' d' d' } }
+ \new Staff { \repeat unfold 15 { e'4 e' e' e' } }
+ >>
+ >>
+ }
+}
+@end lilypond
+
+Quelques points à prendre en considération :
+
+@itemize
+@item
+Lorsque vous utilisez @code{alignment-distances}, les paroles et
+autres lignes de non-portée ne comptent pas pour une portée.
+
+@item
+Les nombres fournis à @code{X-offset}, @code{Y-offset} et
+@code{alignment-distances} sont considérés comme des multiples de la
+distance entre des portées adjacentes. Des valeurs positives remontent
+les portées et paroles, des valeurs négatives les descendent.
+
+@item
+Dans la mesure où @code{NonMusicalPaperColumn #'line-break-system-details}
+permet de positionner systèmes et portées n'importe où sur une page,
+vous pourriez être en contradiction avec les dimensionnements de la
+feuille ou bien aboutir à des surimpressions. Soyez donc raisonnable
+quant aux différentes valeurs que vous affectez à ces réglages.
+
+@end itemize
+
+@seealso
+Morceaux choisis :
+@rlsrnamed{Spacing,Espacements}.
+
+
+@node Résolution des collisions verticales
+@subsection Résolution des collisions verticales
+@translationof Vertical collision avoidance
+
+@funindex outside-staff-priority
+@funindex outside-staff-padding
+@funindex outside-staff-horizontal-padding
+
+Vous savez de manière intuitive qu'un certain nombre d'objets en
+matière de notation musicale appartiennent à la portée, et que
+d'autres se placent en dehors de la portée. Entre autres objets
+externes, nous avons les marques repères, les textes et les
+nuances ; nous les appellerons @qq{objets extérieurs à la portée}.
+La règle adoptée par LilyPond pour positionner verticalement ces
+objets extérieurs consiste à les placer au plus près de la portée
+tout en prenant garde d'éviter qu'il y ait chevauchement.
+
+LilyPond utilise la propriété @code{outside-staff-priority} afin de
+déterminer si un objet est ou non un objet extérieur à la portée :
+lorsque la valeur de @code{outside-staff-priority} est numérique, il
+s'agit d'un objet extérieur à la portée. De plus, la propriété
+@code{outside-staff-priority} indique à LilyPond l'ordre dans lequel ces
+objets doivent être disposés.
+
+Tout d'abord, LilyPond dispose tous les objets qui ne sont pas externes.
+Les objets extérieurs à la portée sont alors triés selon l'ordre
+croissant de leur @code{outside-staff-priority}. Enfin, LilyPond prend
+chacun des ces objets et les positionne de telle sorte qu'il n'entrent
+pas en collision avec ceux qui on déjà été placés. Autrement dit,
+lorsque deux objets devraient se placer au même endroit, celui dont la
+@code{outside-staff-priority} est la plus faible sera disposé au plus
+près de la portée.
+
+@lilypond[quote,ragged-right,relative=2,verbatim]
+c4_"Text"\pp
+r2.
+\once \override TextScript.outside-staff-priority = #1
+c4_"Text"\pp % this time the text will be closer to the staff
+r2.
+% by setting outside-staff-priority to a non-number,
+% we disable the automatic collision avoidance
+\once \override TextScript.outside-staff-priority = ##f
+\once \override DynamicLineSpanner.outside-staff-priority = ##f
+c4_"Text"\pp % now they will collide
+@end lilypond
+
+Le décalage vertical entre un objet extérieur à la portée et celui qui
+le précède se contrôle par la propriété @code{outside-staff-padding}.
+
+@c KEEP LY
+@lilypond[quote,ragged-right,relative=2,verbatim,staffsize=18]
+\once \override TextScript.outside-staff-padding = #0
+a'^"Ce texte est placé au plus près de la note"
+\once \override TextScript.outside-staff-padding = #3
+c^"Ce texte est décalé par rapport au texte précédent"
+c^"Ce texte est accolé au texte précédent"
+@end lilypond
+
+Par défaut, les objets extérieurs à la portée sont positionnés en
+évitant les collisions horizontales avec des objets précédemment
+positionnés. Ceci peut cependant générer des situations où des objets
+se trouvent horizontalement trop proches. L'espacement vertical entre
+les portées peut dans une certaine mesure permettre de mieux intercaler
+les objets extérieurs à la portée. La propriété
+@code{outside-staff-horizontal-padding} repoussera verticalement un
+objet pour éviter ce genre de situation.
+
+@lilypond[quote,ragged-right,relative=2,verbatim]
+% the markup is too close to the following note
+c4^"Text"
+c4
+c''2
+% setting outside-staff-horizontal-padding fixes this
+R1
+\once \override TextScript.outside-staff-horizontal-padding = #1
+c,,4^"Text"
+c4
+c''2
+@end lilypond
+
+@seealso
+Morceaux choisis :
+@rlsrnamed{Spacing,Espacements}.
+
+
+@node Espacement horizontal
+@section Espacement horizontal
+@translationof Horizontal spacing
+
+@cindex horizontal, espacement
+@cindex espacement horizontal
+
+@menu
+* Généralités sur l'espacement horizontal::
+* Changement d'espacement en cours de partition::
+* Modification de l'espacement horizontal::
+* Longueur de ligne::
+* Notation proportionnelle::
+@end menu
+
+
+@node Généralités sur l'espacement horizontal
+@subsection Généralités sur l'espacement horizontal
+@translationof Horizontal spacing overview
+
+Le moteur d'espacement traduit les différences de durée en distances
+étirables (@emph{springs} pour ressorts) de différentes longueurs. Des
+durées importantes prennent ainsi plus de place que des durées moins
+longues. Les durées les plus courtes se verront attribuer un espace
+fixe, contrôlé par la propriété @code{shortest-duration-space} de
+l'objet @rinternals{SpacingSpanner}. Au plus la durée s'allonge, au
+plus elle prendra d'espace : le doublement d'une durée attribuera à
+la note un espace fixé d'après la propriété @code{spacing-increment}.
+
+L'exemple suivant comporte des blanches, des noires et un certain nombre
+de croches. La croche est suivie d'un espace de la largeur d'une tête
+de note ; pour la noire , cet espace est de deux têtes ; il
+est de trois pour la blanche.
+
+@lilypond[quote,verbatim,relative=1]
+c2 c4. c8 c4. c8 c4. c8 c8
+c8 c4 c4 c4
+@end lilypond
+
+@code{spacing-increment} est normalement défini à 1,2 espace de
+portée -- ce qui correspond à peu près à la largeur d'une tête de note
+-- et @code{shortest-duration-space} à 2,0. La note la plus courte
+s'étendra donc sur l'équivalent de 2,4 espaces de portée (2 fois le
+@code{spacing-increment}). Le point de départ de cet espace se situe à
+l'extrémité gauche du symbole ; la note la plus courte est donc
+suivie en général d'un espace égal à la largeur d'une tête de note.
+
+Si l'on suit à la lettre ce qui précède, ajouter une simple triple
+croche à une partition qui comporte déjà des croches et des doubles
+augmentera considérablement son volume : la durée la plus
+courte n'est plus la double mais la triple croche, ce qui aura
+pour conséquence d'ajouter une largeur de tête à chacune des notes.
+Pour s'affranchir de cet effet quelque peu pervers, la durée la plus
+courte prise en considération au niveau de l'espacement n'est pas la
+note la plus brève de la partition, mais celle qui apparaît le plus
+souvent.
+
+La courte durée la plus fréquente est déterminée à partir de la note la
+plus courte de chaque mesure. C'est elle qui servira de base pour
+l'espacement, à cette nuance près que la plus courte durée ne saurait
+être strictement supérieure à la croche. Cette @qq{durée de référence}
+est d'ailleurs affichée lorsque vous lancez @code{lilypond} avec l'option
+@option{--verbose}.
+
+Ces durées peuvent être adaptées. Vous pouvez définir la durée de base
+pour les espacements grâce à la propriété
+@code{common-shortest-duration} de l'objet @rinternals{SpacingSpanner}.
+La durée maximale de cet étalon, normalement la croche, est gérée par la
+propriété @code{base-shortest-duration}.
+
+@funindex common-shortest-duration
+@funindex base-shortest-duration
+@funindex stem-spacing-correction
+@funindex spacing
+
+Les notes plus courtes que la note témoin sont suivies d'un espace
+proportionnel à la durée témoin. Si donc nous ajoutions quelques
+doubles croches à l'exemple précédent, elles seraient suivies d'une
+demie largeur de tête :
+
+@lilypond[quote,verbatim,relative=2]
+c2 c4. c8 c4. c16[ c] c4. c8 c8 c8 c4 c4 c4
+@end lilypond
+
+Dans notre @emph{Essai sur la gravure musicale automatisée}, nous avons
+vu comment la direction des hampes peut influencer l'espacement -- voir
+@ressay{Espacement}. Ceci est contrôlé par la propriété
+@code{stem-spacing-correction} de l'objet @rinternals{NoteSpacing}, créé
+pour chaque contexte @rinternals{Voice}. L'objet
+@rinternals{StaffSpacing}, généré au niveau d'un contexte @code{Staff},
+possède une même propriété qui contrôlera l'espacement hampe-barre de
+mesure. L'exemple suivant montre ces adaptations, tout d'abord selon
+les réglages par défaut, puis avec des corrections forcées.
+
+@lilypond[quote,ragged-right]
+{
+ c'4 e''4 e'4 b'4 |
+ b'4 e''4 b'4 e''4 |
+ \override Staff.NoteSpacing.stem-spacing-correction = #1.5
+ \override Staff.StaffSpacing.stem-spacing-correction = #1.5
+ c'4 e''4 e'4 b'4 |
+ b'4 e''4 b'4 e''4 |
+}
+@end lilypond
+
+L'espacement spécifique à la notation proportionnelle fait l'objet d'une
+@rusernamed{Notation proportionnelle,rubrique dédiée}.
+
+@seealso
+Morceaux choisis :
+@rlsrnamed{Spacing,Espacements}.
+
+Essai sur la gravure musicale automatisée :
+@ressay{Espacement}.
+
+Référence des propriétés internes :
+@rinternals{SpacingSpanner},
+@rinternals{NoteSpacing},
+@rinternals{StaffSpacing},
+@rinternals{NonMusicalPaperColumn}.
+
+@knownissues
+Il n'existe pas de mécanisme simple et efficace qui permette de
+forcer manuellement l'espacement. La solution ci-dessous permet
+cependant @qq{d'aérer} artificiellement une partition ; il vous
+suffit d'ajuster la valeur du décalage @emph{(padding)} autant que de
+besoin.
+@example
+ \override Score.NonMusicalPaperColumn.padding = #10
+@end example
+
+Il n'y a aucun moyen de diminuer l'espacement.
+
+
+@node Changement d'espacement en cours de partition
+@subsection Changement d'espacement en cours de partition
+@translationof New spacing area
+
+Il arrive, au cours d'un même mouvement, qu'une nouvelle partie modifie
+substantiellement la notion de valeur brève et valeur longue. La
+commande @code{newSpacingSection} permet alors de réinitialiser les
+paramètres d'espacement.
+
+Dans l'exemple qui suit, le changement de métrique marque le début
+d'une nouvelle partie ; remarquez comme les doubles-croches sont
+alors plus espacées :
+
+@lilypond[relative,verbatim,quote]
+\time 2/4
+c4 c8 c
+c8 c c4 c16[ c c8] c4
+\newSpacingSection
+\time 4/16
+c16[ c c8]
+@end lilypond
+
+La commande @code{\newSpacingSection} crée un nouvel objet
+@code{SpacingSpanner}, ce qui permet d'appliquer de nouveaux
+@code{\override}s à partir de ce point.
+
+@seealso
+Morceaux choisis :
+@rlsrnamed{Spacing,Espacements}.
+
+Référence des propriétés internes :
+@rinternals{SpacingSpanner}.
+
+
+@node Modification de l'espacement horizontal
+@subsection Modification de l'espacement horizontal
+@translationof Changing horizontal spacing
+
+Vous pouvez influencer l'espacement horizontal à l'aide de la propriété
+@code{base-shortest-duration}. Comparons les deux partitions qui
+suivent, toutes deux montrant la même musique. La première partition
+applique les réglages par défaut, alors que la seconde bénéficie d'un
+ajustement de la propriété @code{base-shortest-duration}. Au plus la
+valeur de @code{ly:make-moment} est grande, au plus la musique sera
+resserrée. En effet, @code{ly:make-moment} construit une durée :
+@code{1 4} est plus long que @code{1 16}.
+
+@lilypond[verbatim,line-width=12\cm]
+\score {
+ \relative c'' {
+ g4 e e2 | f4 d d2 | c4 d e f | g4 g g2 |
+ g4 e e2 | f4 d d2 | c4 e g g | c,1 |
+ d4 d d d | d4 e f2 | e4 e e e | e4 f g2 |
+ g4 e e2 | f4 d d2 | c4 e g g | c,1 |
+ }
+}
+@end lilypond
+
+@lilypond[verbatim,line-width=12\cm]
+\score {
+ \relative c'' {
+ g4 e e2 | f4 d d2 | c4 d e f | g4 g g2 |
+ g4 e e2 | f4 d d2 | c4 e g g | c,1 |
+ d4 d d d | d4 e f2 | e4 e e e | e4 f g2 |
+ g4 e e2 | f4 d d2 | c4 e g g | c,1 |
+ }
+ \layout {
+ \context {
+ \Score
+ \override SpacingSpanner.base-shortest-duration = #(ly:make-moment 1 16)
+ }
+ }
+}
+@end lilypond
+
+@snippets
+L'espacement au sein d'un nolet dépend par défaut d'un certain nombre de
+facteurs qui ne sont pas liés à la durée (altération, changement de
+clef, etc.). @w{@code{Score.SpacingSpanner #'uniform-stretching}}
+permet d'ignorer ces symboles et, par voie de conséquence, forcer
+l'espacement sur la simple durée. Notez bien que cette propriété
+s'appliquera à toute la partition, puisque mentionnée au sein d'un bloc
+@code{\layout}.
+
+@lilypond[quote,ragged-right,verbatim]
+\score {
+ <<
+ \new Staff {
+ \times 4/5 {
+ c8 c8 c8 c8 c8
+ }
+ c8 c8 c8 c8
+ }
+ \new Staff {
+ c8 c8 c8 c8
+ \times 4/5 {
+ c8 c8 c8 c8 c8
+ }
+ }
+ >>
+ \layout {
+ \context {
+ \Score
+ \override SpacingSpanner.uniform-stretching = ##t
+ }
+ }
+}
+@end lilypond
+
+L'activation du commutateur @code{strict-note-spacing} permet d'espacer
+les notes sans tenir compte des clefs, barres de mesure ou notes
+d'ornement qui pourraient apparaître :
+
+@lilypond[quote,ragged-right,relative=2,verbatim]
+\override Score.SpacingSpanner.strict-note-spacing = ##t
+\new Staff { c8[ c \clef alto c \grace { c16[ c] } c8 c c] c32[ c32] }
+@end lilypond
+
+@seealso
+Morceaux choisis :
+@rlsrnamed{Spacing,Espacements}.
+
+
+@node Longueur de ligne
+@subsection Longueur de ligne
+@translationof Line length
+
+@cindex saut de page
+@cindex pages, saut
+@cindex ligne, longueur
+
+@funindex indent
+@funindex line-width
+@funindex ragged-right
+@funindex ragged-last
+
+@c Although line-width can be set in \layout, it should be set in paper
+@c block, to get page layout right.
+@c Setting indent in \paper block makes not much sense, but it works.
+
+@c Bit verbose and vague, use examples?
+Deux réglages de bases ont une influence considérable sur
+l'espacement : @code{line-width} et @code{indent}. Tous deux se
+placent dans le bloc @code{\layout}. Ils contrôleront la longueur des
+lignes et l'indentation de la première.
+
+L'activation du commutateur @code{ragged-right} au sein du bloc
+@code{\layout} permet de terminer les systèmes naturellement plutôt que
+de les voir s'étirer sur toute la largeur de la page. Cette option est
+particulièrement utile lorsque vous traitez de courts fragments, ou bien
+pour vérifier ce que donnerait l'espacement naturel. Bien qu'il soit
+désactivé par défaut, il sera activé si la partition ne comporte qu'un
+seul système.
+
+@cindex page, mise en forme
+@cindex vertical, espacement
+
+Le fonctionnement de l'option @code{ragged-last} est en tout point
+identique à celui de @code{ragged-right}, à ceci près qu'il ne concerne
+que la dernière ligne de la partition. Il n'y a pas de restriction
+quant à cette ligne. Il en va de même que pour le formatage d'un
+paragraphe de texte, la dernière ligne s'arrête au dernier caractère.
+
+@c Note that for text there are several options for the last line.
+@c While Knuth TeX uses natural length, lead typesetters use the same
+@c stretch as the previous line. eTeX uses \lastlinefit to
+@c interpolate between both these solutions.
+
+@example
+\layout @{
+ indent = #0
+ line-width = #150
+ ragged-last = ##t
+@}
+@end example
+
+@seealso
+Morceaux choisis :
+@rlsrnamed{Spacing,Espacements}.
+
+
+@node Notation proportionnelle
+@subsection Notation proportionnelle
+@translationof Proportional notation
+
+LilyPond prend en charge la notation proportionnelle. Il s'agit dans
+ce cas de représenter la notation selon un espacement strictement
+relatif aux durées. Ce type d'espacement pourrait se comparer à
+l'utilisation de papier millimétré pour positionner les notes au fil de
+la portée. Certaines œuvres de la fin du XXe siècle et à l'aube du XXIe
+utilisent cette proportionnalité dans le but de clarifier des structures
+rythmiques complexes, d'aider au positionnement d'indications
+temporelles ou autres éléments graphiques directement dans la partition.
+
+LilyPond met à votre disposition cinq réglages différents, qui peuvent
+s'utiliser conjointement ou individuellement, aux fins de mettre au
+point cette notation proportionnelle.
+
+@itemize
+@item @code{proportionalNotationDuration}
+
+@item @code{uniform-stretching}
+
+@item @code{strict-note-spacing}
+
+@item @code{\remove "Separating_line_group_engraver"}
+
+@item @code{\override PaperColumn.used = ##t}
+
+@end itemize
+
+Nous allons examiner, dans les différents exemples qui suivent, les
+effets de ces réglages et comment ils interagissent.
+
+Commençons par cette mesure toute simple qui utilise l'espacement
+classique et justifiée à gauche.
+
+@lilypond[quote,verbatim,ragged-right]
+\score {
+ <<
+ \new RhythmicStaff {
+ c'2
+ c'16 c'16 c'16 c'16
+ \times 4/5 {
+ c'16 c'16 c'16 c'16 c'16
+ }
+ }
+ >>
+}
+@end lilypond
+
+Vous constatez que la blanche qui entame la mesure prend moins de la
+moitié de l'espace. De même, les doubles croches et le quintolet de
+doubles (donc des vingtièmes de ronde) qui terminent cette mesure
+n'en occupent pas la moitié de l'espace horizontal.
+
+En matière de gravure traditionnelle, cet espacement correspond tout à
+fait à nos attentes, puisque nous pouvons rogner l'espace sur la
+blanche et ainsi gagner en largeur sur toute la mesure qui fait une
+ronde.
+
+Par contre, si nous avons besoin d'insérer une indication temporelle ou
+un autre graphisme en surplomb ou en dessous de notre partition, nous
+aurons besoin de la notation proportionnelle. Celle-ci s'active en
+définissant la propriété @code{proportionalNotationDuration}.
+
+@lilypond[quote,verbatim,ragged-right]
+\score {
+ <<
+ \new RhythmicStaff {
+ c'2
+ c'16 c'16 c'16 c'16
+ \times 4/5 {
+ c'16 c'16 c'16 c'16 c'16
+ }
+ }
+ >>
+ \layout {
+ \context {
+ \Score
+ proportionalNotationDuration = #(ly:make-moment 1 20)
+ }
+ }
+}
+@end lilypond
+
+La blanche du début et les notes plus rapides de la deuxième moitié de
+la mesure occupent maintenant exactement le même espace horizontal.
+Nous pourrions donc y insérer, au-dessus ou au-dessous, une indication
+temporelle ou autre graphisme.
+
+@code{proportionalNotationDuration} est une propriété attachée au
+contexte @code{Score}. Rappelez-vous que vous pouvez régler les
+propriétés d'un contexte à trois différents endroits de votre
+fichier : dans un bloc @code{\with}, dans un bloc @code{\context}
+ou au beau milieu de la musique à l'aide de la commande @code{\set}.
+Vous pouvez donc définir @code{proportionalNotationDuration} selon l'une
+de ces trois façons, à l'instar de n'importe quelle définition de
+contexte.
+
+La propriété @code{proportionalNotationDuration} prend en unique
+argument la durée de référence qui servira de base pour espacer toute la
+musique. La fonction Scheme @code{make-moment} intégrée à LilyPond
+prend deux arguments : un numérateur et un dénominateur qui
+représentent une fraction de ronde. L'appel de
+@w{@code{(ly:make-moment 1 20)}} produit donc une durée de référence
+égale à un vingtième de ronde. Vous pourriez tout aussi bien utiliser
+@code{(ly:make-moment 1 16)}, @code{(ly:make-moment 1 8)} ou
+@code{(ly:make-moment 3 97)}.
+
+Se pose alors le problème de fournir la juste durée de référence à
+@code{proportionalNotationDuration}. Il faut en l'occurrence procéder par
+tâtonnement, en commençant par une valeur proche de la note la plus
+rapide (la durée la plus courte) du morceau. Au plus la durée de
+référence est petite, au plus la musique sera étalée ; à l'inverse,
+une durée de référence élevée produira une musique resserrée.
+
+@lilypond[quote,verbatim,ragged-right]
+\score {
+ <<
+ \new RhythmicStaff {
+ c'2
+ c'16 c'16 c'16 c'16
+ \times 4/5 {
+ c'16 c'16 c'16 c'16 c'16
+ }
+ }
+ >>
+ \layout {
+ \context {
+ \Score
+ proportionalNotationDuration = #(ly:make-moment 1 8)
+ }
+ }
+}
+
+\score {
+ <<
+ \new RhythmicStaff {
+ c'2
+ c'16 c'16 c'16 c'16
+ \times 4/5 {
+ c'16 c'16 c'16 c'16 c'16
+ }
+ }
+ >>
+ \layout {
+ \context {
+ \Score
+ proportionalNotationDuration = #(ly:make-moment 1 16)
+ }
+ }
+}
+
+\score {
+ <<
+ \new RhythmicStaff {
+ c'2
+ c'16 c'16 c'16 c'16
+ \times 4/5 {
+ c'16 c'16 c'16 c'16 c'16
+ }
+ }
+ >>
+ \layout {
+ \context {
+ \Score
+ proportionalNotationDuration = #(ly:make-moment 1 32)
+ }
+ }
+}
+@end lilypond
+
+Vous ne manquerez pas de noter qu'une durée de référence trop grande,
+comme la croche pour la première ligne, a pour conséquence de resserrer
+la musique, ce qui peut aboutir à des chevauchements de têtes. Vous
+remarquez aussi que, par principe, la notation proportionnelle occupe
+beaucoup plus d'espace horizontal que l'espacement traditionnel. La
+notation proportionnelle met en évidence le rythme au détriment de
+l'espacement horizontal.
+
+Examinons à présent le moyen d'optimiser l'espacement de nolets en
+tuilage.
+
+Reprenons notre exemple de départ, avec son espacement traditionnel, et
+ajoutons lui une portée incluant un autre type de nolet.
+
+@lilypond[quote,verbatim,ragged-right]
+\score {
+ <<
+ \new RhythmicStaff {
+ c'2
+ c'16 c'16 c'16 c'16
+ \times 4/5 {
+ c'16 c'16 c'16 c'16 c'16
+ }
+ }
+ \new RhythmicStaff {
+ \times 8/9 {
+ c'8 c'8 c'8 c'8 c'8 c'8 c'8 c'8 c'8
+ }
+ }
+ >>
+}
+@end lilypond
+
+L'espacement est loin d'être idéal, pour la simple raison que
+l'espacement régulier des notes de la portée inférieure ne s'étire pas
+uniformément. Il est vrai que de telles constructions complexes en
+nolets sont assez rares en gravure traditionnelle, ce qui explique que
+les règles qu'elle applique peuvent amener à ce résultat. Le recours à
+@code{proportionalNotationDuration} permet d'arranger les choses.
+
+@lilypond[quote,verbatim,ragged-right]
+\score {
+ <<
+ \new RhythmicStaff {
+ c'2
+ c'16 c'16 c'16 c'16
+ \times 4/5 {
+ c'16 c'16 c'16 c'16 c'16
+ }
+ }
+ \new RhythmicStaff {
+ \times 8/9 {
+ c'8 c'8 c'8 c'8 c'8 c'8 c'8 c'8 c'8
+ }
+ }
+ >>
+ \layout {
+ \context {
+ \Score
+ proportionalNotationDuration = #(ly:make-moment 1 20)
+ }
+ }
+}
+@end lilypond
+
+Cependant, si l'on observe de près, il est évident que les notes de la
+deuxième moitié du ennaolet ont tendance à s'espacer légèrement plus que
+celles de la première moitié. Afin d'uniformiser cet étalement, nous
+allons activer le @code{uniform-stretching}, propriété attachée au
+@code{SpacingSpanner}.
+
+@lilypond[quote,verbatim,ragged-right]
+\score {
+ <<
+ \new RhythmicStaff {
+ c'2
+ c'16 c'16 c'16 c'16
+ \times 4/5 {
+ c'16 c'16 c'16 c'16 c'16
+ }
+ }
+ \new RhythmicStaff {
+ \times 8/9 {
+ c'8 c'8 c'8 c'8 c'8 c'8 c'8 c'8 c'8
+ }
+ }
+ >>
+ \layout {
+ \context {
+ \Score
+ proportionalNotationDuration = #(ly:make-moment 1 20)
+ \override SpacingSpanner.uniform-stretching = ##t
+ }
+ }
+}
+@end lilypond
+
+L'espacement sur les deux portées est maintenant correct, les relations
+rythmiques sont clairement perceptibles, et nous pourrions y insérer
+une indication temporelle ou autre graphisme selon notre envie.
+
+Notez bien que la prise en charge de la notation proportionnelle par
+LilyPond demande que, dans chaque partition, soit activée la propriété
+@code{uniform-stretching} du @code{SpacingSpanner}. Dans le cas
+contraire, utiliser @code{proportionalNotationDuration} aura pour
+conséquence, entre autres, un espacement erroné lorsque vous y aurez
+inséré des silences invisibles @emph{skip}.
+
+Le @code{SpacingSpanner} est en fait un objet graphique abstrait attaché
+au contexte @code{Score}. Tout comme pour la propriété
+@code{proportionalNotationDuration}, les réglages du
+@code{SpacingSpanner} peuvent se faire à trois différents endroits de
+votre fichier : dans un bloc @code{\with}, dans un bloc
+@code{\context} ou au beau milieu de la musique à l'aide de la
+commande @code{\set}.
+
+Gardez bien à l'esprit qu'il n'y a qu'un seul @code{SpacingSpanner} par
+@code{Score}. Il s'ensuit que @code{uniform-stretching} est soit
+activé, soit désactivé, et dans tous les cas pour l'intégralité de la
+partition. Vous pourriez toutefois avoir besoin de modifier ce
+comportement en cours de partition, et recourir alors à l'instruction
+@code{\newSpacingSection} -- pour de plus amples détails, voir la
+rubrique @ref{Changement d'espacement en cours de partition}.
+
+Intéressons-nous maintenant au @code{Separating_line_group_engraver},
+qui est désactivé pour la plupart des partitions en notation
+proportionnelle. Voici ce qui apparaît dans une partition
+traditionnelle : il y a toujours un @qq{espace préservé} juste
+avant la première note de chaque portée.
+
+@lilypond[quote,verbatim,ragged-right]
+\paper {
+ indent = #0
+}
+
+\new Staff {
+ c'1
+ \break
+ c'1
+}
+@end lilypond
+
+Cet espace, géré par le @code{Separating_line_group_engraver}, est aussi
+présent lorsqu'intervient un changement de métrique, d'armure ou de
+clef. Désactiver le @code{Separating_line_group_engraver} revient à
+réduire cet espace à zéro.
+
+@lilypond[quote,verbatim,ragged-right]
+\paper {
+ indent = #0
+}
+
+\new Staff \with {
+ \remove "Separating_line_group_engraver"
+} {
+ c'1
+ \break
+ c'1
+}
+@end lilypond
+
+Les éléments non musicaux tels que métrique, armure et clef, posent
+problème lorsqu'on travaille en notation proportionnelle. Bien
+qu'aucune notion de durée ne leur soit attachée, ces éléments
+@qq{consomment} de l'espace. Différentes approches permettent
+cependant de gérer ce problème.
+
+Éviter les problèmes d'espacement avec l'armure est chose aisée :
+il suffit qu'il n'y en ait pas ! C'est bien souvent le cas en
+musique contemporaine, où l'on trouve le plus d'ouvrages en notation
+proportionnelle. Il en va de même pour la métrique, et tout
+particulièrement lorsque la partition comporte un quadrillage temporel
+ou autres graphismes. L'absence de métrique reste cependant
+exceptionnelle et la plupart des partitions en notation proportionnelle
+laissent apparaître quelques métriques. Il est par contre pratiquement
+impossible de se passer de clef et d'altération.
+
+L'une des options permettant de s'affranchir de l'espacement dû aux
+éléments non musicaux consiste en l'activation de la propriété
+@code{strict-note-spacing} attachée au @code{SpacingSpanner}. Observons
+les deux portées suivantes :
+
+@lilypond[quote,verbatim,ragged-right]
+\new Staff {
+ \set Score.proportionalNotationDuration = #(ly:make-moment 1 16)
+ c''8
+ c''8
+ c''8
+ \clef alto
+ d'8
+ d'2
+}
+
+\new Staff {
+ \set Score.proportionalNotationDuration = #(ly:make-moment 1 16)
+ \override Score.SpacingSpanner.strict-note-spacing = ##t
+ c''8
+ c''8
+ c''8
+ \clef alto
+ d'8
+ d'2
+}
+@end lilypond
+
+Toutes deux affichent un espacement proportionnel. Cependant, la
+première ligne laisse apparaître un espacement plus lâche en raison de
+la présence d'un changement de clef. En ce qui concerne la deuxième
+ligne, l'espacement est strictement observé dès lors que la propriété
+@code{strict-note-spacing} a préalablement été activée. Comme vous
+pouvez le constater, l'activation de @code{strict-note-spacing} a pour
+conséquence que l'algorithme d'espacement ignore tout bonnement la
+largeur des métriques, armures, clefs et altérations.
+
+En plus de ceux que nous venons de voir, vous trouverez d'autres
+réglages en usage dans la notation proportionnelle comme, entre autres,
+
+@itemize
+@item @code{\override SpacingSpanner.strict-grace-spacing = ##t}
+@item @code{tupletFullLength = ##t}
+@item @code{\override Beam.breakable = ##t}
+@item @code{\override Glissando.breakable = ##t}
+@item @code{\override TextSpanner.breakable = ##t}
+@item @code{\remove "Forbid_line_break_engraver"} (dans un contexte de voix)
+@end itemize
+
+Ces différents réglages permettent un espacement strict des notes
+d'ornement, d'étendre les indications de nolet afin d'indiquer de façon
+évidente leurs bornes et d'autoriser le tronçonnement des extenseurs à
+l'occasion d'un saut de ligne ou de page. Nous vous renvoyons aux
+différentes rubriques associées du manuel pour chacun de ces réglages.
+
+@seealso
+Manuel de notation :
+@ref{Changement d'espacement en cours de partition}.
+
+Morceaux choisis :
+@rlsrnamed{Spacing,Espacements}.
+
+
+@node Réduction du nombre de pages de la partition
+@section Réduction du nombre de pages de la partition
+@translationof Fitting music onto fewer pages
+
+Vous pourriez un jour être confronté au problème suivant : l'une
+des pages de votre partition ne comporte que deux portées alors que --
+ce qui est d'autant plus frustrant -- l'espace libre sur les autres
+pages aurait permis une distribution différente.
+
+L'instruction @code{annotate-spacing} se révèle être un outil
+indispensable pour l'analyse des problèmes de mise en forme. Cette
+commande met en surimpression la valeur des différentes variables
+d'espacement et de mise en forme, comme nous allons le voir dans la
+rubrique @ref{Mise en évidence de l'espacement}.
+
+@menu
+* Mise en évidence de l'espacement::
+* Modification de l'espacement::
+@end menu
+
+
+@node Mise en évidence de l'espacement
+@subsection Mise en évidence de l'espacement
+@translationof Displaying spacing
+
+@funindex annotate-spacing
+@cindex espacement, affichage des valeurs
+
+Le meilleur moyen d'appréhender les différentes variables de
+dimensionnement vertical sur lesquelles vous pouvez jouer au niveau de
+la mise en page consiste à activer, au sein du bloc @code{\paper}, la
+fonction @code{annotate-spacing} :
+
+@c need to have \book{} otherwise we get the separate systems. -hwn
+@lilypond[verbatim,quote]
+#(set-default-paper-size "a6" 'landscape)
+\book {
+ \score { { c4 } }
+ \paper { annotate-spacing = ##t }
+}
+@end lilypond
+
+@noindent
+Toutes les dimensions sont exprimées en espace de portée
+@emph{(staff-space)} quelle que soit l'unité mentionnée dans les blocs
+@code{\paper} ou @code{\layout}. Dans cet exemple, la hauteur de la
+feuille (@code{paper-height}) est de 59,75 espaces de portée
+(@code{staff-spaces}) et la taille de portée (@code{staff-size}) de
+20 points -- sa valeur par défaut. Notez que :
+
+@multitable {1 staff-space} {staff-size)/4 * (25,4/72,27) mm}
+
+@item 1 point
+@tab = (25,4/72,27) mm
+
+@item 1 staff-space
+@tab = (@code{staff-size})/4 pts
+@item
+@tab = (@code{staff-size})/4 * (25,4/72,27) mm
+
+@end multitable
+
+@noindent
+Dans le cas qui nous occupe, un @code{staff-space} égale environ
+1,757 millimètres. Les 59,75 @code{staff-spaces} de
+@code{paper-height} correspondent donc à 105 millimètres, soit la
+hauteur d'une feuille au format A6 à l'italienne. Les paires
+@code{(@var{a},@var{b})} sont des intervalles, @var{a} en étant
+l'extrémité inférieure et @var{b} l'extrémité supérieure.
+
+@seealso
+Manuel de notation :
+@ref{Définition de la taille de portée}.
+
+Morceaux choisis :
+@rlsrnamed{Spacing,Espacements}.
+
+
+@node Modification de l'espacement
+@subsection Modification de l'espacement
+@translationof Changing spacing
+
+Les informations fournies par @code{annotate-spacing} en matière de
+dimensionnement vertical sont incomparables. Pour plus de détails sur
+les manières de modifier marges et autres variables connexes, consultez
+la rubrique @ref{Mise en forme de la page}.
+
+En dehors des marges, vous disposez de quelques moyens supplémentaires
+pour gagner de l'espace :
+
+@itemize
+@item
+Rapprocher les systèmes le plus possible les uns des autres, de telle
+sorte qu'il en tienne un maximum sur une même page, tout en les espaçant
+suffisamment pour éviter le blanc en bas de page.
+
+@example
+\paper @{
+ system-system-spacing = #'((basic-distance . 0.1) (padding . 0))
+ ragged-last-bottom = ##f
+ ragged-bottom = ##f
+@}
+@end example
+
+@item
+Forcer le nombre de systèmes par page. Ceci peut se révéler judicieux à
+deux titres. D'une part, le fait de définir un nombre de systèmes --
+même s'il est égal à la valeur par défaut -- peut aboutir à plus de
+systèmes par page dans la mesure où l'une des étapes d'estimation des
+hauteurs est tout simplement sautée. D'autre part, réduire le nombre de
+systèmes par page permet d'en disposer plus sur les suivantes. Par
+exemple, avec un nombre par défaut de 11 systèmes par pages,
+l'instruction suivante le force à 10.
+
+@example
+\paper @{
+ system-count = #10
+@}
+@end example
+
+@item
+Forcer le nombre de pages. L'instruction suivante forcera la musique à
+se répartir sur deux pages.
+
+@example
+\paper @{
+ page-count = #2
+@}
+@end example
+
+@item
+Éviter ou réduire les objets qui augmentent la hauteur des systèmes.
+Par exemple, un crochet de reprise ou d'alternative consomme de
+l'espace. Le fait de les reporter sur plusieurs systèmes regroupés
+diminue d'autant l'espace disponible que si seul le premier ne
+comportait l'indication. Autre exemple, les indications de nuance qui
+se @qq{détachent} d'un système peuvent être rapprochés de la portée :
+
+@lilypond[verbatim,quote,relative=1]
+e4 c g\f c
+e4 c g-\tweak X-offset #-2.7 -\tweak Y-offset #2.5 \f c
+@end lilypond
+
+@item
+Modifier l'espacement horizontal à l'aide du @code{SpacingSpanner},
+comme indiqué à la rubrique
+@ref{Modification de l'espacement horizontal}. Voici ce que donne
+l'espacement par défaut :
+
+@lilypond[verbatim,quote]
+\score {
+ \relative c'' {
+ g4 e e2 |
+ f4 d d2 |
+ c4 d e f |
+ g4 g g2 |
+ g4 e e2 |
+ }
+}
+@end lilypond
+
+@noindent
+Par contre, le fait de modifier la valeur de la propriété
+@code{common-shortest-duration} en passant de @code{1/4} à @code{1/2}
+-- bien que la noire soit la durée la plus courante, nous prenons une
+valeur plus longue -- donnera un effet @qq{resserré} à la musique :
+
+@lilypond[verbatim,quote]
+\score {
+ \relative c'' {
+ g4 e e2 |
+ f4 d d2 |
+ c4 d e f |
+ g4 g g2 |
+ g4 e e2 |
+ }
+ \layout {
+ \context {
+ \Score
+ \override SpacingSpanner.common-shortest-duration = #(ly:make-moment 1 2)
+ }
+ }
+}
+@end lilypond
+
+@noindent
+La propriété @code{common-shortest-duration} ne peut être modifiée
+dynamiquement. Elle se place toujours dans un bloc @code{\context} et
+s'applique à l'intégralité de la partition.
+
+@end itemize
+
+@seealso
+Manuel de notation :
+@ref{Mise en forme de la page},
+@ref{Modification de l'espacement horizontal}.
+
+Morceaux choisis :
+@rlsrnamed{Spacing,Espacements}.