]> git.donarmstrong.com Git - lilypond.git/blobdiff - Documentation/fr/notation/spacing.itely
Imported Upstream version 2.14.2
[lilypond.git] / Documentation / fr / notation / spacing.itely
diff --git a/Documentation/fr/notation/spacing.itely b/Documentation/fr/notation/spacing.itely
new file mode 100644 (file)
index 0000000..91a1e36
--- /dev/null
@@ -0,0 +1,3662 @@
+@c -*- coding: utf-8; mode: texinfo; documentlanguage: fr -*-
+
+@ignore
+    Translation of GIT committish: 657b89ab28b463ccda7991070242353cf38dc25d
+
+    When revising a translation, copy the HEAD committish of the
+    version that you are working on.  For details, see the Contributors'
+    Guide, node Updating translation committishes..
+@end ignore
+
+@c \version "2.14.0"
+
+@c Translators: Frédéric Chiasson, Jean-Charles Malahieude
+
+@ignore
+GDP TODO list
+
+Negative numbers are allowed:
+> Are you sure? The following works well
+> \paper{
+>   first-page-number = -2
+> }
+> and prints page number -1 on the second page, for example.
+
+
+In 5.2.1 the @refbugs (line 495 in spacing.itely on master) it
+states:
+
+"@code{layout-set-staff-size} does not change the distance between
+the
+staff lines."
+
+Could we add a sentence:
+"Use instead the pair               fontSize = #@var{N}
+            \override StaffSymbol #'staff-space = #(magstep
+@var{N})
+inside the Staff context to change the size of the font and the
+distance between
+staff lines accordingly."
+
+Actually I found, that the @internalsref{StaffSymbol} at line 481
+sends to an incomplete
+documentation.  The property staff-space is not explained here.  I
+thought Y-extent might be of
+help, but it is in turn explained by x-space which again is
+missing from the list.  Who has the
+knowledge to fix this?
+
+
+Clarify
+http://code.google.com/p/lilypond/issues/detail?id=68
+
+@end ignore
+
+
+@node Gestion de l'espace
+@chapter Gestion de l'espace
+@translationof Spacing issues
+
+L'agencement général d'une partition dépend de trois facteurs
+interdépendants@tie{}: la mise en page, les sauts de ligne et
+l'espacement.  Les choix faits en matière d'espacement détermineront la
+densité de chacun des systèmes, ce qui influera sur le positionnement
+des sauts de lignes et, par voie de conséquence, sur le nombre de pages
+de la partition.
+
+En pratique, cette procédure comporte quatre étapes.  Dans un premier
+temps, des distances élastiques @emph{(springs)} sont déterminées sur la
+base des durées.  Sont alors calculées différentes possibilités de saut
+de ligne, chacune se voyant attribuer un @qq{coefficient de laideur},
+puis est estimée la hauteur de chaque système.  LilyPond opte enfin pour
+la combinaison entre sauts de page et de ligne qui offre la meilleure
+occupation de l'espace, tant horizontalement que verticalement.
+
+Les réglages qui influencent la mise en forme se placent dans deux blocs
+différents.  Le bloc @w{@code{\paper @{@dots{}@}}} étudié à la rubrique
+@ref{Mise en forme de la page} contient les réglages applicables à
+l'intégralité du document -- à toutes les partitions d'un ouvrage --
+tels que format du papier, impression ou non des numéros de page, etc.
+Quant au bloc @w{@code{\layout @{@dots{}@}}}, qui fait l'objet de la
+rubrique @ref{Mise en forme de la partition}, il détermine la mise en
+forme de la musique@tie{}: le nombre de systèmes utilisés, l'espacement
+des regroupements de portées, etc.
+
+@menu
+* Mise en forme de la page::
+* Mise en forme de la partition::
+* Sauts::
+* Espacement vertical::
+* Espacement horizontal::
+* Réduction du nombre de pages de la partition::
+@end menu
+
+@cindex ragged, aligné
+@cindex aligné, ragged
+
+@warning{Vous verrez au fil de ce chapitre apparaître certains termes
+dont la traduction vous semblera assurément erronée.  Il n'en est
+cependant rien@tie{}: certains termes techniques ont une histoire
+particulière selon leur langue d'origine.  Ainsi, le vocable anglais
+@emph{Ragged} signifie en lambeau, en loques@tie{}; dans l'univers
+typographique, un maître français voit un alignement à gauche -- il dira
+@qq{au fer à gauche} -- alors que son homologue anglophone constate un
+@emph{ragged-right} -- donc du vide à droite.}
+
+
+@node Mise en forme de la page
+@section Mise en forme de la page
+@translationof Page layout
+
+Nous allons examiner ici les options qui contrôlent la mise en forme des
+pages attachées au bloc @code{\paper}.
+
+@menu
+* Le bloc \paper::
+* Format du papier et adaptation automatique::
+* Variables d'espacement vertical fixe::
+* Variables d'espacement vertical fluctuant::
+* Variables d'espacement horizontal::
+* Autres variables du bloc \paper::
+@end menu
+
+
+@node Le bloc \paper
+@subsection Le bloc @code{\paper}
+@translationof The @code{\paper} block
+
+Un bloc @code{\paper} peut apparaître au sein d'un bloc
+@code{\book}.  Les réglages effectués à l'aide du bloc @code{\paper}
+s'appliqueront à l'intégralité d'un ouvrage, qui peut comporter
+plusieurs partitions (des blocs @emph{score})@tie{}; il ne doit donc en
+aucun cas se trouver dans un bloc @code{\score}.  Peuvent apparaître
+dans un bloc @code{\paper}@tie{}:
+
+@itemize
+
+@item
+la fonction scheme @code{set-paper-size},
+
+@item
+des variables propres au bloc @code{\paper} qui viendront adapter la
+mise en page, et
+
+@item
+la définition des différents @emph{markups} qui personnaliseront la mise
+en forme des entêtes, pied de page et titrages.
+
+@end itemize
+
+La fonction @code{set-paper-size} fait l'objet de la rubrique qui suit
+-- @ref{Format du papier et adaptation automatique}.  Les variables du
+bloc @code{\paper} chargées de la mise en page sont abordées plus loin
+dans ce chapitre.  Quant aux définitions relatives aux @emph{markups}
+des entête, pied de page et titrages, elles sont étudiées à la rubrique
+@ref{Titrages personnalisés}.
+
+La plupart des variables gérant le papier ne sont fonctionnelles que
+lorsque mentionnées dans un bloc @code{\paper}.  Certaines, qui peuvent
+toutefois apparaître dans un bloc @code{\layout}, sont référencées à la
+rubrique @ref{Le bloc \layout}.
+
+Sauf mention contraire, toutes les variables du bloc @code{\paper} qui
+correspondent à des dimensions sont exprimées en millimètre -- vous
+pouvez bien entendu spécifier un autre système de mesure.  Voici
+comment, par exemple, définir la marge haute (@code{top-margin}) à dix
+millimètres@tie{}:
+
+@example
+\paper @{
+  top-margin = 10
+@}
+@end example
+
+Si vous préférez lui affecter une valeur de 0,5@tie{}pouce, vous devrez
+mentionner le suffixe d'unité @code{\in}@tie{}:
+
+@example
+\paper @{
+  top-margin = 0.5\in
+@}
+@end example
+
+LilyPond accepte les suffixes d'unité @code{\mm}, @code{\cm},
+@code{\in} et @code{\pt}.  Ces unités sont des conversions de
+millimètres, répertoriées dans le fichier
+@file{ly/paper-defaults-init.ly}.  Pour plus de lisibilité, et bien que
+ce ne soit pas techniquement requis, nous vous conseillons d'ajouter
+@code{\mm} à votre code lorsque vous travaillez en millimètres.
+
+Vous pouvez aussi définir les valeurs du bloc @code{\paper} à l'aide de
+fonctions Scheme.  Voici l'équivalent de l'exemple précédent@tie{}:
+
+@example
+\paper @{
+  #(define top-margin (* 0.5 in))
+@}
+@end example
+
+@seealso
+Manuel de notation :
+@ref{Format du papier et adaptation automatique},
+@ref{Titrages personnalisés}.
+@ref{Le bloc \layout}.
+
+Fichiers d'initialisation :
+@file{ly/paper-defaults-init.ly}.
+
+
+@node Format du papier et adaptation automatique
+@subsection Format du papier et adaptation automatique
+@translationof Paper size and automatic scaling
+
+@cindex papier, taille
+@cindex page, format
+
+@funindex \paper
+
+@menu
+* Format du papier::
+* Adaptation automatique au format::
+@end menu
+
+
+@node Format du papier
+@unnumberedsubsubsec Format du papier
+@translationof Setting paper size
+
+Le format du papier est déterminé par deux fonctions différentes@tie{}:
+@code{set-default-paper-size} et @code{set-paper-size}.
+@code{set-default-paper-size} se place en tête de fichier, alors que
+@code{set-paper-size} se place à l'intérieur d'un bloc
+@code{\paper}@tie{}:
+
+@example
+#(set-default-paper-size "a4")
+@end example
+
+@example
+\paper @{
+  #(set-paper-size "a4")
+@}
+@end example
+
+@noindent
+La seule restriction à l'utilisation isolée de la fonction
+@code{set-default-paper-size} est qu'elle doit intervenir avant le
+premier bloc @code{\paper}.  À l'intérieur d'un bloc @code{\paper}, il
+vaut mieux utiliser la fonction @code{set-paper-size}, avant toute autre
+variables.  Les raisons à ceci sont abordées dans la rubrique
+@ref{Adaptation automatique au format}.
+
+@code{set-default-paper-size} fixe le format pour toutes les pages,
+alors que @code{set-paper-size} détermine le format des feuilles
+rattachées à un bloc @code{\paper} particulier.  Ainsi, lorsque le bloc
+@code{\paper} se trouve en tête de fichier, le format du papier
+s'appliquera à toutes les pages@tie{}; si @code{\paper} apparaît dans un
+bloc @code{\book}, la taille ne s'appliquera qu'au @emph{book} en
+question.
+
+Les formats @code{a4}, @code{letter}, @code{legal} et @code{11x17} (ou
+tabloïd) sont couramment utilisés pour les éditions musicales.  Bien
+d'autres formats sont disponibles et sont répertoriés à la rubrique
+@code{paper-alist} du fichier d'initialisation @file{scm/paper.scm}.
+
+@c TODO add a new appendix for paper sizes (auto-generated) -pm
+
+@warning{Par défaut, le papier est au format A4 (codé @code{a4}).}
+
+Rien ne vous empêche d'ajouter un format de papier inhabituel à la
+rubrique @code{paper-alist} du fichier @file{scm/paper.scm}.  Sachez
+cependant que celui-ci est écrasé à chaque mise à jour de LilyPond.
+
+@cindex orientation
+@cindex landscape
+@cindex paysage, papier
+@cindex à l'italienne, papier
+
+Le fait d'ajouter l'argument @code{'landscape} à l'instruction
+@code{set-default-paper-size} permet d'obtenir une présentation à
+l'italienne -- ou paysage si vous préférez -- et donc des lignes plus
+longues.
+
+@example
+#(set-default-paper-size "a6" 'landscape)
+@end example
+
+
+@seealso
+Notation Reference:
+@ref{Adaptation automatique au format}.
+
+Fichiers d'initialisation :
+@file{scm/paper.scm}.
+
+
+@node Adaptation automatique au format
+@unnumberedsubsubsec Adaptation automatique au format
+@translationof Automatic scaling to paper size
+
+Toute modification du format de papier à l'aide des fonctions scheme
+@code{set-default-paper-size} ou @code{set-paper-size}, que nous avons
+vues à la rubrique @ref{Format du papier}, se traduira automatiquement
+par l'ajustement d'un certain nombre de variables attachées au bloc
+@code{\paper} afin qu'elles soient en concordance avec le format
+spécifié.  Vous pouvez annuler l'ajustement automatique d'une variable
+particulière en redéfinissant sa valeur après avoir spécifié le format
+de papier utilisé.  Notez bien que le simple fait d'affecter une valeur
+à @code{paper-height} ou @code{paper-width} ne déclenchera pas
+l'étalonnage automatique, bien que spécifier une largeur de papier
+@emph{(@code{paper-width})} peut influencer d'autres valeurs -- mais
+c'est une autre histoire dont nous parlerons plus tard et qui n'a rien à
+voir avec la mise à l'echelle.
+
+L'adaptation automatique affecte les dimensionnements verticaux
+@code{top-margin} et @code{bottom-margin} -- voir 
+@ref{Variables d'espacement vertical fixe} --, ainsi que les
+dimmensionnements horizontaux @code{left-margin}, @code{right-margin},
+@code{inner-margin}, @code{outer-margin}, @code{binding-offset},
+@code{indent} et @code{short-indent} -- voir
+@ref{Variables d'espacement horizontal}.
+
+Les valeurs par défaut de ces dimensionnements sont contenues dans le
+fichier @file{ly/paper-defaults-init.ly} et utilisent les variables
+internes @code{top-margin-default}, @code{bottom-margin-default} etc.
+correspondant au format par défaut -- papier A4 -- pour lequel
+@code{paper-height} est à @code{297\mm} et @code{paper-width} à
+@code{210\mm}.
+
+@seealso
+Manuel de notation :
+@ref{Variables d'espacement vertical fixe},
+@ref{Variables d'espacement horizontal}.
+
+Fichiers d'initialisation :
+@file{ly/paper-defaults-init.ly},
+@file{scm/paper.scm}.
+
+
+@node Variables d'espacement vertical fixe
+@subsection Variables d'espacement vertical fixe
+@translationof Fixed vertical spacing @code{\paper} variables
+
+@warning{Certains dimmensionnements attachés au bloc @code{@bs{}paper}
+sont automatiquement ajustés selon le format du papier, ce qui peut
+conduire à un résultat inattendu --
+voir @ref{Adaptation automatique au format}.}
+
+Les valeurs par défaut (avant étalonnage) sont définies dans le fichier
+@file{ly/paper-defaults-init.ly}.
+
+@table @code
+@item paper-height
+@funindex paper-height
+
+La hauteur de la feuille.  Il s'agit par défaut de la dimension du
+papier utilisé.  Notez bien que cette variable n'affectera pas
+l'ajustement automatique d'un certain nombre de dimmensionnement
+vertical.
+
+@item top-margin
+@funindex top-margin
+
+La marge entre le bord supérieur de la feuille et la surface imprimable.
+Elle est fixée par défaut à@tie{}@code{5\mm} et s'ajustera selon le
+format de papier.
+
+@item bottom-margin
+@funindex bottom-margin
+
+La marge entre la surface imprimable et le bord inférieur de la feuille.
+Elle est fixée par défaut à@tie{}@code{6\mm} et s'ajustera selon le
+format de papier.
+
+@item ragged-bottom
+@funindex ragged-bottom
+
+L'activation de cette variable permet de ne pas répartir verticalement
+les systèmes sur les pages hormis la dernière.  La valeur par défaut
+est@tie{}@code{##f}.  Lorsque la partition ne comporte que deux ou trois
+systèmes par page, comme pour un conducteur d'orchestre, nous vous
+conseillons d'activer cette variable.
+
+@item ragged-last-bottom
+@funindex ragged-last-bottom
+
+La désactivation de cette variable permet de répartir verticalement les
+systèmes de la dernière page d'une partition.  La valeur par défaut
+est@tie{}@code{##t}.  Nous vous conseillons, lorsque des pièces couvrent
+deux pages ou plus, d'activer cette variable.@*
+Notez bien que la variable @code{ragged-last-bottom} affecte aussi la
+dernière page de chacune des parties -- créées à l'aide d'un bloc
+@code{\bookpart} -- d'un même ouvrage.
+
+@end table
+
+
+@seealso
+Manuel de notation :
+@ref{Adaptation automatique au format}.
+
+Fichiers d'initialisation :
+@file{ly/paper-defaults-init.ly}.
+
+Morceaux choisis :
+@rlsrnamed{Spacing, Espacements}.
+
+@knownissues
+
+Les titrages (contenus dans le bloc @code{\header@{@}}) sont considérés
+comme des systèmes à part entière@tie{}; ils seront donc affectés par
+@code{ragged-bottom} et @code{ragged-last-bottom}, qui éventuellement
+ajouteront de l'espace avant le premier système de la partition.
+
+
+@node Variables d'espacement vertical fluctuant
+@subsection Variables d'espacement vertical fluctuant
+@translationof Flexible vertical spacing @code{\paper} variables
+
+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 @code{\paper} répertoriées ci-dessous vous permettront d'affiner
+ces dimensionnements.
+
+Gardez à l'esprit que les variables du bloc @code{\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 (@emph{grobs}) qui, elles, se
+définissent au niveau du bloc @code{\score} -- voir à ce sujet
+@ref{Espacement vertical au sein d'un système}.
+
+
+@menu
+* Structure des variables d'espacement vertical fluctuant::
+* Liste des variables d'espacement vertical fluctuant::
+@end menu
+
+@node Structure des variables d'espacement vertical fluctuant
+@unnumberedsubsubsec Structure des variables d'espacement vertical fluctuant
+@translationof Structure of flexible vertical spacing alists
+
+Chacune de ces variables attachées au bloc @code{\paper} est constituée
+d'une liste associative @emph{(alist)} à quatre @i{clés}@tie{}:
+
+@itemize
+
+
+@item
+@code{basic-distance} @emph{(distance de base)} -- la grandeur d'espace
+par défaut, exprimée en hauteur de portée, séparant les @i{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 @emph{markup} est son sommet, celui d'un système est le
+centre vertical du @code{StaffSymbol} le plus proche -- même lorsqu'une
+ligne de @qq{non-portée} viendrait à s'intercaler.  Une
+@code{basic-distance} inférieure à @code{padding} ou
+@code{minimum-distance} sera sans effet, dans la mesure où l'espacement
+résultant ne saurait être inférieur à @code{padding} ou
+@code{minimum-distance}.
+
+@item
+@code{minimum-distance} @emph{(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
+@code{minimum-distance} inférieure à la valeur du @code{padding} sera
+sans effet, dans la mesure où l'espacement résultant ne saurait être
+inférieur au @code{padding}.
+
+@c TODO: explain skylines somewhere and xref to it from here.
+
+@item
+@code{padding} @emph{(décalage)} -- la grandeur minimale de @qq{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.
+
+@item
+@code{stretchability} @emph{(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 @code{+inf.0}
+provoque une @code{programming_error} (erreur de programmation) et est
+ignorée@tie{}; vous pouvez toutefois utiliser @code{1.0e7} pour obtenir
+une valeur proche de l'infini.  Lorsque cette @i{clé} n'est pas définie,
+sa valeur est par défaut égale à @code{space}.  Notez bien que
+l'utilisateur ne peut définir une propension à la compression@tie{};
+elle est en fait égale à
+(@code{basic-distance}@tie{}@minus{}@tie{}@code{minimum-distance}).
+
+@end itemize
+
+Lorsque l'impression n'est pas en pleine page -- elle est donc
+@emph{ragged bottom} pour les anglophones -- l'élément @code{space}
+n'est pas étiré. Les hauteurs sur une telle page correspondront donc au
+maximum de
+
+@itemize
+
+@item
+@code{basic-distance}, plus
+@item
+@code{minimum-distance} et
+@item
+@code{padding}, augmenté de ce qu'il faut pour éviter les
+chevauchements.
+
+@end itemize
+
+Les manières de modifier des listes associatives font l'objet d'un
+@rusernamed{Modification de listes associatives, 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.
+
+@example
+\paper @{
+  system-system-spacing #'basic-distance = #8
+
+  score-system-spacing =
+    #'((padding . 1)
+       (basic-distance . 12)
+       (minimum-distance . 6)
+       (stretchability . 12))
+@}
+@end example
+
+
+@node Liste des variables d'espacement vertical fluctuant
+@unnumberedsubsubsec Liste des variables d'espacement fluctuant
+@translationof List of flexible vertical spacing @code{\paper} variables
+
+Le nom des dimensionnements à hauteur variable sont de la forme
+@code{@var{avant}-@var{après}-spacing}, où @code{@var{avant}} et
+@code{@var{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 pou plus de précision).  Notez
+bien que, dans les règles de nommage des variables qui suivent, le terme
+@code{markup} fait référence aussi bien à un @i{markup de titrage}
+(@code{bookTitleMarkup} ou @code{scoreTitleMarkup}) qu'à un
+@i{markup de haut niveau} (voir @ref{Structure de fichier}).  Toutes les
+distances sont exprimées en espace de portée.
+
+Leurs valeurs par défaut sont inscrites dans le fichier
+@file{ly/paper-defaults-init.ly}.
+
+@c TODO: Where do headers/footers fit in? -mp
+
+@table @code
+@item markup-system-spacing
+@funindex markup-system-spacing
+
+détermine l'espacement entre un titre ou un @emph{markup} de premier
+niveau, et le système qui le suit.
+
+@item score-markup-spacing
+@funindex score-markup-spacing
+
+détermine l'espacement entre le dernier système et le titre ou
+@emph{markup} de haut niveau qui le suit.
+
+@item score-system-spacing
+@funindex 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
+@emph{markup} qui les sépare.
+
+@item system-system-spacing
+@funindex system-system-spacing
+
+détermine l'espacement entre deux systèmes d'un même mouvement.
+
+@item markup-markup-spacing
+@funindex markup-markup-spacing
+
+détermine l'espacement entre deux titres ou @emph{markups} de premier
+niveau.
+
+@item last-bottom-spacing
+@funindex last-bottom-spacing
+
+détermine la distance entre le dernier système ou le dernier
+@emph{markup} de haut niveau, et le bas de la surface imprimable --
+autrement dit le haut de la marge basse.
+
+@item top-system-spacing
+@funindex 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 @emph{markup} de premier niveau
+en haut de page.
+
+@item top-markup-spacing
+@funindex 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 @emph{markup} de premier niveau.
+Cette variable n'est effective qu'en l'absence de système en haut de
+page.
+
+@end table
+
+
+@seealso
+Manuel de notation :
+@ref{Espacement vertical au sein d'un système}.
+
+Morceaux choisis :
+@rlsrnamed{Spacing,Espacements}.
+
+Snippets:
+@rlsrnamed{Spacing,Espacements}.
+
+
+@node Variables d'espacement horizontal
+@subsection Variables d'espacement horizontal
+@translationof Horizontal spacing \paper variables
+
+@warning{Certains dimmensionnements attachés au bloc @code{@bs{}paper}
+sont automatiquement ajustés selon le format du papier, ce qui peut
+conduire à un résultat inattendu --
+voir @ref{Adaptation automatique au format}.}
+
+@menu
+* Variables de marge et de largeur::
+* Variables spécifiques pour l'impression recto-verso::
+* Variables d'indentation et de décalage::
+@end menu
+
+
+@node Variables de marge et de largeur
+@unnumberedsubsubsec Variables de marge et de largeur
+@translationof @code{\paper} variables for widths and margins
+
+Les valeurs par défaut (avant étalonnage) sont définies dans le fichier
+@file{ly/paper-defaults-init.ly}.
+
+@table @code
+
+@item paper-width
+@funindex paper-width
+
+La largeur de la page.  Elle correspond par défaut à la largeur du
+format de papier utilisé.  Si @code{paper-width} n'a aucun effet en
+matière d'ajustement automatique, cette variable influe sur la variable
+@code{line-width}.  Lorsque vous définissez à la fois les valeurs de
+@code{paper-width} et @code{line-width}, les valeurs de
+@code{left-margin} et @code{right-margin} seront recalculées.  Voir
+aussi @code{check-consistency}.
+
+@item line-width
+@funindex line-width
+
+la longueur d'un système musical sans indentation et justifiée sur toute
+la largeur de la page.  La valeur par défaut est égale à
+@code{paper-width}, auquel sont retranchés @code{left-margin} et
+@code{right-margin}.  Lorsque vous définissez @code{line-width} sans
+modifier les valeurs de @code{left-margin} et @code{right-margin}, les
+marges seront alors recalculées de telle sorte que les systèmes soient
+centrés.  Voir aussi @code{check-consistency}.  La variable
+@code{line-width} peut se définir aussi dans un bloc @code{\layout}.
+
+@item left-margin
+@funindex left-margin
+
+la marge entre le bord gauche de la feuille et le début de chaque
+système.  La valeur par défaut est de@tie{}@code{10\mm}@tie{}; elle sera
+ajustée selon le format du papier.  Lorsque vous définissez
+@code{line-width} et @code{right-margin}, sans modifier la valeur de
+@code{left-margin},  cette dernière sera alors égale à
+@code{(paper-width@tie{}@minus{}@tie{}line-width@tie{}@minus{}@tie{}right-margin)}.
+Lorsque seule @code{line-width} est définie, les deux marges
+correspondent à
+@code{((paper-width@tie{}@minus{}@tie{}line-width)@tie{}/@tie{}2)}, ce
+qui a pour effet de centrer les systèmes sur la page.  Voir aussi
+@code{check-consistency}.
+
+@item right-margin
+@funindex right-margin
+
+La marge entre le bord droit de la page et la fin des systèmes en pleine
+largeur (non @emph{ragged}).  La valeur par défaut est
+de@tie{}@code{10\mm} et s'ajustera selon le format du papier.   Lorsque
+vous définissez @code{line-width} et @code{left-margin}, sans modifier
+la valeur de @code{right-margin},  cette dernière sera alors égale à
+@code{(paper-width@tie{}@minus{}@tie{}line-width@tie{}@minus{}@tie{}left-margin)}.
+Lorsque seule @code{line-width} est définie, les deux marges
+correspondent à
+@code{((paper-width@tie{}@minus{}@tie{}line-width)@tie{}/@tie{}2)}, ce
+qui a pour effet de centrer les systèmes sur la page.  Voir aussi
+@code{check-consistency}.
+
+@item check-consistency
+@funindex check-consistency
+
+Lorsqu'elle est activée, cette variable vérifie que  @code{left-margin},
+@code{line-width} et @code{right-margin} sont en cohérence, et que
+l'addition de ces trois éléments ne dépassera pas la largeur du papier
+(@code{paper-width}).  La valeur par défaut est@tie{}@code{##t}.  Dans
+le cas d'une incohérence, un message d'avertissement est émis et les
+trois variables -- marges et longueur de ligne -- rétablies à leur
+valeur par défaut (ajustées selon le fromat du papier).
+
+@item ragged-right
+@funindex ragged-right
+
+Lorsque cette variable est activée, les systèmes ne s'étendront pas sur
+la longueur de la ligne, mais s'arrêteront à leur longueur normale.
+La valeur par défaut est @code{##f} mais, si la partition ne comporte
+qu'un seul système, elle passe à @code{##t}.  Cette variable peut aussi
+se gérer au sein d'un bloc @code{\layout}.
+
+@item ragged-last
+@funindex ragged-last
+
+Lorsqu'elle est activée, cette variable permet de ne pas étendre le
+dernier système de façon à occuper toute la longueur de la ligne.  La
+valeur par défaut est@tie{}@code{##f}.  Cette variable peut aussi
+se gérer au sein d'un bloc @code{\layout}.
+
+@end table
+
+@seealso
+Notation Reference:
+@ref{Adaptation automatique au format}.
+
+Fichiers d'initialisation :
+@file{ly/paper-defaults-init.ly}.
+
+
+@node Variables spécifiques pour l'impression recto-verso
+@unnumberedsubsubsec Variables spécifiques pour l'impression recto-verso
+@translationof @code{\paper} variables for two-sided mode
+
+Les valeurs par défaut (avant étalonnage) sont définies dans le fichier
+@file{ly/paper-defaults-init.ly}.
+
+@table @code
+
+@item two-sided
+@funindex two-sided
+
+@cindex gouttière
+@cindex reliure
+
+Cette variable permet de gérer efficacement les impressions recto-verso.
+Lorsqu'elle est activée, les réglages affectés à @code{inner-margin},
+@code{outer-margin} ainsi que @code{binding-offset} détermineront les
+différentes marges selon qu'il s'agit d'une page paire ou impaire.
+Cette variable s'applique en lieu et place de @code{left-margin} et
+@code{right-margin}.  La valeur par défaut est@tie{}@code{##f}.
+
+@item inner-margin
+@funindex inner-margin
+
+La marge que toutes les pages d'une partie ou de tout un ouvrage devront
+avoir du côté intérieur.  Bien entendu, cette variable n'est
+effective que lorsque vous comptez générer un fichier imprimable en
+recto-verso -- propriété @code{two-sided} définie à vrai.  La valeur par
+défaut est de@tie{}@code{10\mm} et s'ajustera selon le format du papier.
+
+@item outer-margin
+@funindex outer-margin
+
+la marge que toutes les pages d'une partie ou de tout un ouvrage devront
+avoir du côté extérieur -- opposé à la reliure.  Bien entendu, cette
+variable n'est effective que lorsque vous comptez générer un fichier
+imprimable en recto-verso -- propriété @code{two-sided} définie à vrai.
+La valeur par défaut est de@tie{}@code{20\mm} et s'ajustera selon le
+format du papier.
+
+@item binding-offset
+@funindex binding-offset
+
+La gouttière, ou marge de reliure, permet d'augmenter en conséquence la
+valeur de la marge intérieure @code{inner-margin} de telle sorte que
+rien ne soit masqué par la reliure.  Bien entendu, cette variable n'est
+effective que lorsque vous comptez générer un fichier imprimable en
+recto-verso -- propriété @code{two-sided} définie à vrai.  La valeur par
+défaut est de@tie{}@code{0} et s'ajustera selon le format du papier.
+
+@end table
+
+@seealso
+Manuel de notation :
+@ref{Adaptation automatique au format}.
+
+Fichiers d'initialisation :
+@file{ly/paper-defaults-init.ly}.
+
+
+@node Variables d'indentation et de décalage
+@unnumberedsubsubsec Variables d'indentation et de décalage
+@translationof @code{\paper} variables for shifts and indents
+
+Les valeurs par défaut (avant étalonnage) sont définies dans le fichier
+@file{ly/paper-defaults-init.ly}.
+
+@table @code
+
+@item horizontal-shift
+@funindex horizontal-shift
+
+@c This default value is buried in the middle of page.scm.  -mp
+
+Tous les systèmes, ainsi que les titres et séparateurs de systèmes,
+seront poussés d'autant vers la droite.  la valeur par défaut est
+de@tie{}@code{0.0}.
+
+@item indent
+@funindex indent
+
+Le niveau d'indentation du premier système d'une partition.  La valeur
+par défaut est de@tie{}@code{15\mm} et s'ajustera selon le format du
+papier.  Cette variable peut aussi se gérer au sein d'un bloc
+@code{\layout}.
+
+@item short-indent
+@funindex short-indent
+
+Le niveau d'indentation de tous les systèmes hormis le premier.  La
+valeur par défaut est de@tie{}@code{0}, et s'ajustera selon le format du
+papier dès lors que vous lui affecterez une valeur.  Cette variable peut
+aussi se gérer au sein d'un bloc @code{\layout}.
+
+@end table
+
+@seealso
+Manuel de notation :
+@ref{Adaptation automatique au format}.
+
+Fichiers d'initialisation :
+@file{ly/paper-defaults-init.ly}.
+
+Snippets:
+@rlsr{Spacing}.
+
+
+@node Autres variables du bloc \paper
+@subsection Autres variables du bloc @code{\paper}
+@translationof Other @code{\paper} variables
+
+@menu
+* Variables de gestion des sauts de ligne::
+* Variables de gestion des sauts de page::
+* Variables de gestion des numéros de page::
+* Variables supplémentaires::
+@end menu
+
+
+@node Variables de gestion des sauts de ligne
+@unnumberedsubsubsec Variables de gestion des sauts de ligne
+@translationof @code{\paper} variables for line breaking
+
+@c TODO: Mention that ly:optimal-breaking is on by default? -mp
+
+@table @code
+
+@item max-systems-per-page
+@funindex max-systems-per-page
+
+Le nombre maximal de systèmes qu'une page pourra comporter.  Cette
+variable n'est prise en compte, à ce jour, que par l'option
+@code{ly:optimal-breaking}, et n'est pas définie.
+
+@item min-systems-per-page
+@funindex min-systems-per-page
+
+Le nombre minimal de systèmes qu'une page pourra comporter.  Attention
+cependant aux risques de débordement s'il est trop important.  Cette
+variable n'est prise en compte, à ce jour, que par l'option
+@code{ly:optimal-breaking}, et n'est pas définie.
+
+@item systems-per-page
+@funindex systems-per-page
+
+Le nombre de systèmes que devrait comporter chaque page.  Cette variable
+n'est à ce jour prise en charge que par l'algorithme
+@code{ly:optimal-breaking} et n'est pas définie par défaut.
+
+@item system-count
+@funindex system-count
+
+Le nombre de systèmes requis par la partition.  Cette variable n'est pas
+définie par défaut.  Cette variable peut se gérer au sein d'un bloc
+@code{\layout}.
+
+@end table
+
+@seealso
+Manuel de notation :
+@ref{Sauts de ligne}.
+
+
+@node Variables de gestion des sauts de page
+@unnumberedsubsubsec Variables de gestion des sauts de page
+@translationof @code{\paper} variables for page breaking
+
+Les valeurs par défaut sont définies dans le fichier
+@file{ly/paper-defaults-init.ly}.
+
+@table @code
+
+@item blank-after-score-page-force
+@funindex blank-after-score-page-force
+
+Pénalité pour apparition d'une page blanche entre deux partitions.  Sa
+valeur est par défaut inférieure à celle de
+@code{blank-page-force}@tie{}; nous préférons q'une page blanche
+s'insère après la fin de la partition plutôt qu'au milieu.
+
+@item blank-last-page-force
+@funindex blank-last-page-force
+
+Pénalité pour fin de partition intervenant sur une page impaire.  La
+valeur par défaut est de@tie{}@code{0}.
+
+@item blank-page-force
+@funindex blank-page-force
+
+Pénalité pour apparition d'une page blanche en cours de partition.
+L'algorithme @code{ly:optimal-breaking} n'en tiendra pas compte
+puisqu'il ne conçoit pas la présence d'une page blanche au milieu d'une
+partition.  La valeur par défaut est de@tie{}@code{5}.
+
+@item page-breaking
+@funindex page-breaking
+
+L'algorithme de calcul des sauts de page à utiliser.  Vous avez le choix
+entre @code{ly:minimal-breaking}, @code{ly:page-turn-breaking} et
+@code{ly:optimal-breaking}.
+
+@item page-breaking-system-system-spacing
+@funindex page-breaking-system-system-spacing
+
+Cette variable permet de @qq{tromper} l'algorithme de gestion des sauts
+de page quant à la valeur de @code{system-system-spacing}.  Ainsi,
+lorsque @code{page-breaking-system-system-spacing #'padding} a une
+valeur nettement supérieure à @code{system-system-spacing #'padding},
+l'algorithme en question aura tendance à disposer moins de systèmes sur
+une même page.  Cette variable est par défaut non définie.
+
+@item page-count
+@funindex page-count
+
+Le nombre de pages que devra comporter la partition.  Cette variable est
+par défaut non définie.
+
+@end table
+
+@seealso
+Manuel de notation :
+@ref{Sauts de page},
+@ref{Optimisation des sauts de page},
+@ref{Optimisation des tournes},
+@ref{Minimisation des sauts de page}.
+
+Fichiers d'initialisation :
+@file{ly/paper-defaults-init.ly}.
+
+@node Variables de gestion des numéros de page
+@unnumberedsubsubsec Variables de gestion des numéros de page
+@translationof @code{\paper} variables for page numbering
+
+Les valeurs par défaut sont définies dans le fichier
+@file{ly/paper-defaults-init.ly}.
+
+@table @code
+
+@item auto-first-page-number
+@funindex auto-first-page-number
+
+L'algorithme qui gère les sauts de page prend en compte le fait que le
+premier numéro de page soit pair ou impair.  Lorsque cette
+fonctionnalité est activée, l'algorithme des sauts de page décidera de
+lui-même si le premier numéro sera pair ou impair, ce qui se traduira
+par un éventuel incrément de un.  La valeur par défaut
+est@tie{}@code{##f}.
+
+@item first-page-number
+@funindex first-page-number
+
+Le numéro de la première page.  La valeur par défaut est
+de@tie{}@code{#1}.
+
+@item print-first-page-number
+@funindex print-first-page-number
+
+Cette variable permet d'imprimer le numéro de page y compris sur la
+première.  La valeur par défaut est@tie{}@code{##f}.
+
+@item print-page-number
+@funindex print-page-number
+
+La désactivation de cette variable permet d'obtenir des pages non
+numérotées.  La valeur par défaut est@tie{}@code{##t}.
+
+@end table
+
+@seealso
+Fichiers d'initialisation :
+@file{ly/paper-defaults-init.ly}.
+
+@knownissues
+Les pages au numéro impair sont toujours à droite.  Pour que la musique
+commence en page 1, le dos de la page de garde doit être vide de telle
+sorte que la page une se retrouve à droite.
+
+
+@node Variables supplémentaires
+@unnumberedsubsubsec Variables supplémentaires
+@translationof Miscellaneous @code{\paper} variables
+
+@table @code
+
+@item page-spacing-weight
+@funindex page-spacing-weight
+
+Cette variable définit l'importance relative des espacements entre la
+page (verticalité) et la ligne (horizontalité).  Une valeur élevée
+privilégiera l'espacement au niveau de la page.  La valeur par défaut
+est de@tie{}@code{#10}.
+
+@item print-all-headers
+@funindex print-all-headers
+
+Lorsque cette variable est activée, l'intégralité des champs d'entête
+sera imprimée pour chaque bloc @code{\score}, plutôt que les seuls
+champs @code{piece} et @code{opus}.  La valeur par défaut
+est@tie{}@code{##f}.
+
+@item system-separator-markup
+@funindex system-separator-markup
+
+Il s'agit en l'occurrence d'insérer un objet de type @emph{markup} entre
+chaque système, comme on le voit dans nombre de partitions orchestrales.
+Cette variable n'est pas définie par défaut.  La commande
+@code{\slashSeparator} -- définie dans le fichier
+@file{ly/titling-init.ly} -- fournit un @emph{markup} relativement
+courant@tie{}:
+
+@lilypond[quote,verbatim,noragged-right,line-width=30\mm]
+#(set-default-paper-size "a8")
+
+\book {
+  \paper {
+    system-separator-markup = \slashSeparator
+  }
+  \header {
+    tagline = ##f
+  }
+  \score {
+    \relative c'' { c1 \break c1 \break c1 }
+  }
+}
+@end lilypond
+
+@end table
+
+
+@seealso
+Fichiers d'initialisation :
+@file{ly/titling-init.ly}.
+
+Morceaux choisis :
+@rlsrnamed{Spacing,Espacements}.
+
+
+@knownissues
+
+L'entête par défaut, formé d'une seule ligne, est constitué du numéro de
+page et du champ @code{instrument} contenu dans le bloc @code{\header}.
+
+
+@node Mise en forme de la partition
+@section Mise en forme de la partition
+@translationof Score layout
+
+Nous allons voir ici les options du bloc @code{\layout}.  Elles sont
+plus particulièrement destinées à gérer la mise en forme de la
+partition.
+
+@menu
+* Le bloc \layout::
+* Définition de la taille de portée::
+@end menu
+
+
+@node Le bloc \layout
+@subsection Le bloc @code{\layout}
+@translationof The @code{\layout} block
+
+@funindex \layout
+
+Alors que le bloc @code{\paper} définit le formatage des pages pour
+l'intégralité du document, le bloc @code{\layout} s'occupe de la mise en
+forme spécifique à la partition.  La mise en forme de la musique peut
+concerner toutes les partitions d'un même ouvrage, auquel cas un bloc
+@code{\layout} indépendant se placera en tête de fichier.  Dans le cas
+où la mise en forme concerne une partition en particulier, un bloc
+@code{\layout} se placera au sein du bloc @code{\score} en question.
+Sont susceptibles d'apparître dans un bloc @code{\layout}@tie{}:
+
+@itemize
+@item
+la fonction scheme @code{layout-set-staff-size},
+
+@item
+dans des blocs @code{\contexte}, les  modifications apportées aux
+différents contextes, et
+
+@item
+les variables normalement attachées au bloc @code{\paper} qui
+affacteront la mise en forme de la partition.
+
+@end itemize
+
+La fonction @code{layout-set-staff-size} fait l'objet de la rubrique
+suivante, @ref{Définition de la taille de portée}.  La modification des
+contextes est abordée dans d'autres chapitres -- voir
+@ref{Modification des propriétés d'un contexte} et
+@ref{Modification des réglages par défaut d'un contexte}.  Les variables
+du bloc @code{\paper} que l'on peut retrouver dans un bloc
+@code{\layout} sont@tie{}:
+
+@itemize
+
+@item
+@code{line-width}, @code{ragged-right} et @code{ragged-last}
+(voir @ref{Variables de marge et de largeur})
+
+@item
+@code{indent} et @code{short-indent}
+(see @ref{Variables d'indentation et de décalage})
+
+@item
+@code{system-count}
+(see @ref{Variables de gestion des sauts de ligne})
+
+@end itemize
+
+Voici un exemple de bloc @code{\layout} :
+
+@example
+\layout @{
+  indent = 2\cm
+  \context @{
+    \StaffGroup
+    \override StaffGrouper #'staff-staff-spacing #space = #8
+  @}
+  \context @{
+    \Voice
+    \override TextScript #'padding = #1
+    \override Glissando #'thickness = #3
+  @}
+@}
+@end example
+
+
+@seealso
+Manuel de notation :
+@ref{Modification des réglages par défaut d'un contexte}.
+
+Morceaux choisis :
+@rlsrnamed{Spacing,Espacements}.
+
+
+@node Définition de la taille de portée
+@subsection Définition de la taille de portée
+@translationof Setting the staff size
+
+@cindex fonte, définition de la taille
+@cindex portée, définition de la taille
+@funindex layout file
+
+La @strong{taille de portée} @emph{(staff size)} est fixée par défaut à
+20@tie{}points.  Il existe deux manières de la modifier@tie{}:
+
+La taille des portées peut se définir globalement pour toutes les
+partitions d'un même fichier, ou plus précisément d'un bloc
+@code{\book}, à l'aide de @code{set-global-staff-size}.
+
+@example
+#(set-global-staff-size 14)
+@end example
+
+@noindent
+Ceci définit donc la hauteur des portées à 14@tie{}points par
+défaut@tie{}; toutes les fontes seront ajustées en conséquence.
+
+
+Vous pouvez aussi spécifier une taille à une partition en particulier en
+procédant comme ci-dessous@tie{}:
+
+@example
+\score@{
+  @dots{}
+  \layout@{
+    #(layout-set-staff-size 15)
+  @}
+@}
+@end example
+
+La fonte Feta fournit les symboles musicaux dans huit tailles
+différentes.  Chaque fonte correspond à une hauteur particulière de
+portée@tie{}; les petites tailles comportent des symboles plus épais
+pour être cohérent avec l'épaisseur relativement plus importante des
+lignes de la portée.  Le tableau suivant répertorie les différentes
+tailles de police.
+
+@quotation
+@multitable @columnfractions .15 .2 .22 .2
+
+@item @b{nom de la fonte}
+@tab @b{hauteur de portée (pt)}
+@tab @b{hauteur de portée (mm)}
+@tab @b{utilisation}
+
+@item feta11
+@tab 11,22
+@tab 3,9
+@tab format de poche
+
+@item feta13
+@tab 12,60
+@tab 4,4
+@tab
+
+@item feta14
+@tab 14,14
+@tab 5,0
+@tab
+
+@item feta16
+@tab 15,87
+@tab 5,6
+@tab
+
+@item feta18
+@tab 17,82
+@tab 6,3
+@tab carnet de chant
+
+@item feta20
+@tab 20
+@tab 7,0
+@tab partition standard
+
+@item feta23
+@tab 22,45
+@tab 7,9
+@tab
+
+@item feta26
+@tab 25,2
+@tab 8,9
+@tab
+@c matériel de location moderne ?
+
+@end multitable
+@end quotation
+
+Ces fontes sont disponibles dans toutes les tailles.  La propriété de
+contexte @code{fontSize} ainsi que la propriété de mise en forme
+@code{staff-space} (voir @rinternals{StaffSymbol}) permettent d'ajuster
+individuellement la taille de chaque portée.  La taille de chacune des
+portées est relative à la taille globale.
+
+
+@seealso
+Manuel de notation :
+@ref{Indication de la taille de fonte musicale}.
+
+Morceaux choisis :
+@rlsrnamed{Spacing,Espacements}.
+
+
+@knownissues
+
+@code{layout-set-staff-size} ne modifie en rien l'espacement entre les
+lignes d'une portée.
+
+
+@node Sauts
+@section Sauts
+@translationof Breaks
+
+@menu
+* Sauts de ligne::
+* Sauts de page::
+* Optimisation des sauts de page::
+* Optimisation des tournes::
+* Minimisation des sauts de page::
+* Sauts explicites::
+* Recours à une voix supplémentaire pour gérer les sauts::
+@end menu
+
+
+@node Sauts de ligne
+@subsection Sauts de ligne
+@translationof Line breaking
+
+@cindex saut de ligne
+@cindex ligne, passer à la suivante
+
+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 @code{\break} à l'endroit où
+vous le jugez utile pour @qq{forcer} le passage à la ligne
+suivante@tie{}:
+
+@lilypond[quote,ragged-right,relative=2,verbatim]
+c4 c c c | \break
+c4 c c c |
+@end lilypond
+
+Par défaut, un saut de ligne ne saurait intervenir au beau milieu d'une
+mesure@tie{}; LilyPond vous le signalera par un message si tel était le
+cas.  Si d'aventure vous voulez forcer un saut de ligne en l'absence de
+barre de mesure, vous devrez auparavant insérer une barre invisible -- à
+l'aide de @code{\bar@tie{}""}.
+
+@lilypond[quote,ragged-right,relative=2,verbatim]
+c4 c c
+\bar "" \break
+c |
+c4 c c c |
+@end lilypond
+
+LilyPond ignorera un @code{\break} placé sur une barre à la fin d'une
+mesure dès lors que la précédente avait une note en suspend -- c'est
+typiquement le cas lorsqu'un nolet est à cheval sur deux mesures.
+L'instruction @code{\break} sera alors opérationnelle si vous avez
+auparavant désactivé le @code{Forbid_line_break_engraver} du contexte
+@code{Voice} concerné.  Notez bien que les sauts de ligne forcés doivent
+être saisis au sein d'une expression polyphonique@tie{}:
+
+@lilypond[quote,ragged-right,verbatim]
+\new Voice \with {
+  \remove Forbid_line_break_engraver
+} \relative c'' {
+  <<
+    { c2. \times 2/3 { c4 c c } c2. | }
+    { s1 | \break s1 | }
+  >>
+}
+@end lilypond
+
+Selon le même principe, un saut de ligne ne peut intervenir alors qu'une
+ligature s'étend sur deux mesures consécutives.  Il faut en ce cas là
+introduire la dérogation @w{@code{\override Beam #'breakable = ##t}}.
+
+@lilypond[quote,ragged-right,relative=2,verbatim]
+\override Beam #'breakable = ##t
+c2. c8[ c | \break
+c8 c] c2. |
+@end lilypond
+
+L'instruction opposée, @code{\noBreak}, interdira toute tentative de
+saut de ligne à la fin de la mesure où elle est explicitée.
+
+LilyPond dispose de deux variables de base pour influencer l'espacement
+au niveau des lignes.  Toutes deux se définissent dans un bloc
+@code{\layout}, @code{indent} réglant l'indentation de la première
+ligne, et @code{line-width} la longueur des lignes.
+
+L'activation du commutateur @code{ragged-right} au sein du bloc
+@code{\layout} aura pour effet de terminer les systèmes là où il le
+feraient 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.
+
+@c TODO Check and add para on default for ragged-right
+
+Le commutateur @code{ragged-last} est équivalent à @code{ragged-right},
+à ceci près qu'il n'affecte que la dernière ligne de la pièce.
+
+@example
+\layout @{
+  indent = 0\mm
+  line-width = 150\mm
+  ragged-last = ##t
+@}
+@end example
+
+
+
+@cindex sauts de ligne réguliers
+@cindex portée à quatre mesures
+
+L'utilisation conjointe de @code{\break} et de blancs dans une section
+@code{\repeat} vous permettra de positionner des sauts de ligne à
+intervalle régulier.  Par exemple, les 28 mesures de ce qui suit, si
+'lon est à 4/4, seront coupées toutes les quatre mesures, pas
+ailleurs@tie{}:
+
+@example
+<<
+  \repeat unfold 7 @{
+    s1 \noBreak s1 \noBreak
+    s1 \noBreak s1 \break
+  @}
+  @{ @var{the actual music@dots{}} @}
+>>
+@end example
+
+@ignore
+Apparemment, je ne vois pas de "snippet" qui corresponde,
+à moins que ce ne soit pour allécher vers la section
+"4.6 Fitting music onto fewer pages" -JCM
+@c TODO Check this
+A linebreaking configuration can be saved as a @code{.ly} file
+automatically.  This allows vertical alignments to be stretched to
+fit pages in a second formatting run.  This is fairly new and
+complicated.  More details are available in
+@rlsr{Spacing}.
+@end ignore
+
+@predefined
+@funindex \break
+@code{\break},
+@funindex \noBreak
+@code{\noBreak}.
+@endpredefined
+
+
+@seealso
+Notation Reference:
+@ref{Variables de gestion des sauts de ligne}.
+
+Référence des propriétés internes :
+@rinternals{LineBreakEvent}.
+
+Morceaux choisis :
+@rlsrnamed{Spacing,Espacements}.
+
+
+@node Sauts de page
+@subsection Sauts de page
+@translationof Page breaking
+
+La gestion automatique des sauts de page se contrôle à l'aide des
+commandes @code{\pageBreak} et @code{\noPageBreak}. Ces commandes
+fonctionnent de manière analogue à @code{\break} et @code{\noBreak} pour
+les sauts de ligne et se placent donc au moment d'une barre de mesure.
+Elles permettent de forcer, ou d'interdire, un saut de page à l'endroit
+indiqué.  Comme on peut s'y attendre, @code{\pageBreak} force le saut de
+ligne.
+
+Les commandes @code{\pageBreak} et @code{\noPageBreak} peuvent se
+trouver à des niveaux supérieurs, entre deux partitions ou
+@emph{markups} de premier rang.
+
+Tout comme @code{ragged-right} et @code{ragged-last} qui permettent de
+gérer la répartition horizontale, LilyPond dispose de commutateurs
+équivalents au niveau de la verticalité@tie{}: @code{ragged-bottom} et
+@code{ragged-last-bottom}.  Lorsqu'ils sont tous deux activés --
+affectés de @code{##t} -- les systèmes ne seront pas répartis sur les
+pages y compris la dernière.  Pour de plus amples détails, reportez-vous
+à @ref{Variables d'espacement vertical fixe}.
+
+Les sauts de page sont générés par la fonction @code{page-breaking}.
+LilyPond dispose de trois différents algorithmes en la matière@tie{}:
+@code{ly:optimal-breaking}, @code{ly:page-turn-breaking} et
+@code{ly:minimal-breaking}.  C'est @code{ly:optimal-breaking} qui est
+activé par défaut, mais rien ne vous empêche d'en changer, par
+l'intermédiaire du bloc @code{\paper}@tie{}:
+
+@example
+\paper @{
+  page-breaking = #ly:page-turn-breaking
+@}
+@end example
+
+@funindex \bookpart
+
+Lorsqu'un ouvrage contient plusieurs partitions et un certain nombre de
+pages, la gestion des sauts de page finit par devenir très gourmande,
+tant au niveau du processeur que de la mémoire.  Vous pouvez cependant
+alléger la charge en recourant à des blocs @code{\bookpart} afin de
+sectionner l'ouvrage que vous traitez@tie{}; les sauts de pages seront
+alors gérés individuellement au niveau de chacune des parties.  Par
+ailleurs, cela vous autorisera une gestion différente selon les
+sections.
+
+@example
+\bookpart @{
+  \header @{
+    subtitle = "Préface"
+  @}
+  \paper @{
+     %% Pour une partie constituée principalement de texte
+     %% ly:minimal-breaking est plus judicieux.
+     page-breaking = #ly:minimal-breaking
+  @}
+  \markup @{ @dots{} @}
+  @dots{}
+@}
+\bookpart @{
+  %% Cette partie étant purement musicale,
+  %% retour au style par défaut (optimal-breaking).
+  \header @{
+    subtitle = "Premier mouvement"
+  @}
+  \score @{ @dots{} @}
+  @dots{}
+@}
+@end example
+
+
+@predefined
+@funindex \pageBreak
+@code{\pageBreak},
+@funindex \noPageBreak
+@code{\noPageBreak}.
+@endpredefined
+
+
+@seealso
+Manuel de notation :
+@ref{Variables de gestion des sauts de page}.
+
+Morceaux choisis :
+@rlsrnamed{Spacing,Espacements}.
+
+
+@node Optimisation des sauts de page
+@subsection Optimisation des sauts de page
+@translationof Optimal page breaking
+
+@funindex ly:optimal-breaking
+
+LilyPond, pour déterminer où placer un saut de page, utilise par défaut
+la fonction @code{ly:optimal-breaking}.  Celle-ci tend à trouver une
+rupture qui évite d'obtenir à la fois une page trop dense ou exagérément
+aérée.  Contrairement à la fonction @code{ly:page-turn-breaking}, elle
+n'a aucune notion de ce qu'est une @qq{tourne}.
+
+
+@seealso
+Morceaux choisis :
+@rlsrnamed{Spacing,Espacements}.
+
+
+@node Optimisation des tournes
+@subsection Optimisation des tournes
+@translationof Optimal page turning
+
+@funindex ly:page-turn-breaking
+
+Aboutir à une configuration des sauts de page de telle sorte que les
+pages de droite se terminent toujours par un silence devient souvent une
+nécessité.  En effet, l'exécutant pourra alors tourner la page sans
+risquer de manquer des notes.  La fonction @code{ly:page-turn-breaking}
+tend à trouver une rupture qui évite d'obtenir à la fois une page trop
+dense ou exagérément aérée, tout en tenant compte du fait qu'une tourne
+ne saurait intervenir qu'à certains endroits.
+
+L'utilisation de cette fonction se fait en deux étapes.  Il vous faut
+tout d'abord l'activer au sein du bloc @code{\paper} comme indiqué à la
+rubrique @ref{Sauts de page}.  Vous devrez, dans un deuxième temps,
+informer la fonction des endroits où les sauts de page sont permis.
+
+Cette deuxième étape se réalise de deux manières différentes.  Vous
+pouvez spécifier manuellement chaque tourne potentielle en insérant un
+@code{\allowPageTurn} à l'endroit approprié de votre fichier source.
+
+Toutefois, cette option peut vite se révéler fastidieuse selon l'ampleur
+de l'œuvre.  Vous pouvez alors recourir au @code{Page_turn_engraver} que
+vous mentionnerez dans un contexte de voix ou de portée.  Ce graveur de
+tournes recherchera dans le contexte en question les passages sans note.
+Notez bien qu'il ne recherche pas des silences, mais l'absence de
+notes@tie{}; autrement dit, il ne restera pas inactif dans la cadre
+d'une portée polyphonique dont l'une des parties contiendrait des
+silences.  Lorsqu'il rencontre un fragment suffisamment long ne
+contenant aucune note, il insère un @code{\allowPageTurn} à la barre
+terminant ce fragment, à moins qu'il ne rencontre en chemin une
+@qq{barre spéciale} -- telle une double barre -- auquel cas il y
+déposera le @code{\allowPageTurn}.
+
+@funindex minimumPageTurnLength
+
+Le @code{Page_turn_engraver} examine la propriété de contexte
+@code{minimumPageTurnLength} pour déterminer quelle doit être la
+longueur d'un fragment sans note avant une tourne.  La valeur par
+défaut de @code{minimumPageTurnLength} est
+@code{#(ly:make-moment@tie{}1@tie{}1)}, soit une ronde, et s'ajuste de
+la manière suivante@tie{}:
+
+@example
+\new Staff \with @{ \consists "Page_turn_engraver" @}
+@{
+  a4 b c d |
+  R1 | % une tourne peut se placer ici
+  a4 b c d |
+  \set Staff.minimumPageTurnLength = #(ly:make-moment 5 2)
+  R1 | % il ne peut pas y avoir de tourne ici
+  a4 b r2 |
+  R1*2 | % une tourne peut se placer ici
+  a1
+@}
+@end example
+
+@funindex minimumRepeatLengthForPageTurn
+
+Le @code{Page_turn_engraver} tient compte des reprises.  C'est pourquoi
+il ne permettra une tourne que dans le cas où il y aura suffisamment de
+temps au début et à la fin de la reprise pour que l'exécutant ait le
+temps de revenir à la page précédente.  Le @code{Page_turn_engraver} est
+même capable d'interdire un tourne dans le cas d'une reprise de courte
+durée, ajustable au travers de la propriété de contexte
+@code{minimumRepeatLengthForPageTurn}.
+
+Les commandes de tourne -- @code{\pageTurn}, @code{\noPageTurn} et
+@code{\allowPageTurn} -- peuvent s'utiliser à des niveaux supérieurs,
+entre des blocs @code{\score} ou des @emph{markups} de haut niveau.
+
+
+@predefined
+@funindex \pageTurn
+@code{\pageTurn},
+@funindex \noPageTurn
+@code{\noPageTurn},
+@funindex \allowPageTurn
+@code{\allowPageTurn}.
+@endpredefined
+
+
+@seealso
+Morceaux choisis :
+@rlsrnamed{Spacing,Espacements}.
+
+
+@knownissues
+
+Une partition ne devrait contenir qu'une seule instance du
+@code{Page_turn_engraver}, au risque de se contredire les uns les autres.
+
+
+@node Minimisation des sauts de page
+@subsection Minimisation des sauts de page
+@translationof Minimal page breaking
+
+@funindex ly:minimal-breaking
+
+La fonction @code{ly:minimal-breaking} est celle qui réalise le moins de
+calculs pour positionner les sauts de page.  Elle mettra le plus de
+systèmes possible sur une page avant de passer à la suivante.  On peut
+donc la préférer lorsque la partition s'étend sur beaucoup de pages ou
+lorsque les autres fonctions de gestion des sauts de page ralentissent
+nettement le traitement, sont trop gourmandes en mémoire ou qu'il y a
+beaucoup de texte.  Il suffit de la mentionner au sein du bloc
+@code{\paper}@tie{}:
+
+@example
+\paper @{
+  page-breaking = #ly:minimal-breaking
+@}
+@end example
+
+
+@seealso
+Morceaux choisis :
+@rlsrnamed{Spacing,Espacements}.
+
+
+@node Sauts explicites
+@subsection Sauts explicites
+@translationof Explicit breaks
+
+Il arrive parfois que LilyPond rejette des @code{\break} ou des
+@code{\pageBreak} explicites.  Vous pouvez alors prendre le contrôle
+avec ces deux instructions dérogatoires@tie{}:
+
+@example
+\override NonMusicalPaperColumn #'line-break-permission = ##f
+\override NonMusicalPaperColumn #'page-break-permission = ##f
+@end example
+
+Lorsque vous désactivez @code{line-break-permission}, LilyPond
+ne passera à la ligne suivante qu'en présence d'un @code{\break}
+explicite, et nulle part ailleurs.  De la même façon, la désactivation
+de @code{page-break-permission} aura pour conséquence que LilyPond ne
+changera de page que lorsqu'il rencontrera un @code{\pageBreak}, et
+nulle part ailleurs.
+
+@lilypond[quote,verbatim]
+\paper {
+  indent = #0
+  ragged-right = ##t
+  ragged-bottom = ##t
+}
+
+musique = \relative c'' { c8 c c c }
+
+\score {
+  \new Staff {
+    \repeat unfold 2 { \musique } \break
+    \repeat unfold 4 { \musique } \break
+    \repeat unfold 6 { \musique } \break
+    \repeat unfold 8 { \musique } \pageBreak
+    \repeat unfold 8 { \musique } \break
+    \repeat unfold 6 { \musique } \break
+    \repeat unfold 4 { \musique } \break
+    \repeat unfold 2 { \musique }
+  }
+  \layout {
+    \context {
+      \Score
+      \override NonMusicalPaperColumn #'line-break-permission = ##f
+      \override NonMusicalPaperColumn #'page-break-permission = ##f
+    }
+  }
+}
+@end lilypond
+
+
+@seealso
+Morceaux choisis :
+@rlsrnamed{Spacing,Espacements}.
+
+
+@node Recours à une voix supplémentaire pour gérer les sauts
+@subsection Recours à une voix supplémentaire pour gérer les sauts
+@translationof Using an extra voice for breaks
+
+La plupart du temps, les informations concernant les sauts de ligne ou
+de page se retrouvent directement au milieu des notes.
+
+@example
+musique = \relative c'' @{ c4 c c c @}
+
+\score @{
+  \new Staff @{
+    \repeat unfold 2 @{ \musique @} \break
+    \repeat unfold 3 @{ \musique @}
+  @}
+@}
+@end example
+
+Bien que cela constitue un moyen aisé de saisir les commandes
+@code{\break} et @code{\pageBreak}, les données musicales se retrouvent
+mélangées à des informations qui concernent plutôt l'agencement de la
+musique sur le papier.  Vous pouvez tout à fait 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 @code{\skip} --,
+des @code{\break}, des @code{\pageBreak} et autres informations
+concernant les ruptures.
+
+@lilypond[quote,verbatim]
+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 }
+    }
+  >>
+}
+@end lilypond
+
+Cette manière de procéder est tout à fait indiquée lorsque vous ajustez
+les @code{line-break-system-details} et autres propriétés fort
+intéressantes de @code{NonMusicalPaperColumnGrob}, comme vous pouvez
+le voir au chapitre @ref{Espacement vertical}.
+
+@lilypond[quote,verbatim]
+music = \relative c'' { c4 c c c }
+
+\score {
+  \new Staff <<
+    \new Voice {
+      \overrideProperty "Score.NonMusicalPaperColumn"
+        #'line-break-system-details #'((Y-offset . 0))
+      s1 * 2 \break
+
+      \overrideProperty "Score.NonMusicalPaperColumn"
+        #'line-break-system-details #'((Y-offset . 35))
+      s1 * 3 \break
+
+      \overrideProperty "Score.NonMusicalPaperColumn"
+        #'line-break-system-details #'((Y-offset . 70))
+      s1 * 6 \break
+
+      \overrideProperty "Score.NonMusicalPaperColumn"
+        #'line-break-system-details #'((Y-offset . 105))
+      s1 * 5 \break
+    }
+    \new Voice {
+      \repeat unfold 2 { \music }
+      \repeat unfold 3 { \music }
+      \repeat unfold 6 { \music }
+      \repeat unfold 5 { \music }
+    }
+  >>
+}
+@end lilypond
+
+
+@seealso
+Manuel de notation :
+@ref{Espacement vertical}.
+
+Morceaux choisis :
+@rlsrnamed{Spacing,Espacements}.
+
+
+@node Espacement vertical
+@section Espacement vertical
+@translationof Vertical spacing
+
+@cindex vertical, espacement
+@cindex espacement vertical
+
+L'espacement vertical dépend de trois éléments@tie{}: la surface
+disponible -- par exemple format de papier et marges --, l'espace qui
+doit séparer les systèmes, et l'espace qui sépare les portées d'un même
+système.
+
+@menu
+* Espacement vertical au sein d'un système::
+* Positionnement explicite des portées et systèmes::
+* Résolution des collisions verticales::
+@end menu
+
+@node Espacement vertical au sein d'un système
+@subsection Espacement vertical au sein d'un système
+@translationof Flexible vertical spacing within systems
+
+@cindex distance entre les portées
+@cindex portées, espacement
+@cindex espacement entre les portées
+@cindex espacement au sein d'un système
+
+LilyPond dispose de trois différents mécanismes permettant de contrôler
+l'espacement au sein d'un système selon trois catégories@tie{}:
+
+@itemize
+
+@item
+@emph{portées isolées},
+
+@item
+@emph{portées regroupées} (portées d'un même groupe, telles celles
+d'un @code{ChoirStaff}, etc.), et
+
+@item
+@emph{lignes de non-portée} (@code{Lyrics}, @code{ChordNames}, etc.).
+
+@end itemize
+
+@c TODO: Clarify this.  This almost implies that non-staff lines
+@c       have NO effect on the spacing between staves.  -mp
+
+La hauteur de chaque système se détermine en deux phases.  Les portées
+sont tout d'abord espacées selon la surface disponible.  Puis les lignes
+autres que des portées, comme les paroles ou les accords, sont réparties
+entre les portées.
+
+Les paragraphes qui suivent traitent exclusivement de la manière de
+gérer l'espacement entre les lignes d'un système -- portée musicale ou
+non.  Pour ce qui a trait aux espacements entre les systèmes,
+mouvements, annotations et marge, ils sont contrôlés par des variables
+attachées au bloc @code{\paper} et font l'objet du chapitre
+@ref{Variables d'espacement vertical fluctuant}.
+
+@menu
+* Propriétés d'espacement au sein d'un système::
+* Espacement de portées isolées::
+* Espacement de portées regroupées::
+* Espacement des lignes rattachées à des portées::
+@end menu
+
+
+@node Propriétés d'espacement au sein d'un système
+@unnumberedsubsubsec Propriétés d'espacement au sein d'un système
+@translationof Within-system spacing properties
+
+L'espacement entre les portées est géré par deux jeux de propriétés
+d'objet graphique (@emph{grob}).  Le premier, associé à l'objet
+graphique @code{VerticalAxisGroup}, est créé pour toute ligne de portée
+ou de non-portée.  Le second, associé à l'objet graphique
+@code{StaffGrouper}, doit être explicitement créé pour un regroupement
+de portées particulier.  Les propriétés qui leur sont attachées sont
+abordées en fin de section.
+
+Le nom de ces propriétés, sauf @code{staff-affinity}, suit le schéma
+@code{@var{item1}-@var{item2}-spacing} -- @code{@var{item1}} et
+@code{@var{item2}} étant les éléments à espacer.  Notez bien que
+@code{@var{item2}} n'est pas forcément placé au-dessous@tie{}: c'est le
+cas pour la propriété @code{nonstaff-relatedstaff-spacing} qui spécifie
+la distance entre une ligne de non-portée alors que sa
+@code{staff-affinity} a été déterminée à @code{#UP}.
+
+Toutes ces distances sont mesurées entre les points de référence
+respectifs de éléments considérés.
+Le @i{point de référence} d'une portée est le centre vertical du
+@code{StaffSymbol} -- la ligne médiane si @code{line-count} est impair,
+l'interligne médian si @code{line-count} est pair.
+Quant aux lignes rattachées à des portées -- lignes de non-portée -- le
+tableau suivant présente le @i{point de référence} pour chacun d'entre
+eux@tie{}:
+
+@multitable {Non-staff line} {Reference point}
+@headitem Ligne de non-portée @tab Point de référence
+@item @code{ChordNames}  @tab ligne de base
+@item @code{NoteNames}   @tab ligne de base
+@item @code{Lyrics}      @tab ligne de base
+@item @code{Dynamics}    @tab centre vertical
+@item @code{FiguredBass} @tab point le plus haut
+@item @code{FretBoards}  @tab ligne supérieure
+@end multitable
+
+En voici une représentation graphique@tie{}:
+
+@c KEEP LY
+@lilypond[quote,noragged-right,line-width=110\mm]
+#(define zero-space '((padding . -inf.0) (basic-distance . 0)))
+
+alignToZero = \with {
+  \override VerticalAxisGroup #'nonstaff-relatedstaff-spacing = #zero-space
+  \override VerticalAxisGroup #'nonstaff-nonstaff-spacing = #zero-space
+}
+lowerCaseChords = \with {
+  chordNameLowercaseMinor = ##t
+}
+staffAffinityDown = \with {
+  \override VerticalAxisGroup #'staff-affinity = #DOWN
+}
+labelContext =
+#(define-music-function
+     (parser location context)
+     (string?)
+   #{ s1*0^\markup { \typewriter $context } #})
+
+\layout {
+  \context { \Dynamics    \alignToZero }
+  \context { \FiguredBass \alignToZero }
+  \context { \Lyrics      \alignToZero }
+  \context { \NoteNames   \alignToZero }
+  \context { \ChordNames  \alignToZero \lowerCaseChords }
+  \context { \FretBoards  \alignToZero \staffAffinityDown }
+  \context { \Score
+    \override BarLine #'stencil = ##f
+    \override DynamicText #'self-alignment-X = #-1
+    \override FretBoard #'X-offset = #1.75
+    \override InstrumentName #'minimum-Y-extent = #'(-2 . 2)
+    \override InstrumentName #'extra-offset = #'(0 . -0.5)
+    \override TextScript #'minimum-Y-extent = #'(-2 . 3)
+    \override TimeSignature #'stencil = ##f
+  }
+}
+
+%% Contextes dont le point de référence est la ligne de base :
+%%   ChordNames, NoteNames, et Lyrics
+<<
+  \new ChordNames { \chords { g1:m } }
+  \new NoteNames { s1 | g1 | }
+  \new RhythmicStaff {
+    \set RhythmicStaff.instrumentName = #"ligne de base (baseline) "
+    \textLengthOn
+    \labelContext "ChordNames" s1 |
+    \labelContext "NoteNames"  s1 |
+    \labelContext "Lyrics"     s1 |
+  }
+  \new Lyrics { \lyrics { \skip 1*2 | ghijk1 | } }
+>>
+
+%% Le point de référence de Dynamics est le milieu de la ligne
+<<
+  \new RhythmicStaff {
+    \set RhythmicStaff.instrumentName = #"centre vertical "
+    \labelContext "Dynamics" s1*3
+  }
+  \new Dynamics { s2\mp s\fp }
+>>
+
+%% Le point de référence de FiguredBass est son point le plus haut
+<<
+  \new RhythmicStaff {
+    \set RhythmicStaff.instrumentName = #"point le plus haut "
+    \labelContext "FiguredBass" s1
+  }
+  \new FiguredBass { \figuremode { <6 5>1 } }
+>>
+
+%% Le point de référence de FretBoards est la ligne du haut
+\include "predefined-guitar-fretboards.ly"
+<<
+  \new FretBoards { \chordmode { e1 } }
+  \new RhythmicStaff {
+    \set RhythmicStaff.instrumentName = #"ligne du haut "
+    \labelContext "FretBoards " s1
+  }
+>>
+@end lilypond
+
+Hormis @code{staff-affinity} -- propriété attachée au @emph{grob}
+@code{VerticalAxisGroup} --, chacune de ces propriétés est enregistrée
+sous la forme d'une liste associative dont la structure est
+identique à celle des variables du bloc @code{\paper} que nous avons
+examinées au chapitre
+@ref{Variables d'espacement vertical fluctuant}.  Les particularités en
+matière de modification d'une liste associative font l'objet d'un
+@rusernamed{Modification de listes associatives,chapitre particulier}.
+Les propriétés des objets graphiques se règlent avec un @code{\override}
+mentionné dans un bloc @code{\score} ou @code{\layout}, pas dans le bloc
+@code{\paper}.
+
+L'exemple suivant illustre deux façons de modifier une liste
+associative.  La première déclaration n'agit que sur une seule clé,
+alors que la seconde redéfinit la propriété dans son intégralité.
+
+@example
+\new Staff \with @{
+  \override VerticalAxisGroup #'staff-staff-spacing #'basic-distance = #10
+@} @{ @dots{} @}
+
+\new Staff \with @{
+  \override VerticalAxisGroup #'staff-staff-spacing =
+    #'(('basic-distance  . 10)
+       (minimum-distance . 9)
+       (padding . 1)
+       (stretchability . 10))
+@} @{ @dots{} @}
+@end example
+
+La modification d'un espacement au niveau global se mentionne au sein du
+bloc @code{\layout}@tie{}:
+
+@example
+\layout @{
+  \context @{
+    \Staff
+    \override VerticalAxisGroup #'staff-staff-spacing #'basic-distance = #10
+  @}
+@}
+@end example
+
+Les réglages concernant les propriétés d'espacement vertical des objets
+graphiques sont répertoriées aux chapitres
+@rinternals{VerticalAxisGroup} et @rinternals{StaffGrouper}.
+Les propriétés relatives aux lignes de non-portée sont répertoriées
+selon la définition de leur contexte dans la
+@rinternalsnamed{Contexts,Référence des propriétés internes}.
+
+
+@subsubheading Propriétés de l'objet @code{VerticalAxisGroup}
+@translationof Properties of the @code{VerticalAxisGroup} grob
+
+Les propriétés de l'objet @code{VerticalAxisGroup} s'ajustent à l'aide
+d'un @code{\override} au niveau d'un contexte @code{Staff} (ou son
+équivalent).
+
+@table @code
+@item staff-staff-spacing
+Il s'agit de la distance entre la portée en cours et la portée qui suit
+au sein du même regroupement, qu'il y ait ou non une ligne de non-portée
+(@code{Lyrics} ou autre) entre les deux.  Cette propriété ne s'applique
+pas à la dernière portée d'un système.
+
+En tout état de cause, la fonction Scheme @code{staff-staff-spacing}
+d'un @code{VerticalAxisGroup} affectera les propriétés du
+@code{StaffGrouper} si la portée est incluse dans un regroupement@tie{};
+elle s'appliquera au @code{default-staff-staff-spacing} en l'absence de
+regroupement.  Les portées peuvent donc s'aligner différemment selon
+qu'elles sont ou non regroupées.  Pour obtenir le même espacement sans
+tenir compte dees éventuels regroupements, cette fonction peut faire
+place à une complète redéfinition des espacements fluctuants à l'aide de
+règles dérogatoires comme vu précédemment.
+
+@item default-staff-staff-spacing
+Il s'agit de la distance qui s'appliquera par défaut aux portées
+isolées, à loins que @code{staff-staff-spacing} n'ait été redéfini
+explicitement par un @code{\override}.
+
+@item staff-affinity
+Il s'agit de la direction -- @code{UP}, @code{DOWN} ou @code{CENTER} --
+que prendra une ligne de non-portée pour aller s'accoler aux portées
+adjacentes .  Si vous lui attribuez @code{CENTER}, cette ligne de
+non-portée ira se placer à équidistance entre les portées qui
+l'encadrent, tout en tenant compte des éventuels risques de collision et
+des autres contraintes d'espacement.  Des lignes de non-portée
+adjacentes devraient avoir une @code{staff-affinity} allant de haut en
+bas -- autrement dit, pas de @code{UP} après un @code{DOWN}.
+Une ligne de non-portée en dessous d'un système devrait avoir sa
+@code{staff-affinity} définie à @code{UP}.  De la même manière, lorsque
+cette ligne surplombe un système, sa @code{staff-affinity} devrait être
+définie à @code{DOWN}.  Prenez garde à la valeur que vous affectez à
+@code{staff-affinity}@tie{}: si vous lui affectez la valeur @code{#f} à
+une ligne de non-portée, cette ligne sera considérée comme étant une
+portée@tie{}; à l'inverse, utiliser la propriété @code{staff-affinity}
+pour une portée lui fera perdre cette qualité.
+
+@c TODO: verify last clause below ("even if other...")
+
+@item nonstaff-relatedstaff-spacing
+Il s'agit de la distance entre la ligne de non-portée en cours et la
+portée la plus proche selon la @code{staff-affinity}, à la double
+condition qu'il n'y a pas déjà une autre ligne de non-portée et que la
+valeur de @code{staff-affinity} soit @code{UP} ou @code{DOWN}.  Lorsque
+la valeur de @code{staff-affinity} est égale à @code{CENTER}, la valeur
+de @code{nonstaff-relatedstaff-spacing} servira à centrer la ligne de
+non-portée entre les deux portées adjacentes même si une autre
+non-portée est présente (quelque soit le côté).
+
+@item nonstaff-nonstaff-spacing
+Il s'agit de la distance entre deux lignes de non-portée selon
+l'orientation définie par @code{staff-affinity} et qu'elles ont la même
+orientation.  Bien entendu, ceci ne peut concerner que les valeurs
+@code{UP} et @code{DOWN} de @code{staff-affinity}.
+
+@item nonstaff-unrelatedstaff-spacing
+Il s'agit de la distance entre une ligne de non-portée et la portée à
+l'opposé de l'orientation adoptée, à la double condition qu'il n'y a pas
+déjà une autre ligne de non-portée et que la valeur de
+@code{staff-affinity} soit @code{UP} ou @code{DOWN}.  Cette propriété
+trouve toute sa légitimité pour décaler une ligne de @code{Lyrics} de la
+portée à laquelle elle ne correspond pas.
+@end table
+
+
+@subsubheading Propriétés de l'objet @code{StaffGrouper}
+@translationof Properties of the @code{StaffGrouper} grob
+
+Les propriétés de l'objet @code{StaffGrouper} s'ajustent à l'aide
+d'un @code{\override} au niveau d'un contexte @code{StaffGroup} (ou son
+équivalent).
+
+@table @code
+@item staff-staff-spacing
+Il s'agit de la distance entre deux portées consécutives d'un même
+système.  La propriété @code{staff-staff-spacing} de l'objet
+@code{VerticalAxisGroup} d'un portée en particulier peut se redéfinir à
+l'aide de règles dérogatoires.
+
+@item staffgroup-staff-spacing
+Il s'agit de la distance entre la dernière portée d'un regroupement et
+la portée suivante, au sein d'un même système, y compris lorsqu'une ou
+plusieurs lignes de non-portée (tel @code{Lyrics}) s'insèrent entre les
+deux.  Cette propriété ne concerne pas la dernière portée d'un système.
+Dans le cas où la propriété @code{staff-staff-spacing} d'une portée du
+regroupement a été ajustée au niveau de son propre
+@code{VerticalAxisGroup}, cette dernière aura préséance.
+@end table
+
+
+@seealso
+Fichiers d'initialisation :
+@file{ly/engraver-init.ly},
+@file{scm/define-grobs.scm}.
+
+Référence des propriétés internes :
+@rinternals{Contexts},
+@rinternals{VerticalAxisGroup},
+@rinternals{StaffGrouper}.
+
+
+@node Espacement de portées isolées
+@unnumberedsubsubsec Espacement de portées isolées
+@translationof Spacing of ungrouped staves
+
+Les @code{Staff}, @code{DrumStaff}, @code{TabStaff} entre autres sont
+des contextes de @qq{portée} pouvant contenir plusieurs voix, mais pas
+une portée.
+
+L'espacement de ces @i{portées isolées} est géré par les propriétés
+suivantes@tie{}:
+
+@itemize
+@item Propriétés du @code{VerticalAxisGroup} :
+@itemize
+@item @code{default-staff-staff-spacing}
+@item @code{staff-staff-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}.
+
+Certaines propriétés supplémentaires s'appliqueront dès lors que
+ces portées sont regroupées -- voir
+@ref{Espacement de portées regroupées}.
+
+L'exemple suivant illustre la manière de gérer l'espacement de portées
+isolées à l'aide de la propriété @code{default-staff-staff-spacing}.
+Les mêmes règles appliquées de manière dérogatoire au
+@code{staff-staff-spacing} produiront les mêmes effets, y comris au sein
+de regroupements.
+
+@lilypond[verbatim,quote,staffsize=16]
+\layout {
+  \context {
+    \Staff
+    \override VerticalAxisGroup #'default-staff-staff-spacing =
+      #'((basic-distance . 8)
+         (minimum-distance . 7)
+         (padding . 1))
+  }
+}
+
+<<
+  % The very low note here needs more room than 'basic-distance
+  % can provide, so the distance between this staff and the next
+  % is determined by 'padding.
+  \new Staff { b,2 r | }
+
+  % Here, 'basic-distance provides enough room, and there is no
+  % need to compress the space (towards 'minimum-distance) to make
+  % room for anything else on the page, so the distance between
+  % this staff and the next is determined by 'basic-distance.
+  \new Staff { \clef bass g2 r | }
+
+  % By setting 'padding to a negative value, staves can be made to
+  % collide.  The lowest acceptable value for 'basic-distance is 0.
+  \new Staff \with {
+    \override VerticalAxisGroup #'default-staff-staff-spacing =
+      #'((basic-distance . 3.5)
+         (padding . -10))
+  } { \clef bass g2 r | }
+  \new Staff { \clef bass g2 r | }
+>>
+@end lilypond
+
+
+@seealso
+Fichiers d'initialisation :
+@file{scm/define-grobs.scm}.
+
+Morceaux choisis :
+@rlsrnamed{Spacing,Espacements}.
+
+Référence des propriétés internes :
+@rinternals{VerticalAxisGroup}.
+
+
+@node Espacement de portées regroupées
+@unnumberedsubsubsec Espacement de portées regroupées
+@translationof Spacing of grouped staves
+
+Dans les partitions orchestrales ou de grande ampleur, il arrive
+souvent que des portées soient regroupées.  L'espacement est alors plus
+important entre deux regroupements qu'entre les portées d'un même
+groupe.  
+
+Les @i{regroupement de portées} tels le @code{StaffGroup} ou le
+@code{ChoirStaff} sont des contextes qui peuvent contenir simultanément
+une ou plusieurs portées.
+
+L'espacement entre les portées d'un même regroupement est géré par les
+propriétés suivantes@tie{}: 
+
+@itemize
+@item Propriétés du @code{VerticalAxisGroup} :
+@itemize
+@item @code{staff-staff-spacing}
+@end itemize
+@item Propriétés du @code{StaffGrouper} :
+@itemize
+@item @code{staff-staff-spacing}
+@item @code{staffgroup-staff-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 illustre la manière de gérer l'espacement de portées
+regroupes, à l'aide des propriétés de l'objet graphique
+@code{StaffGrouper}@tie{}:
+
+@lilypond[verbatim,quote,staffsize=16]
+\layout {
+  \context {
+    \Score
+    \override StaffGrouper #'staff-staff-spacing #'padding = #0
+    \override StaffGrouper #'staff-staff-spacing #'basic-distance = #1
+  }
+}
+
+<<
+  \new PianoStaff \with {
+    \override StaffGrouper #'staffgroup-staff-spacing #'basic-distance = #20
+  } <<
+    \new Staff { c'1 }
+    \new Staff { c'1 }
+  >>
+
+  \new StaffGroup <<
+    \new Staff { c'1 }
+    \new Staff { c'1 }
+  >>
+>>
+@end lilypond
+
+
+@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}.
+
+
+@node Espacement des lignes rattachées à des portées
+@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 = #'((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@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[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@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[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@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.  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]
+\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érente longueur.  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@tie{}: 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@tie{}; pour la noire , cette espace est de deux têtes@tie{}; 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@tie{}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@tie{}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@tie{}; 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@tie{}: 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
+@code{--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@tie{}:
+
+@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}.
+
+Référence des propriétés internes :
+@rinternals{SpacingSpanner},
+@rinternals{NoteSpacing},
+@rinternals{StaffSpacing},
+@rinternals{NonMusicalPaperColumn}.
+
+Essai sur la gravure musicale automatisée :
+@ressay{Espacement}.
+
+
+@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@tie{}; 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@tie{}; remarquez comme les doubles-croches sont
+alors plus espacées@tie{}:
+
+@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'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@tie{}:
+@w{@code{1 4}} est plus long que @w{@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@tie{}:
+
+@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
+
+@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@tie{}: @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 fragment, 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 layout
+@cindex vertical spacing
+
+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 en 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 an
+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@tie{}: 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 quel 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@tie{}: 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@tie{}; à 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@tie{}: 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@tie{}: 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@tie{}:
+il suffit qu'il n'y en ait pas@tie{}! 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@tie{}:
+
+@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 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 suiven@tie{}: 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 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}@tie{}:
+
+@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@tie{}espaces de portée
+(@code{staff-spaces}) et la taille de portée (@code{staff-size}) de
+20@tie{}points -- sa valeur par défaut.  Notez que@tie{}:
+
+@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@tie{}millimètres.  Les 59,75@tie{}@code{staff-spaces} de
+@code{paper-height} correspondent donc à 105@tie{}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@tie{}:
+
+@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@tie{}systèmes par pages,
+l'instruction suivante le force à 10.
+
+@example
+\paper @{
+  system-count = #10
+@}
+@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@tie{}:
+
+@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@tie{}:
+
+@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@tie{}:
+
+@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}.
+
+