]> git.donarmstrong.com Git - lilypond.git/blobdiff - Documentation/fr/notation/spacing.itely
Merge remote-tracking branch 'origin/master' into translation
[lilypond.git] / Documentation / fr / notation / spacing.itely
index b6734daa1a868165f5dbad624b4be1842e9cf0d7..3a0be28909c8314eac670b84402956f759e245f9 100644 (file)
 @c -*- coding: utf-8; mode: texinfo; documentlanguage: fr -*-
 
 @ignore
-    Translation of GIT committish: 964d024dd4f022ba7cd66adc13c0169035d4c4e5
+    Translation of GIT committish: 95b372c451ea1586db8db66d3d00334382e8e103
 
     When revising a translation, copy the HEAD committish of the
-    version that you are working on.  See TRANSLATION for details.
+    version that you are working on.  For details, see the Contributors'
+    Guide, node Updating translation committishes..
 @end ignore
 
-@c \version "2.12.0"
+@c \version "2.17.6"
 
 @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 : 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
+ligne 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 : le nombre de systèmes utilisés, l'espacement des
+regroupements de portées, etc.
 
 @menu
-* Du papier et des pages::
-* Mise en forme de la musique::
+* 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
 
-@node Du papier et des pages
-@section Du papier et des pages
-@translationof Paper and pages @c external
+@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 : certains termes techniques ont une histoire
+particulière selon leur langue d'origine.  Ainsi le vocable anglais
+@emph{Ragged} signifie en lambeau, en loques ; 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}) ; il ne doit donc en aucun cas se trouver dans un
+bloc @code{\score}.  Peuvent apparaître dans un bloc @code{\paper} :
+
+@itemize
+
+@item
+la fonction Scheme @code{set-paper-size},
+
+@item
+des variables propres au bloc @code{\paper} qui viendront adapter la
+mise en page,
+
+@item
+la définition des différents @emph{markups} qui personnaliseront la mise
+en forme des entêtes et pieds de page ainsi que des 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 titrage, 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 :
+
+@example
+\paper @{
+  top-margin = 10
+@}
+@end example
+
+Si vous préférez lui affecter une valeur de 0,5 pouce, vous devrez
+mentionner le suffixe d'unité @code{\in} :
+
+@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 :
+
+@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}.
 
-@untranslated
 
+@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::
-* Mise en forme de la page::
+* Adaptation automatique au format::
 @end menu
 
+
 @node Format du papier
-@subsection Format du papier
-@translationof Paper size @c external
+@unnumberedsubsubsec Format du papier
+@translationof Setting the paper size
 
-@untranslated
+LilyPond génère par défaut, et en l'absence de mention explicite d'un
+format de papier, un fichier imprimable au format A4.  Vous pouvez
+cependant utiliser un autre format à l'aide des deux fonctions
+@code{set-default-paper-size} et @code{set-paper-size} qui, elle, se
+place à l'intérieur d'un bloc @code{\paper} :
 
+@example
+#(set-default-paper-size "quarto")
+@end example
 
-@node Mise en forme de la page
-@subsection Mise en forme de la page
-@translationof Page formatting @c external
+qui se place en début de fichier, ou @code{set-paper-size},
+
+@example
+\paper @{
+  #(set-paper-size "tabloid")
+@}
+@end example
+
+qui s'inscrit au sein d'un bloc @code{\paper}.
+
+@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}.  @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 ; si @code{\paper}
+apparaît dans un bloc @code{\book}, la taille ne s'appliquera qu'au
+@emph{book} en question.
+
+À l'intérieur d'un bloc @code{\paper}, la fonction @code{set-paper-size}
+doit intervenir avant toute autre variable.  Les raisons à ceci sont
+abordées à la rubrique @ref{Adaptation automatique au format}.
+
+Différents formats de papier sont définis dans le fichier
+@file{scm/paper.scm}.  Bien que vous puissiez y ajouter votre propre
+format, sachez cependant que celui-ci est écrasé à chaque mise à jour de
+LilyPond.
+
+@c An appendix entry exists for paper sizes but is not auto-generated
+
+La commande suivante, inscrite dans votre fichier, vous permettra
+d'ajouter votre format personnalisé à ceux déjà connus, puis d'y faire
+appel à l'aide des fonctions @code{set-default-paper-size} et
+@code{set-paper-size} :
+
+@example
+#(set! paper-alist (cons '("mon format" . (cons (* 15 in) (* 3 in))) paper-alist))
+
+\paper @{
+  #(set-paper-size "mon format")
+@}
+@end example
+Les unités peuvent s'exprimer aussi bien en @code{in} (pouces), qu'en
+@code{cm} (centimètres) ou @code{mm} (millimètres).
+
+@cindex papier, orientation
+@cindex landscape, papier
+@cindex paysage, papier
+@cindex à l'italienne, papier
+
+Le fait d'ajouter l'argument @code{'landscape} à l'instruction
+stipulant le format du papier 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
+
+L'inversion des dimensions du papier sans pour autant basculer la
+présentation -- comme pour imprimer sur une carte postale ou créer un
+graphique destiné à inclusion -- s'obtient en ajoutant @samp{landscape}
+au nom du format de papier :
+
+@example
+#(set-default-paper-size "a6landscape")
+@end example
+
+Lorsque la taille du papier comporte explicitement @samp{landscape} ou
+@samp{portrait}, la présence d'un argument @code{'landscape} aura pour
+seul effet de modifier l'orientation de l'image et non les dimensions de
+la feuille.
+
+@seealso
+Manuel de notation :
+@ref{Adaptation automatique au format},
+@ref{Formats de papier prédéfinis}.
+
+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'échelle.
+
+L'adaptation automatique affecte les dimensionnements verticaux
+@code{top-margin} et @code{bottom-margin} -- voir 
+@ref{Variables d'espacement vertical fixe} --, ainsi que les
+dimensionnements 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 dimensionnements 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 dimensionnements
+verticaux.
+
+@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 à @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 à @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 @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 @code{#t}.  Nous vous conseillons, lorsque des pièces couvrent
+deux pages ou plus, de désactiver 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 ; 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.
+
+La définition explicite d'un format de papier annulera tout réglage des
+marges haute et basse.
+
+
+@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} :
+
+@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 ; 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 ;
+elle est en fait égale à
+(@code{basic-distance} @minus{} @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
+
+Cependant, lorsque la partition fait plusieurs pages, la dernière page
+reprendra dans la mesure du possible l'espacement de la page précédente.
+
+Les manières de modifier des listes associatives font l'objet d'un
+@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 pour 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}.
+
+Morceaux choisis :
+@rlsrnamed{Spacing,Espacements}.
+
+
+@node Variables d'espacement horizontal
+@subsection Variables d'espacement horizontal
+@translationof Horizontal spacing \paper variables
+
+@warning{Certains dimensionnements 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é 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 @code{10\mm} ; 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 @minus{} line-width @minus{} right-margin)}.
+Lorsque seule @code{line-width} est définie, les deux marges
+correspondent à
+@code{((paper-width @minus{} line-width) / 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 @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 @minus{} line-width @minus{} left-margin)}.
+Lorsque seule @code{line-width} est définie, les deux marges
+correspondent à
+@code{((paper-width @minus{} line-width) / 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 @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 format 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 @code{#f}.  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}.
+
+@knownissues
+La définition explicite d'un format de papier annulera tout réglage des
+marges gauche et droite.
+
+
+@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 @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 @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 @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 @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 @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 @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 @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}.
+
+Morceaux choisis :
+@rlsrnamed{Spacing, Espacements}.
+
+
+@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-penalty
+@funindex blank-after-score-page-penalty
+
+Pénalité pour apparition d'une page blanche entre deux partitions.  Sa
+valeur est par défaut inférieure à celle de
+@code{blank-page-penalty} ; nous préférons qu'une page blanche
+s'insère après la fin de la partition plutôt qu'au milieu.
+
+@item blank-last-page-penalty
+@funindex blank-last-page-penalty
+
+Pénalité pour fin de partition intervenant sur une page impaire.  La
+valeur par défaut est de @code{0}.
+
+@item blank-page-penalty
+@funindex blank-page-penalty
+
+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 @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},
+@ref{Présentation en rouleau}.
+
+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 @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 @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 @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 @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 @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 @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 :
+
+@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'apparaître dans un bloc @code{\layout} :
+
+@itemize
+@item
+la fonction Scheme @code{layout-set-staff-size},
+
+@item
+dans des blocs @code{\context}, les  modifications apportées aux
+différents contextes, et
+
+@item
+les variables normalement attachées au bloc @code{\paper} qui
+affecteront 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 greffons de 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 :
+
+@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}
+(voir @ref{Variables d'indentation et de décalage})
+
+@item
+@code{system-count}
+(voir @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.basic-distance = #8
+  @}
+  \context @{
+    \Voice
+    \override TextScript.padding = #1
+    \override Glissando.thickness = #3
+  @}
+@}
+@end example
+
+Il est tout à fait possible que plusieurs blocs @code{\layout}
+cohabitent en tant qu'expressions de niveau supérieur.  Ceci se révèle
+particulièrement utile lorsque différents réglages sont stockés dans des
+fichiers séparés qui sont inclus au besoin.  Lorsqu'un bloc
+@code{\layout} est évalué, une copie de la configuration du
+@code{\layout} actuel est réalisée en interne, augmentée des
+aménagements apportés.  Bien qu'on puisse considérer que le contenu des
+différents blocs @code{\layout} se cumule, c'est la dernière adaptation
+qui aura préséance en cas de situation conflictuelle -- cas typique
+d'une même propriété modifiée dans différents blocs.
+
+Par exemple, placer le bloc suivant
+
+@example
+\layout @{
+  \context @{
+    \Voice
+    \override TextScript.color = #magenta
+    \override Glissando.thickness = #1.5
+  @}
+@}
+@end example
+
+après celui de l'exemple précédent aura pour effet de cumuler les
+adaptations de @code{'padding} et @code{'color} pour l'objet
+@code{TextScript}, mais la dernière adaptation apportée à la propriété
+@code{'thickness} de @code{Glissando} remplace, ou masque, celle
+précédemment établie.
+
+Les blocs @code{\layout} peuvent faire l'objet de variables, aux fins de
+les utiliser ultérieurement.  Ceci requiert toutefois une attention
+particulière dans la mesure où cette manière de procéder n'est pas
+équivalente à une définition complète et globale.
+
+Lorsque nous définissons la variable suivante,
+
+@example
+layoutVariable = \layout @{
+  \context @{
+    \Voice
+    \override NoteHead.font-size = #4
+  @}
+@}
+@end example
+
+qui contient une configuration de @code{\layout} avec
+l'adaptation @code{NoteHead #'font-size}, cette combinaison n'est pas
+enregistrée en tant que configuration courante.  Notez bien que la
+« configuration courante » est lue lorsque la variable est définie, non
+lorsqu'elle est utilisée ; par voie de conséquence, le contenu de la
+variable dépend de l'endroit où elle se trouve dans le code source.
+
+Notre variable peut alors être utilisée au sein d'un autre bloc
+@code{\layout}, comme par exemple :
+
+@example
+\layout @{
+  \layoutVariable
+  \context @{
+    \Voice
+    \override NoteHead.color = #red
+  @}
+@}
+@end example
+
+Un bloc @code{\layout} qui contient une variable comme ci-dessus, ne
+recopie pas la configuration actuelle ; il utilise en fait le contenu de
+@code{layoutVariable} en tant que configuration de base pour les
+adaptations ultérieures, en conséquence de quoi toute modification
+intervenant entre la définition et l'utilisation de la variable sera
+perdue.
+
+Si @code{layoutVariable} est définie, ou rapatriée par un
+@code{\indude}, juste avant d'être utilisée, son contenu devient la
+configuration actuelle augmentée des adaptations que la variable
+contient.  Considérant l'exemple d'utilisation de @code{layoutVariable}
+ci-dessus, le bloc @code{\layout} final contiendra donc :
+
+@example
+  TextScript #'padding = #1
+  TextScript #'color = #magenta
+  Glissando #'thickness = #1.5
+  NoteHead #'font-size = #4
+  NoteHead #'color = #red
+@end example
+
+ainsi que les adaptations de @code{indent} et @code{StaffGrouper}.
+
+Cependant, si la variable avait été définie bien avant le premier bloc
+@code{\layout}, la configuration actuelle ne contiendrait que
+
+@example
+  NoteHead #' font-size= #4 % (écrit dans la définition de la variable)
+  NoteHead #' color = #red % (ajouté après l'utilisation de la variable)
+@end example
+
+Une gestion attentive des variables de @code{\layout} se révèle être un
+outil précieux dans la mise en forme des sources et le retour à une
+configuration donnée.
+
+@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 points.  Il existe deux manières de la modifier :
+
+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 points par
+défaut ; 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 :
+
+@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 ; 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::
+* Présentation en rouleau::
+* 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 :
+
+@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 ; 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 ""}.
+
+@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 qu'en pareil cas, les sauts de ligne
+forcés doivent être saisis au sein d'une expression polyphonique :
+
+@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ù ils
+prendraient fin normalement plutôt que de les étirer sur toute la
+longueur de la ligne.  Ceci est particulièrement utile pour de petits
+fragments ou pour vérifier la densité induite par l'espacement naturel.
+
+@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
+l'on est à 4/4, seront coupées toutes les quatre mesures, pas
+ailleurs :
+
+@example
+<<
+  \repeat unfold 7 @{
+    s1 \noBreak s1 \noBreak
+    s1 \noBreak s1 \break
+  @}
+  @{ @var{et ici la musique@dots{}} @}
+>>
+@end example
+
+@predefined
+@funindex \break
+@code{\break},
+@funindex \noBreak
+@code{\noBreak}.
+@endpredefined
+
+@seealso
+Manuel de notation :
+@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é : @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 :
+@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} :
+
+@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 ; les sauts de page 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 ; autrement dit, il ne restera pas inactif dans le 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 1 1)}, soit une ronde, et s'ajuste de
+la manière suivante :
+
+@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 les voir se contredire.
+
+
+@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} :
+
+@example
+\paper @{
+  page-breaking = #ly:minimal-breaking
+@}
+@end example
+
+@seealso
+Morceaux choisis :
+@rlsrnamed{Spacing,Espacements}.
+
+
+@node Présentation en rouleau
+@subsection Présentation en rouleau
+@translationof One-line page breaking
+
+@funindex ly:one-line-breaking
+
+La fonction @code{ly:one-line-breaking} constitue un algorithme de
+calcul des sauts de pages particulier en ceci que chaque partition fait
+l'objet d'une page unique, d'une seule ligne.  Cette fonctionnalité
+s'affranchit de l'impression des titres et marges ; seule la partition
+est affichée.
+
+La largeur de page est ajustée de telle sorte que la pièce la plus
+longue tienne sur une seule ligne.  En particulier, les variables
+@code{paper-width}, @code{line-width} et @code{indent} du bloc
+@code{\paper} seront ignorées ; les @code{left-margin} et
+@code{right-margin} seront honorées.  La hauteur de page ne sera pas
+modifiée.
+
+@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 :
+
+@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 : 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 :
+
+@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 : c'est le
+cas pour la propriété @code{nonstaff-relatedstaff-spacing} qui spécifie
+l'espacement d'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 des é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 chacune
+d'elles :
+
+@multitable {Ligne de non-portée} {Point de référence}
+@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 :
+
+@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 \staffAffinityDown }
+  \context { \ChordNames  \alignToZero
+                          \staffAffinityDown
+                          \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 { s1\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} :
+
+@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}
+@c VO 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 ;
+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 des é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, à moins 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} : si vous affectez la valeur @code{#f} à
+une ligne de non-portée, cette ligne sera considérée comme étant une
+portée ; à 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 ait 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 dès lors 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 ait
+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}
+@c VO 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'une 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 :
+
+@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 compris 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{regroupements 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 : 
+
+@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
+regroupées, à l'aide des propriétés de l'objet graphique
+@code{StaffGrouper} :
+
+@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 :
+
+@itemize
+@item Propriétés du @code{VerticalAxisGroup} :
+@itemize
+@item @code{staff-affinity}
+@item @code{nonstaff-relatedstaff-spacing}
+@item @code{nonstaff-nonstaff-spacing}
+@item @code{nonstaff-unrelatedstaff-spacing}
+@end itemize
+@end itemize
+
+Ces propriétés d'objet graphique sont expliquées une à une au chapitre
+@ref{Propriétés d'espacement au sein d'un système}.
+
+L'exemple suivant utilise la propriété @code{nonstaff-nonstaff-spacing}
+pour gérer l'espacement entre des lignes consécutives de non-portée.
+Vous noterez que la valeur élevée attribuée à la clé
+@code{stretchability} permet aux paroles de s'étirer plus que de raison.
+
+@lilypond[verbatim,quote,staffsize=16]
+\layout {
+  \context {
+    \Lyrics
+    \override VerticalAxisGroup.nonstaff-nonstaff-spacing.stretchability = #1000
+  }
+}
+
+\new StaffGroup
+<<
+  \new Staff \with {
+    \override VerticalAxisGroup.staff-staff-spacing = #'((basic-distance . 30))
+  } { c'1 }
+  \new Lyrics \with {
+    \override VerticalAxisGroup.staff-affinity = #UP
+  } \lyricmode { up }
+  \new Lyrics \with {
+    \override VerticalAxisGroup.staff-affinity = #CENTER
+  } \lyricmode { center }
+  \new Lyrics \with {
+    \override VerticalAxisGroup.staff-affinity = #DOWN
+  } \lyricmode { down }
+  \new Staff { c'1 }
+>>
+@end lilypond
+
+@seealso
+Fichiers d'initialisation :
+@file{ly/engraver-init.ly},
+@file{scm/define-grobs.scm}.
+
+Morceaux choisis :
+@rlsrnamed{Spacing,Espacements}.
+
+@c @lsr{spacing,page-spacing.ly},
+@c @lsr{spacing,alignment-vertical-spacing.ly}.
+
+Référence des propriétés internes :
+@rinternals{Contexts},
+@rinternals{VerticalAxisGroup}.
+
+
+@node Positionnement explicite des portées et systèmes
+@subsection Positionnement explicite des portées et systèmes
+@translationof Explicit staff and system positioning
+
+Pour bien comprendre comment fonctionnent les réglages de
+@code{VerticalAxisGroup} et de @code{\paper} abordés dans les deux
+rubriques précédentes, rien ne vaut une collection d'exemples illustrant
+les différentes mises au point du décalage vertical appliqué aux portées
+et systèmes distribués sur une page.
+
+Une autre approche de l'espacement vertical est le recours à
+@code{NonMusicalPaperColumn #'line-break-system-details}.  Alors que
+@code{VerticalAxisGroup} et @code{\paper} gèrent un décalage vertical,
+@code{NonMusicalPaperColumn #'line-break-system-details} spécifiera le
+positionnement vertical absolu sur la page.
+
+@code{NonMusicalPaperColumn #'line-break-system-details} prend en charge
+une liste associative de trois mises au point :
+
+@itemize
+@item @code{X-offset}
+@item @code{Y-offset}
+@item @code{alignment-distances}
+@end itemize
+
+Les dérogations en matière d'objet graphique, y compris celles
+concernant les @code{NonMusicalPaperColumn} ci-dessus, peuvent se placer
+à trois différents endroits de votre fichier source :
+
+@itemize
+@item directement au beau milieu des notes
+@item au sein d'un bloc @code{\context}
+@item dans un bloc @code{\with}
+@end itemize
+
+Le réglage de @code{NonMusicalPaperColumn} s'effectue à l'aide d'une
+simple commande @code{\override} au sein d'un bloc @code{\context} ou
+@code{\with}.  Dans le cas ou il est stipulé au fil des notes, c'est la
+commande spécifique @code{\overrideProperty} qui doit intervenir.  Voici
+quelques exemples de réglages de @code{NonMusicalPaperColumn} à l'aide
+de la commande @code{\overrideProperty} :
+
+@example
+\overrideProperty NonMusicalPaperColumn.line-break-system-details #'((X-offset . 20))
+
+\overrideProperty NonMusicalPaperColumn.line-break-system-details #'((Y-offset . 40))
+
+\overrideProperty NonMusicalPaperColumn.line-break-system-details #'((X-offset . 20)
+                                 (Y-offset . 40))
+
+\overrideProperty NonMusicalPaperColumn.line-break-system-details #'((alignment-distances . (15)))
+
+\overrideProperty NonMusicalPaperColumn.line-break-system-details #'((X-offset . 20)
+                                 (Y-offset . 40)
+                                 (alignment-distances . (15)))
+@end example
+
+Nous allons maintenant voir ces différents réglages en action.
+Commençons par examiner un exemple dépourvu de toute mise au point.
+
+@c \book { } is required in these examples to ensure the spacing
+@c overrides can be seen between systems. -np
+
+@lilypond[verbatim,quote,staffsize=16]
+\header { tagline = ##f }
+\paper { left-margin = 0\mm }
+\book {
+  \score {
+    <<
+      \new Staff <<
+        \new Voice {
+          s1*5 \break
+          s1*5 \break
+          s1*5 \break
+        }
+        \new Voice { \repeat unfold 15 { c'4 c' c' c' } }
+      >>
+      \new Staff {
+        \repeat unfold 15 { d'4 d' d' d' }
+      }
+    >>
+  }
+}
+@end lilypond
+
+Cette partition isole les informations de saut de ligne ou de page dans
+une voix spécifique.  La mise en forme est ainsi séparée des événements
+musicaux ; ceci nous permettra d'y voir plus clair au fur et à
+mesure que nous avancerons.  Pour plus de précisions, relisez
+@ref{Recours à une voix supplémentaire pour gérer les sauts}.
+
+Les @code{\break} explicites répartissent la musique en lignes de cinq
+mesures chacune.  L'espacement vertical est celui que LilyPond attribue
+par défaut.  Nous pouvons, afin de fixer explicitement le point
+d'attache vertical de chacun des systèmes, définir un doublet
+@code{Y-offset} en tant qu'attribut du @code{line-break-system-details}
+de l'objet @code{NonMusicalPaperColumn} :
+
+@lilypond[verbatim,quote,staffsize=16]
+\header { tagline = ##f }
+\paper { left-margin = 0\mm }
+\book {
+  \score {
+    <<
+      \new Staff <<
+        \new Voice {
+          \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details #'((Y-offset . 0))
+          s1*5 \break
+          \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details #'((Y-offset . 40))
+          s1*5 \break
+          \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details #'((Y-offset . 80))
+          s1*5 \break
+        }
+        \new Voice { \repeat unfold 15 { c'4 c' c' c' } }
+      >>
+      \new Staff {
+        \repeat unfold 15 { d'4 d' d' d' }
+      }
+    >>
+  }
+}
+@end lilypond
+
+Vous aurez remarqué que nous n'avons déterminé qu'une seule valeur, même
+si la liste associative de @code{line-break-system-details} peut en
+comporter un certain nombre.  Vous aurez aussi noté que la propriété
+@code{Y-offset} détermine ici le point de départ de chacun des systèmes
+de la page.
+
+Maintenant que chaque système est explicitement positionné, nous pouvons
+jouer sur la distance séparant les portées de chacun des systèmes, grâce
+à la sous-propriété @code{alignment-distances} de
+@code{line-break-system-details}.
+
+@lilypond[verbatim,quote,staffsize=16]
+\header { tagline = ##f }
+\paper { left-margin = 0\mm }
+\book {
+  \score {
+    <<
+      \new Staff <<
+        \new Voice {
+          \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details #'((Y-offset . 20)
+                                           (alignment-distances . (15)))
+          s1*5 \break
+          \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details #'((Y-offset . 60)
+                                           (alignment-distances . (15)))
+          s1*5 \break
+          \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details #'((Y-offset . 100)
+                                           (alignment-distances . (15)))
+          s1*5 \break
+        }
+        \new Voice { \repeat unfold 15 { c'4 c' c' c' } }
+      >>
+      \new Staff {
+        \repeat unfold 15 { d'4 d' d' d' }
+      }
+    >>
+  }
+}
+@end lilypond
+
+Nous avons maintenant assigné deux valeurs différentes à l'attribut
+@code{line-break-system-details} de l'objet
+@code{NonMusicalPaperColumn}.  @code{line-break-system-details} pourrait
+prendre bien d'autres paramètres d'espacement, y compris un doublet
+@code{X-offset}, mais nous n'avons utilisé que @code{Y-offset} et
+@code{alignment-distances} pour contrôler le positionnement de chaque
+système et de chaque portée.  Vous noterez enfin que
+@code{alignment-distances} traite le positionnement des portées, non
+d'un regroupement de portées.
+
+@lilypond[verbatim,quote,staffsize=16]
+\header { tagline = ##f }
+\paper { left-margin = 0\mm }
+\book {
+  \score {
+    <<
+      \new Staff <<
+        \new Voice {
+          \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details #'((Y-offset . 0)
+                                           (alignment-distances . (30 10)))
+          s1*5 \break
+          \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details #'((Y-offset . 60)
+                                           (alignment-distances . (10 10)))
+          s1*5 \break
+          \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details #'((Y-offset . 100)
+                                           (alignment-distances . (10 30)))
+          s1*5 \break
+        }
+        \new Voice { \repeat unfold 15 { c'4 c' c' c' } }
+      >>
+      \new StaffGroup <<
+        \new Staff { \repeat unfold 15 { d'4 d' d' d' } }
+        \new Staff { \repeat unfold 15 { e'4 e' e' e' } }
+      >>
+    >>
+  }
+}
+@end lilypond
 
-@untranslated
+Quelques points à prendre en considération :
 
+@itemize
+@item
+Lorsque vous utilisez @code{alignment-distances}, les paroles et
+autres lignes de non-portée ne comptent pas pour une portée.
 
-@node Mise en forme de la musique
-@section Mise en forme de la musique
-@translationof Music layout @c external
+@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.
 
-@untranslated
+@item
+Dans la mesure où @code{NonMusicalPaperColumn #'line-break-system-details}
+permet de positionner systèmes et portées n'importe où sur une page,
+vous pourriez être en contradiction avec les dimensionnements de la
+feuille ou bien aboutir à des surimpressions.  Soyez donc raisonnable
+quant aux différentes valeurs que vous affectez à ces réglages.
 
+@end itemize
 
-@menu
-* Définition de la taille de portée::
-* Mise en forme de la partition::
-@end menu
+@seealso
+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 @c external
 
-@untranslated
+@node Résolution des collisions verticales
+@subsection Résolution des collisions verticales
+@translationof Vertical collision avoidance
+
+@funindex outside-staff-priority
+@funindex outside-staff-padding
+@funindex outside-staff-horizontal-padding
+
+Vous savez de manière intuitive qu'un certain nombre d'objets en
+matière de notation musicale appartiennent à la portée, et que
+d'autres se placent en dehors de la portée.  Entre autres objets
+externes, nous avons les marques repères, les textes et les
+nuances ; nous les appellerons @qq{objets extérieurs à la portée}.
+La règle adoptée par LilyPond pour positionner verticalement ces
+objets extérieurs consiste à les placer au plus près de la portée
+tout en prenant garde d'éviter qu'il y ait chevauchement.
+
+LilyPond utilise la propriété @code{outside-staff-priority} afin de
+déterminer si un objet est ou non un objet extérieur à la portée :
+lorsque la valeur de @code{outside-staff-priority} est numérique, il
+s'agit d'un objet extérieur à la portée.  De plus, la propriété
+@code{outside-staff-priority} indique à LilyPond l'ordre dans lequel ces
+objets doivent être disposés.
+
+Tout d'abord, LilyPond dispose tous les objets qui ne sont pas externes.
+Les objets extérieurs à la portée sont alors triés selon l'ordre
+croissant de leur @code{outside-staff-priority}.  Enfin, LilyPond prend
+chacun des ces objets et les positionne de telle sorte qu'il n'entrent
+pas en collision avec ceux qui on déjà été placés.  Autrement dit,
+lorsque deux objets devraient se placer au même endroit, celui dont la
+@code{outside-staff-priority} est la plus faible sera disposé au plus
+près de la portée.
+
+@lilypond[quote,ragged-right,relative=2,verbatim]
+c4_"Text"\pp
+r2.
+\once \override TextScript.outside-staff-priority = #1
+c4_"Text"\pp % this time the text will be closer to the staff
+r2.
+% by setting outside-staff-priority to a non-number,
+% we disable the automatic collision avoidance
+\once \override TextScript.outside-staff-priority = ##f
+\once \override DynamicLineSpanner.outside-staff-priority = ##f
+c4_"Text"\pp % now they will collide
+@end lilypond
 
+Le décalage vertical entre un objet extérieur à la portée et celui qui
+le précède se contrôle par la propriété @code{outside-staff-padding}.
 
-@node Mise en forme de la partition
-@subsection Mise en forme de la partition
-@translationof Score layout @c external
+@c KEEP LY
+@lilypond[quote,ragged-right,relative=2,verbatim,staffsize=18]
+\once \override TextScript.outside-staff-padding = #0
+a'^"Ce texte est placé au plus près de la note"
+\once \override TextScript.outside-staff-padding = #3
+c^"Ce texte est décalé par rapport au texte précédent"
+c^"Ce texte est accolé au texte précédent"
+@end lilypond
 
-@untranslated
+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 Sauts
-@section Sauts
-@translationof Breaks @c external
 
-@untranslated
+@node Espacement horizontal
+@section Espacement horizontal
+@translationof Horizontal spacing
 
+@cindex horizontal, espacement
+@cindex espacement horizontal
 
 @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::
+* 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 Sauts de ligne
-@subsection Sauts de ligne
-@translationof Line breaking @c external
 
-@untranslated
+@node Généralités sur l'espacement horizontal
+@subsection Généralités sur l'espacement horizontal
+@translationof Horizontal spacing overview
+
+Le moteur d'espacement traduit les différences de durée en distances
+étirables (@emph{springs} pour ressorts) de différentes longueurs.  Des
+durées importantes prennent ainsi plus de place que des durées moins
+longues.  Les durées les plus courtes se verront attribuer un espace
+fixe, contrôlé par la propriété @code{shortest-duration-space} de
+l'objet @rinternals{SpacingSpanner}.  Au plus la durée s'allonge, au
+plus elle prendra d'espace : le doublement d'une durée attribuera à
+la note un espace fixé d'après la propriété @code{spacing-increment}.
+
+L'exemple suivant comporte des blanches, des noires et un certain nombre
+de croches.  La croche est suivie d'un espace de la largeur d'une tête
+de note ; pour la noire , cet espace est de deux têtes ; il
+est de trois pour la blanche.
+
+@lilypond[quote,verbatim,relative=1]
+c2 c4. c8 c4. c8 c4. c8 c8
+c8 c4 c4 c4
+@end lilypond
 
+@code{spacing-increment} est normalement défini à 1,2 espace de
+portée -- ce qui correspond à peu près à la largeur d'une tête de note
+-- et @code{shortest-duration-space} à 2,0.  La note la plus courte
+s'étendra donc sur l'équivalent de 2,4 espaces de portée (2 fois le
+@code{spacing-increment}).  Le point de départ de cet espace se situe à
+l'extrémité gauche du symbole ; la note la plus courte est donc
+suivie en général d'un espace égal à la largeur d'une tête de note.
+
+Si l'on suit à la lettre ce qui précède, ajouter une simple triple
+croche à une partition qui comporte déjà des croches et des doubles
+augmentera considérablement son volume : la durée la plus
+courte n'est plus la double mais la triple croche, ce qui aura
+pour conséquence d'ajouter une largeur de tête à chacune des notes.
+Pour s'affranchir de cet effet quelque peu pervers, la durée la plus
+courte prise en considération au niveau de l'espacement n'est pas la
+note la plus brève de la partition, mais celle qui apparaît le plus
+souvent.
+
+La courte durée la plus fréquente est déterminée à partir de la note la
+plus courte de chaque mesure.  C'est elle qui servira de base pour
+l'espacement, à cette nuance près que la plus courte durée ne saurait
+être strictement supérieure à la croche.  Cette @qq{durée de référence}
+est d'ailleurs affichée lorsque vous lancez @code{lilypond} avec l'option
+@option{--verbose}.
+
+Ces durées peuvent être adaptées.  Vous pouvez définir la durée de base
+pour les espacements grâce à la propriété
+@code{common-shortest-duration} de l'objet @rinternals{SpacingSpanner}.
+La durée maximale de cet étalon, normalement la croche, est gérée par la
+propriété @code{base-shortest-duration}.
+
+@funindex common-shortest-duration
+@funindex base-shortest-duration
+@funindex stem-spacing-correction
+@funindex spacing
+
+Les notes plus courtes que la note témoin sont suivies d'un espace
+proportionnel à la durée témoin.  Si donc nous ajoutions quelques
+doubles croches à l'exemple précédent, elles seraient suivies d'une
+demie largeur de tête :
+
+@lilypond[quote,verbatim,relative=2]
+c2 c4. c8 c4. c16[ c] c4. c8 c8 c8 c4 c4 c4
+@end lilypond
 
-@node Sauts de page
-@subsection Sauts de page
-@translationof Page breaking @c external
+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
 
-@untranslated
+L'espacement spécifique à la notation proportionnelle fait l'objet d'une 
+@rusernamed{Notation proportionnelle,rubrique dédiée}.
 
+@seealso
+Morceaux choisis :
+@rlsrnamed{Spacing,Espacements}.
+
+Essai sur la gravure musicale automatisée :
+@ressay{Espacement}.
+
+Référence des propriétés internes :
+@rinternals{SpacingSpanner},
+@rinternals{NoteSpacing},
+@rinternals{StaffSpacing},
+@rinternals{NonMusicalPaperColumn}.
+
+@knownissues
+Il n'existe pas de mécanisme simple et efficace qui permette de
+forcer manuellement l'espacement.  La solution ci-dessous permet
+cependant @qq{d'aérer} artificiellement une partition ; il vous
+suffit d'ajuster la valeur du décalage @emph{(padding)} autant que de
+besoin.
+@example
+ \override Score.NonMusicalPaperColumn.padding = #10
+@end example
 
-@node Optimisation des sauts de page
-@subsection Optimisation des sauts de page
-@translationof Optimal page breaking @c external
+Il n'y a aucun moyen de diminuer l'espacement.
 
-@untranslated
 
+@node Changement d'espacement en cours de partition
+@subsection Changement d'espacement en cours de partition
+@translationof New spacing area
 
-@node Optimisation des tournes
-@subsection Optimisation des tournes
-@translationof Optimal page turning @c external
+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.
 
-@untranslated
+Dans l'exemple qui suit, le changement de métrique marque le début
+d'une nouvelle partie ; remarquez comme les doubles-croches sont
+alors plus espacées :
 
+@lilypond[relative,verbatim,quote]
+\time 2/4
+c4 c8 c
+c8 c c4 c16[ c c8] c4
+\newSpacingSection
+\time 4/16
+c16[ c c8]
+@end lilypond
 
-@node Minimisation des sauts de page
-@subsection Minimisation des sauts de page
-@translationof Minimal page breaking @c external
+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.
 
-@untranslated
+@seealso
+Morceaux choisis :
+@rlsrnamed{Spacing,Espacements}.
 
+Référence des propriétés internes :
+@rinternals{SpacingSpanner}.
 
-@node Sauts explicites
-@subsection Sauts explicites
-@translationof Explicit breaks @c external
 
-@untranslated
+@node Modification de l'espacement horizontal
+@subsection Modification de l'espacement horizontal
+@translationof Changing horizontal spacing
+
+Vous pouvez influencer l'espacement horizontal à l'aide de la propriété
+@code{base-shortest-duration}.  Comparons les deux partitions qui
+suivent, toutes deux montrant la même musique.  La première partition
+applique les réglages par défaut, alors que la seconde bénéficie d'un
+ajustement de la propriété @code{base-shortest-duration}.  Au plus la
+valeur de @code{ly:make-moment} est grande, au plus la musique sera
+resserrée.  En effet, @code{ly:make-moment} construit une durée :
+@code{1 4} est plus long que @code{1 16}.
+
+@lilypond[verbatim,line-width=12\cm]
+\score {
+  \relative c'' {
+    g4 e e2 | f4 d d2 | c4 d e f | g4 g g2 |
+    g4 e e2 | f4 d d2 | c4 e g g | c,1 |
+    d4 d d d | d4 e f2 | e4 e e e | e4 f g2 |
+    g4 e e2 | f4 d d2 | c4 e g g | c,1 |
+  }
+}
+@end lilypond
 
+@lilypond[verbatim,line-width=12\cm]
+\score {
+  \relative c'' {
+    g4 e e2 | f4 d d2 | c4 d e f | g4 g g2 |
+    g4 e e2 | f4 d d2 | c4 e g g | c,1 |
+    d4 d d d | d4 e f2 | e4 e e e | e4 f g2 |
+    g4 e e2 | f4 d d2 | c4 e g g | c,1 |
+  }
+  \layout {
+    \context {
+      \Score
+      \override SpacingSpanner.base-shortest-duration = #(ly:make-moment 1 16)
+    }
+  }
+}
+@end lilypond
 
-@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 @c external
+@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}.
 
-@untranslated
+@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 :
 
-@node Espacement vertical
-@section Espacement vertical
-@translationof Vertical spacing @c external
+@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
 
-@untranslated
+@seealso
+Morceaux choisis :
+@rlsrnamed{Spacing,Espacements}.
 
 
-@menu
-* Espacement vertical au sein d'un système::
-* Espacement vertical entre les systèmes::
-* Positionnement explicite des portées et systèmes::
-* Optimisation du remplissage avec un deuxième passage::
-* Résolution des collisions verticales::
-@end menu
+@node Longueur de ligne
+@subsection Longueur de ligne
+@translationof Line length
+
+@cindex saut de page
+@cindex pages, saut
+@cindex ligne, longueur
+
+@funindex indent
+@funindex line-width
+@funindex ragged-right
+@funindex ragged-last
+
+@c Although line-width can be set in \layout, it should be set in paper
+@c block, to get page layout right.
+@c Setting indent in \paper block makes not much sense, but it works.
+
+@c Bit verbose and vague, use examples?
+Deux réglages de bases ont une influence considérable sur
+l'espacement : @code{line-width} et @code{indent}.  Tous deux se
+placent dans le bloc @code{\layout}.  Ils contrôleront la longueur des
+lignes et l'indentation de la première.
+
+L'activation du commutateur @code{ragged-right} au sein du bloc
+@code{\layout} permet de terminer les systèmes naturellement plutôt que
+de les voir s'étirer sur toute la largeur de la page.  Cette option est
+particulièrement utile lorsque vous traitez de courts fragments, ou bien
+pour vérifier ce que donnerait l'espacement naturel.  Bien qu'il soit
+désactivé par défaut, il sera activé si la partition ne comporte qu'un
+seul système.
+
+@cindex page, mise en forme
+@cindex vertical, espacement
+
+Le fonctionnement de l'option @code{ragged-last} est en tout point
+identique à celui de @code{ragged-right}, à ceci près qu'il ne concerne
+que la dernière ligne de la partition.  Il n'y a pas de restriction
+quant à cette ligne.  Il en va de même que pour le formatage d'un
+paragraphe de texte, la dernière ligne s'arrête au dernier caractère.
+
+@c Note that for text there are several options for the last line.
+@c While Knuth TeX uses natural length, lead typesetters use the same
+@c stretch as the previous line.  eTeX uses \lastlinefit to
+@c interpolate between both these solutions.
 
-@node Espacement vertical au sein d'un système
-@subsection Espacement vertical au sein d'un système
-@translationof Vertical spacing inside a system @c external
+@example
+\layout @{
+  indent = #0
+  line-width = #150
+  ragged-last = ##t
+@}
+@end example
 
-@untranslated
+@seealso
+Morceaux choisis :
+@rlsrnamed{Spacing,Espacements}.
 
 
-@node Espacement vertical entre les systèmes
-@subsection Espacement vertical entre les systèmes
-@translationof Vertical spacing between systems @c external
+@node Notation proportionnelle
+@subsection Notation proportionnelle
+@translationof Proportional notation
 
-@untranslated
+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.
 
-@node Positionnement explicite des portées et systèmes
-@subsection Positionnement explicite des portées et systèmes
-@translationof Explicit staff and system positioning @c external
+@itemize
+@item @code{proportionalNotationDuration}
 
-@untranslated
+@item @code{uniform-stretching}
 
+@item @code{strict-note-spacing}
 
-@node Optimisation du remplissage avec un deuxième passage
-@subsection Optimisation du remplissage avec un deuxième passage
-@translationof Two-pass vertical spacing @c external
+@item @code{\remove "Separating_line_group_engraver"}
 
-@untranslated
+@item @code{\override PaperColumn.used = ##t}
 
+@end itemize
 
-@node Résolution des collisions verticales
-@subsection Résolution des collisions verticales
-@translationof Vertical collision avoidance @c external
+Nous allons examiner, dans les différents exemples qui suivent, les
+effets de ces réglages et comment ils interagissent.
 
-@untranslated
+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
 
-@node Espacement horizontal
-@section Espacement horizontal
-@translationof Horizontal spacing @c external
+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.
 
-@untranslated
+En matière de gravure traditionnelle, cet espacement correspond tout à
+fait à nos attentes, puisque nous pouvons rogner l'espace sur la
+blanche et ainsi gagner en largeur sur toute la mesure qui fait une
+ronde.
 
+Par contre, si nous avons besoin d'insérer une indication temporelle ou
+un autre graphisme en surplomb ou en dessous de notre partition, nous
+aurons besoin de la notation proportionnelle.  Celle-ci s'active en
+définissant la propriété @code{proportionalNotationDuration}.
 
-@menu
-* Généralités sur l'espacement horizontal::
-* Changement d'espacement au cours de la partition::
-* Modification de l'espacement horizontal::
-* Longueur de ligne::
-* Notation proportionnelle::
-@end menu
+@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
 
-@node Généralités sur l'espacement horizontal
-@subsection Généralités sur l'espacement horizontal
-@translationof Horizontal spacing overview @c external
+La blanche du début et les notes plus rapides de la deuxième moitié de
+la mesure occupent maintenant exactement le même espace horizontal.
+Nous pourrions donc y insérer, au-dessus ou au-dessous, une indication
+temporelle ou autre graphisme.
+
+@code{proportionalNotationDuration} est une propriété attachée au
+contexte @code{Score}.  Rappelez-vous que vous pouvez régler les
+propriétés d'un contexte à trois différents endroits de votre
+fichier : dans un bloc @code{\with}, dans un bloc @code{\context}
+ou au beau milieu de la musique à l'aide de la commande @code{\set}.
+Vous pouvez donc définir @code{proportionalNotationDuration} selon l'une
+de ces trois façons, à l'instar de n'importe quelle définition de
+contexte.
+
+La propriété @code{proportionalNotationDuration} prend en unique
+argument la durée de référence qui servira de base pour espacer toute la
+musique.  La fonction Scheme @code{make-moment} intégrée à LilyPond
+prend deux arguments : un numérateur et un dénominateur qui
+représentent une fraction de ronde.  L'appel de
+@w{@code{(ly:make-moment 1 20)}} produit donc une durée de référence
+égale à un vingtième de ronde.  Vous pourriez tout aussi bien  utiliser
+@code{(ly:make-moment 1 16)}, @code{(ly:make-moment 1 8)} ou
+@code{(ly:make-moment 3 97)}.
+
+Se pose alors le problème de fournir la juste durée de référence à
+@code{proportionalNotationDuration}.  Il faut en l'occurrence procéder par
+tâtonnement, en commençant par une valeur proche de la note la plus
+rapide (la durée la plus courte) du morceau.  Au plus la durée de
+référence est petite, au plus la musique sera étalée ; à l'inverse,
+une durée de référence élevée produira une musique resserrée.
+
+@lilypond[quote,verbatim,ragged-right]
+\score {
+  <<
+    \new RhythmicStaff {
+      c'2
+      c'16 c'16 c'16 c'16
+      \times 4/5 {
+        c'16 c'16 c'16 c'16 c'16
+      }
+    }
+  >>
+  \layout {
+    \context {
+      \Score
+      proportionalNotationDuration = #(ly:make-moment 1 8)
+    }
+  }
+}
+
+\score {
+  <<
+    \new RhythmicStaff {
+      c'2
+      c'16 c'16 c'16 c'16
+      \times 4/5 {
+        c'16 c'16 c'16 c'16 c'16
+      }
+    }
+  >>
+  \layout {
+    \context {
+      \Score
+      proportionalNotationDuration = #(ly:make-moment 1 16)
+    }
+  }
+}
 
-@untranslated
+\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.
 
-@node Changement d'espacement au cours de la partition
-@subsection Changement d'espacement au cours de la partition
-@translationof New spacing area @c external
+Examinons à présent le moyen d'optimiser l'espacement de nolets en
+tuilage.
 
-@untranslated
+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
 
-@node Modification de l'espacement horizontal
-@subsection Modification de l'espacement horizontal
-@translationof Changing horizontal spacing @c external
+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.
 
-@untranslated
+@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}.
 
-@node Longueur de ligne
-@subsection Longueur de ligne
-@translationof Line length @c external
+@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
 
-@untranslated
+L'espacement sur les deux portées est maintenant correct, les relations
+rythmiques sont clairement perceptibles, et nous pourrions y insérer
+une indication temporelle ou autre graphisme selon notre envie.
+
+Notez bien que la prise en charge de la notation proportionnelle par
+LilyPond demande que, dans chaque partition, soit activée la propriété
+@code{uniform-stretching} du @code{SpacingSpanner}.  Dans le cas
+contraire, utiliser @code{proportionalNotationDuration} aura pour
+conséquence, entre autres, un espacement erroné lorsque vous y aurez
+inséré des silences invisibles @emph{skip}.
+
+Le @code{SpacingSpanner} est en fait un objet graphique abstrait attaché
+au contexte @code{Score}.  Tout comme pour la propriété
+@code{proportionalNotationDuration}, les réglages du
+@code{SpacingSpanner} peuvent se faire à trois différents endroits de
+votre fichier : dans un bloc @code{\with}, dans un bloc
+@code{\context} ou au beau milieu de la musique à l'aide de la
+commande @code{\set}.
+
+Gardez bien à l'esprit qu'il n'y a qu'un seul @code{SpacingSpanner} par
+@code{Score}.  Il s'ensuit que @code{uniform-stretching} est soit
+activé, soit désactivé, et dans tous les cas pour l'intégralité de la
+partition.  Vous pourriez toutefois avoir besoin de modifier ce
+comportement en cours de partition, et recourir alors à l'instruction
+@code{\newSpacingSection} -- pour de plus amples détails, voir la
+rubrique @ref{Changement d'espacement en cours de partition}.
+
+Intéressons-nous maintenant au @code{Separating_line_group_engraver},
+qui est désactivé pour la plupart des partitions en notation
+proportionnelle.  Voici ce qui apparaît dans une partition
+traditionnelle : il y a toujours un @qq{espace préservé} juste
+avant la première note de chaque portée.
+
+@lilypond[quote,verbatim,ragged-right]
+\paper {
+  indent = #0
+}
 
+\new Staff {
+  c'1
+  \break
+  c'1
+}
+@end lilypond
 
-@node Notation proportionnelle
-@subsection Notation proportionnelle
-@translationof Proportional notation
+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.
 
-Les notes peuvent s'espacer proportionnellement en assignant une durée
-à @code{proportionalNotationDuration}
+@lilypond[quote,verbatim,ragged-right]
+\paper {
+  indent = #0
+}
 
-@lilypond[quote,ragged-right,verbatim,relative=2,fragment]
-<<
-  \set Score.proportionalNotationDuration = #(ly:make-moment 1 16)
-  \new Staff { c8[ c c c c c]  c4 c2 r2 }
-  \new Staff { c2  \times 2/3 { c8 c c } c4 c1 }
->>
+\new Staff \with {
+  \remove "Separating_line_group_engraver"
+} {
+  c'1
+  \break
+  c'1
+}
 @end lilypond
 
-Manipuler cette propriété affectera l'espacement idéal uniquement pour
-des notes consécutives.  Pour obtenir une véritable notation
-proportionnelle, vous devrez tenir compte des réglages suivants :
-
-@itemize @bullet
+Les éléments non musicaux tels que métrique, armure et clef, posent
+problème lorsqu'on travaille en notation proportionnelle.  Bien
+qu'aucune notion de durée ne leur soit attachée, ces éléments
+@qq{consomment} de l'espace.  Différentes approches permettent
+cependant de gérer ce problème.
+
+Éviter les problèmes d'espacement avec l'armure est chose aisée :
+il suffit qu'il n'y en ait pas ! C'est bien souvent le cas en
+musique contemporaine, où l'on trouve le plus d'ouvrages en notation
+proportionnelle.  Il en va de même pour la métrique, et tout
+particulièrement lorsque la partition comporte un quadrillage temporel
+ou autres graphismes.  L'absence de métrique reste cependant
+exceptionnelle et la plupart des partitions en notation proportionnelle
+laissent apparaître quelques métriques.  Il est par contre pratiquement
+impossible de se passer de clef et d'altération.
+
+L'une des options permettant de s'affranchir de l'espacement dû aux
+éléments non musicaux consiste en l'activation de la propriété
+@code{strict-note-spacing} attachée au @code{SpacingSpanner}.  Observons
+les deux portées suivantes :
+
+@lilypond[quote,verbatim,ragged-right]
+\new Staff {
+  \set Score.proportionalNotationDuration = #(ly:make-moment 1 16)
+  c''8
+  c''8
+  c''8
+  \clef alto
+  d'8
+  d'2
+}
 
-@item La véritable notation proportionnelle exige que des symboles
-puissent en écraser d'autres.  Pour y parvenir, il faut retirer le
-@rinternals{Separating_line_group_engraver} du contexte
-@rinternals{Staff}. 
+\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
 
-@item L'influence en matière d'espacement induite par le formatage
-(clés, barres de mesure, etc) s'annule en assignant
-@emph{vrai}@tie{}(#t) à la propriété @code{strict-note-spacing} de
-l'objet @rinternals{SpacingSpanner}.
+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.
 
-@item Les affinages optiques se règlent en assignant @emph{vrai} à la
-propriété @code{uniform-stretching} du @rinternals{SpacingSpanner}. 
+En plus de ceux que nous venons de voir, vous trouverez d'autres
+réglages en usage dans la notation proportionnelle comme, entre autres,
 
+@itemize
+@item @code{\override SpacingSpanner.strict-grace-spacing = ##t}
+@item @code{tupletFullLength = ##t}
+@item @code{\override Beam.breakable = ##t}
+@item @code{\override Glissando.breakable = ##t}
+@item @code{\override TextSpanner.breakable = ##t}
+@item @code{\remove "Forbid_line_break_engraver"} (dans un contexte de voix)
 @end itemize
 
+Ces différents réglages permettent un espacement strict des notes
+d'ornement, d'étendre les indications de nolet afin d'indiquer de façon
+évidente leurs bornes et d'autoriser le tronçonnement des extenseurs à
+l'occasion d'un saut de ligne ou de page.  Nous vous renvoyons aux
+différentes rubriques associées du manuel pour chacun de ces réglages.
 
 @seealso
-Exemples : @rlsr{Spacing}.
+Manuel de notation :
+@ref{Changement d'espacement en cours de partition}.
 
-Le fichier @file{input/proportional.ly} illustre la notation
-proportionnelle stricte.
+Morceaux choisis :
+@rlsrnamed{Spacing,Espacements}.
 
 
 @node Réduction du nombre de pages de la partition
 @section Réduction du nombre de pages de la partition
 @translationof Fitting music onto fewer pages
 
+Vous pourriez un jour être confronté au problème suivant : l'une
+des pages de votre partition ne comporte que deux portées alors que --
+ce qui est d'autant plus frustrant -- l'espace libre sur les autres
+pages aurait permis une distribution différente.
+
+L'instruction @code{annotate-spacing} se révèle être un outil
+indispensable pour l'analyse des problèmes de mise en forme.  Cette
+commande met en surimpression la valeur des différentes variables
+d'espacement et de mise en forme, comme nous allons le voir dans la
+rubrique @ref{Mise en évidence de l'espacement}.
+
 @menu
 * Mise en évidence de l'espacement::
 * Modification de l'espacement::
 @end menu
 
+
 @node Mise en évidence de l'espacement
 @subsection Mise en évidence de l'espacement
-@translationof Displaying spacing @c external
+@translationof Displaying spacing
+
+@funindex annotate-spacing
+@cindex espacement, affichage des valeurs
+
+Le meilleur moyen d'appréhender les différentes variables de
+dimensionnement vertical sur lesquelles vous pouvez jouer au niveau de
+la mise en page consiste à activer, au sein du bloc @code{\paper}, la
+fonction @code{annotate-spacing} :
+
+@c need to have \book{} otherwise we get the separate systems. -hwn
+@lilypond[verbatim,quote]
+#(set-default-paper-size "a6" 'landscape)
+\book {
+  \score { { c4 } }
+  \paper { annotate-spacing = ##t }
+}
+@end lilypond
 
-@untranslated
+@noindent
+Toutes les dimensions sont exprimées en espace de portée
+@emph{(staff-space)} quelle que soit l'unité mentionnée dans les blocs
+@code{\paper} ou @code{\layout}.  Dans cet exemple, la hauteur de la
+feuille (@code{paper-height}) est de 59,75 espaces de portée
+(@code{staff-spaces}) et la taille de portée (@code{staff-size}) de
+20 points -- sa valeur par défaut.  Notez que :
+
+@multitable {1 staff-space} {staff-size)/4 * (25,4/72,27) mm}
+
+@item 1 point
+@tab = (25,4/72,27) mm
+
+@item 1 staff-space
+@tab = (@code{staff-size})/4 pts
+@item
+@tab = (@code{staff-size})/4 * (25,4/72,27) mm
+
+@end multitable
+
+@noindent
+Dans le cas qui nous occupe, un @code{staff-space} égale environ
+1,757 millimètres.  Les 59,75 @code{staff-spaces} de
+@code{paper-height} correspondent donc à 105 millimètres, soit la
+hauteur d'une feuille au format A6 à l'italienne.  Les paires
+@code{(@var{a},@var{b})} sont des intervalles, @var{a} en étant
+l'extrémité inférieure et @var{b} l'extrémité supérieure.
+
+@seealso
+Manuel de notation :
+@ref{Définition de la taille de portée}.
+
+Morceaux choisis :
+@rlsrnamed{Spacing,Espacements}.
 
 
 @node Modification de l'espacement
 @subsection Modification de l'espacement
 @translationof Changing spacing
 
-Parfois, une partition peut se terminer avec seulement 
-un ou deux systèmes sur la dernière page. Ceci peut être ennuyeux
-surtout si vous constatez, en regardant les pages précédentes, qu'il
-reste encore beaucoup de place sur celles-ci.
-
-Si vous vous intéressez aux problèmes de mise en page,
-@code{annotate-spacing} peut alors être un outil d'une valeur
-inestimable.  Cette commande imprime les valeurs 
-de nombreuses commandes d'espacement concernant la mise en page.  
-Consultez @ref{Mise en évidence de l'espacement} pour de plus amples informations.  À l'aide 
-des informations données par @code{annotate-spacing}, on peut 
-voir quelles marges il est souhaitable de modifier afin de résoudre le
-problème.
+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 plus d'agir sur les marges, il existe d'autres possibilités
-qui permettent de gagner de la place.
+En dehors des marges, vous disposez de quelques moyens supplémentaires
+pour gagner de l'espace :
 
 @itemize
 @item
-Demander à LilyPond de placer les systèmes aussi 
-près que possible les uns des autres (pour en disposer autant
-que possible sur une page), tout en répartissant les systèmes afin
-de ne pas laisser de blanc en bas de la dernière page.
+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 @{
-  between-system-padding = #0.1
-  between-system-space = #0.1
+  system-system-spacing = #'((basic-distance . 0.1) (padding . 0))
   ragged-last-bottom = ##f
   ragged-bottom = ##f
 @}
 @end example
 
 @item
-Obliger LilyPond à mettre un certain nombre de systèmes
-par page.  Par exemple, si LilyPond veut placer onze systèmes dans une page,
-vous pouvez l'obliger à n'en mettre que dix.
+Forcer le nombre de systèmes par page.  Ceci peut se révéler judicieux à
+deux titres.  D'une part, le fait de définir un nombre de systèmes --
+même s'il est égal à la valeur par défaut -- peut aboutir à plus de
+systèmes par page dans la mesure où l'une des étapes d'estimation des
+hauteurs est tout simplement sautée.  D'autre part, réduire le nombre de
+systèmes par page permet d'en disposer plus sur les suivantes.  Par
+exemple, avec un nombre par défaut de 11 systèmes par pages,
+l'instruction suivante le force à 10.
 
 @example
 \paper @{
@@ -346,44 +3671,81 @@ vous pouvez l'obliger à n'en mettre que dix.
 @end example
 
 @item
-Supprimer (ou réduire) les objets qui augmentent la hauteur du
-système.  C'est le cas en particulier de certaines reprises (avec des 
-alternatives) qui placent des crochets au dessus des portées. Si ces crochets 
-de reprise se poursuivent sur deux systèmes, ils prendront plus de
-place que s'ils sont regroupés sur un même système.
+Forcer le nombre de pages.  L'instruction suivante forcera la musique à
+se répartir sur deux pages.
 
-Un autre exemple : déplacer les nuances qui @qq{débordent} d'un système.
+@example
+\paper @{
+  page-count = #2
+@}
+@end example
 
-@lilypond[verbatim,quote,fragment]
-\relative c' {
-  e4 c g\f c
-  \override DynamicLineSpanner #'padding = #-1.8
-  \override DynamicText #'extra-offset = #'( -2.1 . 0)
-  e4 c g\f c
-}
+@item
+Éviter ou réduire les objets qui augmentent la hauteur des systèmes.
+Par exemple, un crochet de reprise ou d'alternative consomme de
+l'espace.  Le fait de les reporter sur plusieurs systèmes regroupés
+diminue d'autant l'espace disponible que si seul le premier ne
+comportait l'indication.  Autre exemple, les indications de nuance qui
+se @qq{détachent} d'un système peuvent être rapprochés de la portée :
+
+@lilypond[verbatim,quote,relative=1]
+e4 c g\f c
+e4 c g-\tweak X-offset #-2.7 -\tweak Y-offset #2.5 \f c
 @end lilypond
 
 @item
-Modifier l'espacement vertical avec @code{SpacingSpanner}.  Reportez-vous à
-@ref{Modification de l'espacement horizontal} pour plus de détails.
+Modifier l'espacement horizontal à l'aide du @code{SpacingSpanner},
+comme indiqué à la rubrique
+@ref{Modification de l'espacement horizontal}.  Voici ce que donne
+l'espacement par défaut :
 
 @lilypond[verbatim,quote]
 \score {
   \relative c'' {
-    g4 e e2 | f4 d d2 | c4 d e f | g4 g g2 |
-    g4 e e2 | 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 |
+    g4 e e2 |
+    f4 d d2 |
+    c4 d e f |
+    g4 g g2 |
+    g4 e e2 |
+  }
+}
+@end lilypond
+
+@noindent
+Par contre, le fait de modifier la valeur de la propriété
+@code{common-shortest-duration} en passant de @code{1/4} à @code{1/2}
+-- bien que la noire soit la durée la plus courante, nous prenons une
+valeur plus longue -- donnera un effet @qq{resserré} à la musique :
+
+@lilypond[verbatim,quote]
+\score {
+  \relative c'' {
+    g4 e e2 |
+    f4 d d2 |
+    c4 d e f |
+    g4 g g2 |
+    g4 e e2 |
   }
   \layout {
     \context {
       \Score
-      \override SpacingSpanner
-                #'base-shortest-duration = #(ly:make-moment 1 4)
+      \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}.