+@seealso
+Fichiers d'initialisation :
+@file{scm/define-grobs.scm}.
+
+Morceaux choisis :
+@rlsrnamed{Spacing,Espacements}.
+
+Référence des propriétés internes:
+@rinternals{VerticalAxisGroup},
+@rinternals{StaffGrouper}.
+
+
+@unnumberedsubsubsec Espacement des lignes rattachées à des portées
+@translationof Spacing of non-staff lines
+
+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@tie{}:
+
+@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 = #'((space . 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@tie{}:
+
+@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@tie{}:
+
+@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}@tie{}:
+
+@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[quote]
+\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@tie{}; 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{\breaks} 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}@tie{}:
+
+@lilypond[quote]
+\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[quote]
+\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
+prende 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[quote]
+\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@tie{}:
+
+@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 raisonnables 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@tie{}; nous les appellerons @qq{objets extérieurs à la portée}.
+La règle qu'applique 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@tie{}:
+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. Autremnt 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]
+\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 au cours de la 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
+The spacing engine translates differences in durations into stretchable
+distances (@q{springs}) of differing lengths. Longer durations get
+more space, shorter durations get less. The shortest durations get a
+fixed amount of space (which is controlled by
+@code{shortest-duration-space} in the @rinternals{SpacingSpanner}
+object). The longer the duration, the more space it gets: doubling a
+duration adds a fixed amount (this amount is controlled by
+@code{spacing-increment}) of space to the note.
+
+For example, the following piece contains lots of half, quarter, and
+8th notes; the eighth note is followed by 1 note head width (NHW).
+The quarter note is followed by 2 NHW, the half by 3 NHW, etc.
+
+@lilypond[quote,verbatim,relative=1]
+c2 c4. c8 c4. c8 c4. c8 c8
+c8 c4 c4 c4
+@end lilypond
+
+Normally, @code{spacing-increment} is set to 1.2 staff space, which is
+approximately the width of a note head, and
+@code{shortest-duration-space} is set to 2.0, meaning that the
+shortest note gets 2.4 staff space (2.0 times the
+@code{spacing-increment}) of horizontal space. This space is counted
+from the left edge of the symbol, so the shortest notes are generally
+followed by one NHW of space.
+
+If one would follow the above procedure exactly, then adding a single
+32nd note to a score that uses 8th and 16th notes, would widen up the
+entire score a lot. The shortest note is no longer a 16th, but a 32nd,
+thus adding 1 NHW to every note. To prevent this, the shortest
+duration for spacing is not the shortest note in the score, but rather
+the one which occurs most frequently.
+
+
+The most common shortest duration is determined as follows: in every
+measure, the shortest duration is determined. The most common shortest
+duration is taken as the basis for the spacing, with the stipulation
+that this shortest duration should always be equal to or shorter than
+an 8th note. The shortest duration is printed when you run
+@code{lilypond} with the @code{--verbose} option.
+
+These durations may also be customized. If you set the
+@code{common-shortest-duration} in @rinternals{SpacingSpanner}, then
+this sets the base duration for spacing. The maximum duration for this
+base (normally an 8th), is set through @code{base-shortest-duration}.
+
+@funindex common-shortest-duration
+@funindex base-shortest-duration
+@funindex stem-spacing-correction
+@funindex spacing
+
+Notes that are even shorter than the common shortest note are
+followed by a space that is proportional to their duration relative to
+the common shortest note. So if we were to add only a few 16th notes
+to the example above, they would be followed by half a NHW:
+
+@lilypond[quote,verbatim,relative=2]
+c2 c4. c8 c4. c16[ c] c4. c8 c8 c8 c4 c4 c4
+@end lilypond
+
+
+In the @emph{Essay on automated music engraving}, it was explained
+that stem directions influence spacing (see @ressay{Optical
+spacing}). This is controlled with the
+@code{stem-spacing-correction} property in the
+@rinternals{NoteSpacing}, object. These are generated for every
+@rinternals{Voice} context. The @code{StaffSpacing} object
+(generated in @rinternals{Staff} context) contains the same
+property for controlling the stem/bar line spacing. The following
+example shows these corrections, once with default settings, and
+once with exaggerated corrections:
+
+@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
+
+Proportional notation is supported; see @ref{Proportional notation}.
+
+
+@seealso
+Morceaux choisis :
+@rlsrnamed{Spacing,Espacements}.
+
+Référence des propriétés internes :
+@rinternals{SpacingSpanner},
+@rinternals{NoteSpacing},
+@rinternals{StaffSpacing},
+@rinternals{NonMusicalPaperColumn}.
+
+
+@knownissues
+
+There is no convenient mechanism to manually override spacing. The
+following work-around may be used to insert extra space into a score,
+adjusting the padding value as necessary.
+@example
+ \override Score.NonMusicalPaperColumn #'padding = #10
+@end example
+
+No work-around exists for decreasing the amount of space.
+
+
+@node Changement d'espacement au cours de la partition
+@subsection Changement d'espacement au cours de la partition
+@translationof New spacing area
+
+New sections with different spacing parameters can be started with
+@code{newSpacingSection}. This is useful when there are
+sections with a different notions of long and short notes.
+
+In the following example, the time signature change introduces a new
+section, and hence the 16ths notes are spaced wider.
+
+@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
+
+The @code{\newSpacingSection} command creates a new
+@code{SpacingSpanner} object, and hence new @code{\override}s
+may be used in that location.
+
+
+@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
+
+Horizontal spacing may be altered with the
+@code{base-shortest-duration} property. Here
+we compare the same music; once without altering
+the property, and then altered. Larger values
+of @code{ly:make-moment} will produce smaller
+music. Note that @code{ly:make-moment} constructs
+a duration, so @code{1 4} is a longer duration
+than @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
+
+By default, spacing in tuplets depends on various non-duration
+factors (such as accidentals, clef changes, etc). To disregard
+such symbols and force uniform equal-duration spacing, use
+@code{Score.SpacingSpanner #'uniform-stretching}. This
+property can only be changed at the beginning of a score,
+
+@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
+
+When @code{strict-note-spacing} is set, notes are spaced without
+regard for clefs, bar lines, and grace notes,
+
+@lilypond[quote,ragged-right,relative=2,fragment,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 page breaks
+@cindex breaking pages
+
+@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?
+The most basic settings influencing the spacing are @code{indent} and
+@code{line-width}. They are set in the @code{\layout} block. They
+control the indentation of the first line of music, and the lengths of
+the lines.
+
+If @code{ragged-right} is set to true in the @code{\layout} block, then
+systems ends at their natural horizontal length, instead of being spread
+horizontally to fill the whole line. This is useful for
+short fragments, and for checking how tight the natural spacing is.
+The normal default setting is false, but if the score has only one
+system the default value is true.
+
+@cindex page layout
+@cindex vertical spacing
+
+The option @code{ragged-last} is similar to @code{ragged-right}, but
+only affects the last line of the piece. No restrictions are put on
+that line. The result is similar to formatting text paragraphs. In a
+paragraph, the last line simply takes its natural horizontal length.
+@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 supports proportional notation, a type of horizontal spacing
+in which each note consumes an amount of horizontal space exactly
+equivalent to its rhythmic duration. This type of proportional spacing
+is comparable to horizontal spacing on top of graph paper. Some late
+20th- and early 21st-century scores use proportional notation to
+clarify complex rhythmic relationships or to facilitate the placement
+of timelines or other graphics directly in the score.
+
+LilyPond supports five different settings for proportional notation,
+which may be used together or alone:
+
+@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
+
+In the examples that follow, we explore these five different
+proportional notation settings and examine how these settings interact.
+
+We start with the following one-measure example, which uses classical
+spacing with ragged-right turned on.
+
+@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
+
+Notice that the half note which begins the measure takes up far less
+than half of the horizontal space of the measure. Likewise, the
+sixteenth notes and sixteenth-note quintuplets (or twentieth notes)
+which end the measure together take up far more than half the
+horizontal space of the measure.
+
+In classical engraving, this spacing may be exactly what we want
+because we can borrow horizontal space from the half note and conserve
+horizontal space across the measure as a whole.
+
+On the other hand, if we want to insert a measured timeline or other
+graphic above or below our score, we need proportional notation. We
+turn proportional notation on with the proportionalNotationDuration
+setting.
+
+@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
+
+The half note at the beginning of the measure and the faster notes in
+the second half of the measure now occupy equal amounts of horizontal
+space. We could place a measured timeline or graphic above or below
+this example.
+
+The @code{proportionalNotationDuration} setting is a context setting
+that lives in @code{Score}. Remember that context settings can appear
+in one of three locations within our input file -- in a @code{\with}
+block, in a @code{\context} block, or directly in music entry preceded
+by the @code{\set} command. As with all context settings, users can
+pick which of the three different locations they would like to
+set @code{proportionalNotationDuration} in to.
+
+The @code{proportionalNotationDuration} setting takes a single argument,
+which is the reference duration against that all music will be spaced.
+The LilyPond Scheme function @code{make-moment} takes two arguments
+-- a numerator and denominator which together express some fraction of
+a whole note. The call @code{#(ly:make-moment 1 20)} therefore produces
+a reference duration of a twentieth note. Values such as
+@code{#(ly:make-moment 1 16)}, @code{#(ly:make-moment 1 8)}, and
+@code{#(ly:make-moment 3 97)} are all possible as well.
+
+How do we select the right reference duration to pass to
+@code{proportionalNotationDuration}? Usually by a process of trial
+and error, beginning with a duration close to the fastest (or smallest)
+duration in the piece. Smaller reference durations space music loosely;
+larger reference durations space music tightly.
+
+@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
+
+Note that too large a reference duration -- such as the eighth note,
+above -- spaces music too tightly and can cause note head collisions.
+Also that proportional notation in general takes up more horizontal
+space than classical spacing. Proportional spacing provides rhythmic
+clarity at the expense of horizontal space.
+
+Next we examine how to optimally space overlapping tuplets.
+
+We start by examining what happens to our original example, with
+classical spacing, when we add a second staff with a different type of
+tuplet.
+
+@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
+
+The spacing is bad because the evenly spaced notes of the bottom staff
+do not stretch uniformly. Classical engravings include very few complex
+triplets and so classical engraving rules can generate this type of
+result. Setting @code{proportionalNotationDuration} fixes this.
+
+@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
+
+But if we look very carefully we can see that notes of the second half
+of the 9-tuplet space ever so slightly more widely than the notes
+of the first half of the 9-tuplet. To ensure uniform stretching, we
+turn on @code{uniform-stretching}, which is a property of
+@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
+
+Our two-staff example now spaces exactly, our rhythmic
+relationships are visually clear, and we can include a measured
+timeline or graphic if we want.
+
+Note that the LilyPond's proportional notation package expects
+that all proportional scores set the SpacingSpanner's
+'uniform-stretching attribute to ##t. Setting
+proportionalNotationDuration without also setting the
+SpacingSpanner's 'uniform-stretching attribute to ##t will, for
+example, cause Skips to consume an incorrect amount of horizontal
+space.
+
+The SpacingSpanner is an abstract grob that lives in the Score
+context. As with our settings of proportionalNotationDuration,
+overrides to the SpacingSpanner can occur in any of three
+different places in our input file – in the Score \with block, in
+a Score \context block, or in note entry directly.
+
+There is by default only one @code{SpacingSpanner} per @code{Score}. This
+means that, by default, @code{uniform-stretching} is either turned on for the
+entire score or turned off for the entire score. We can, however,
+override this behavior and turn on different spacing features at
+different places in the score. We do this with the command
+@code{\newSpacingSection}. See @ref{New spacing area}, for more info.
+
+Next we examine the effects of the @code{Separating_line_group_engraver} and
+see why proportional scores frequently remove this engraver. The following
+example shows that there is a small amount of @qq{preferatory} space
+just before the first note in each system.
+
+@lilypond[quote,verbatim,ragged-right]
+\paper {
+ indent = #0
+}
+
+\new Staff {
+ c'1
+ \break
+ c'1
+}
+@end lilypond
+
+
+The amount of this preferatory space is the same whether after a time
+signature, a key signature or a clef. @code{Separating_line_group_engraver}
+is responsible for this space. Removing @code{Separating_line_group_engraver}
+reduces this space to zero.
+
+@lilypond[quote,verbatim,ragged-right]
+\paper {
+ indent = #0
+}
+
+\new Staff \with {
+ \remove Separating_line_group_engraver
+} {
+ c'1
+ \break
+ c'1
+}
+@end lilypond
+
+Nonmusical elements like time signatures, key signatures, clefs and
+accidentals are problematic in proportional notation. None of these
+elements has rhythmic duration. But all of these elements consume
+horizontal space. Different proportional scores approach these
+problems differently.
+
+It may be possible to avoid spacing problems with key signatures
+simply by not having any. This is a valid option since most
+proportional scores are contemporary music. The same may be true
+of time signatures, especially for those scores
+that include a measured timeline or other graphic. But these scores
+are exceptional and most proportional scores include at least some
+time signatures. Clefs and accidentals are even more essential.
+
+So what strategies exist for spacing nonmusical elements in a
+proportional context? One good option is the @code{strict-note-spacing}
+property of @code{SpacingSpanner}. Compare the two scores below:
+
+@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
+
+Both scores are proportional, but the spacing in the first score
+is too loose because of the clef change. The spacing of the second
+score remains strict, however, because strict-note-spacing is
+turned on. Turning on strict-note-spacing causes the width of
+time signatures, key signatures, clefs and accidentals to play no
+part in the spacing algorithm.
+
+In addition to the settings given here, there are other settings
+that frequently appear in proportional scores. These include:
+
+@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 in the Voice context}
+@end itemize
+
+These settings space grace notes strictly, extend tuplet brackets to
+mark both rhythmic start- and stop-points, and allow spanning elements
+to break across systems and pages. See the respective parts of the manual
+for these related settings.
+
+
+@seealso
+Manuel de notation :
+@ref{Changement d'espacement au cours de la 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
+
+Sometimes you can end up with one or two staves on a second
+(or third, or fourth...) page. This is annoying, especially
+if you look at previous pages and it looks like there is plenty
+of room left on those.
+
+When investigating layout issues, @code{annotate-spacing} is an
+invaluable tool. This command prints the values of various layout
+spacing variables; for more details see the following section,
+@ref{Displaying spacing}.
+
+@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 spacing, display of layout
+
+To graphically display the dimensions of vertical layout variables
+that may be altered for page formatting, set
+@code{annotate-spacing} in the @code{\paper} block:
+
+@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
+All layout dimensions are displayed in staff-spaces, regardless
+of the units specified in the @code{\paper} or @code{\layout} block.
+In the above example, @code{paper-height} has a value of 59.75
+@code{staff-spaces}, and the @code{staff-size} is 20 points (the
+default value). Note that:
+
+@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
+In this case, one @code{staff-space} is approximately equal to
+1.757mm. Thus the @code{paper-height} measurement of 59.75
+@code{staff-spaces} is equivalent to 105 millimeters, the height
+of @code{a6} paper in landscape orientation. The pairs
+(@var{a},@var{b}) are intervals, where @var{a} is the lower
+edge and @var{b} the upper edge of the interval.
+
+
+@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
+
+The output of @code{annotate-spacing} reveals vertical dimensions
+in great detail. For details about modifying margins and other
+layout variables, see @ref{Page formatting}.
+
+Other than margins, there are a few other options to save space:
+
+@itemize
+@item
+Force systems to move as close together as possible (to fit as
+many systems as possible onto a page) while being spaced so that
+there is no blank space at the bottom of the page.
+
+@example
+\paper @{
+ system-system-spacing = #'((padding . 0) (space . 0.1))
+ ragged-last-bottom = ##f
+ ragged-bottom = ##f
+@}
+@end example
+
+@item
+Force the number of systems. This can help in two ways. Just
+setting a value, even the same value as the number of systems
+being typeset by default, will sometimes cause more systems to
+be fitted onto each page, as an estimation step is then bypassed,
+giving a more accurate fit to each page. Also, forcing an actual
+reduction in the number of systems may save a further page. For
+example, if the default layout has 11 systems, the following
+assignment will force a layout with 10 systems.
+
+@example
+\paper @{
+ system-count = #10
+@}
+@end example
+
+@item
+Avoid (or reduce) objects that increase the vertical size of a
+system. For example, volta repeats (or alternate repeats) require
+extra space. If these repeats are spread over two systems, they
+will take up more space than one system with the volta repeats and
+another system without. For example, dynamics that @q{stick out} of
+a system can be moved closer to the staff:
+
+@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
+Alter the horizontal spacing via @code{SpacingSpanner}. For more
+details, see @ref{Changing horizontal spacing}. The following
+example illustrates the default spacing:
+
+@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
+The next example modifies @code{common-shortest-duration} from a
+value of @code{1/4} to @code{1/2}. The quarter note is the most
+common and shortest duration in this example, so by making this
+duration longer, a @q{squeezing} effect occurs:
+
+@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
+The @code{common-shortest-duration} property cannot be modified
+dynamically, so it must always be placed in a @code{\context}
+block so that it applies to the whole score.
+
+@end itemize
+
+
+@seealso
+Manuel de notation :
+@ref{Page formatting},
+@ref{Changing horizontal spacing}.
+
+Morceaux choisis :
+@rlsrnamed{Spacing,Espacements}.