+@menu
+* Indicateurs de position d'une articulation::
+* La propriété direction::
+@end menu
+
+
+@node Indicateurs de position d'une articulation
+@unnumberedsubsubsec Indicateurs de position d'une articulation
+@translationof Articulation direction indicators
+
+Certains positionnements sont opérés par défaut -- toujours au-dessus ou
+toujours en dessous (nuances ou points d'orgue) -- alors que d'autres
+alterneront selon l'orientation des hampes (liaisons ou accents).
+
+@c TODO Add table showing these
+
+Le positionnement par défaut peut être outrepassé à l'aide d'un
+@emph{indicateur de positionnement}, qui vient s'insérer juste avant
+l'articulation. LilyPond met à votre disposition trois indicateurs de
+positionnement : @code{^} (pour @qq{au-dessus}), @code{_} (pour
+@qq{au-dessous}), et @code{-} (pour @qq{appliquer le positionnement par
+défaut}). L'indicateur de positionnement n'est pas obligatoire ;
+LilyPond considère alors qu'il y a un @code{-}. Un indicateur de
+positionnement est cependant @strong{obligatoire} dans les cas
+suivants :
+
+@itemize
+@item une commande @code{\tweak},
+@item une commande @code{\markup},
+@item une commande @code{\tag},
+@item les indications de corde, par exemple @code{-"corde"},
+@item les indications de doigté, par exemple @w{@code{-1}},
+@item les raccourcis d'articulation, par exemple @w{@code{-.}},
+@w{@code{->}} ou @w{@code{--}}.
+@end itemize
+
+Les indicateurs de positionnement n'affectent que la note qui suit :
+
+@lilypond[verbatim,quote,relative=2]
+c2( c)
+c2_( c)
+c2( c)
+c2^( c)
+@end lilypond
+
+
+@node La propriété direction
+@unnumberedsubsubsec La propriété @code{direction}
+@translationof The direction property
+
+Le positionnement ou l'orientation de nombreux objets de rendu sont
+gérés par la propriété @code{direction}.
+
+La propriété @code{direction} peut prendre la valeur @code{1}, qui
+signifie @qq{ascendant} ou @qq{au-dessus}, ou @w{@code{-1}}, qui
+signifie @qq{descendant} ou @qq{au-dessous}. Les symboliques @code{UP}
+et @code{DOWN} peuvent remplacer respectivement @code{1} et
+@w{@code{-1}}. Les valeurs @code{0} ou @code{CENTER} permettent de
+réaffecter à la propriété @code{direction} son comportement par défaut.
+Certaines commandes prédéfinies permettent par ailleurs de spécifier un
+comportement en matière d'orientation ou positionnement ; elles
+sont de la forme
+
+@example
+@code{\xxxUp}, @code{\xxxDown} et @code{\xxxNeutral}
+@end example
+
+@noindent
+auquel cas @code{\xxxNeutral} signifie @qq{retour au comportement par
+défaut} -- voir @rlearning{Objets inclus dans la portée}.
+
+Dans quelques cas particuliers, comme l'indication d'un @emph{arpeggio},
+la valeur affectée à la propriété @code{direction} déterminera si
+l'objet doit se placer à gauche ou à droite de son parent. Un
+@w{@code{-1}} ou @code{LEFT} signifiera alors @qq{sur la gauche}, et un
+@code{1} ou @code{RIGHT} @qq{sur la droite}. Comme de bien entendu, un
+@code{0} ou @code{CENTER} signifiera @qq{appliquer le positionnement par
+défaut}.
+
+@ignore
+These all have side-axis set to #X
+AmbitusAccidental - direction has no effect
+Arpeggio - works
+StanzaNumber - not tried
+TrillPitchAccidental - not tried
+TrillPitchGroup - not tried
+@end ignore
+
+Notez que ces commandes resteront effectives jusqu'à ce qu'elles soient
+annulées.
+
+@lilypond[verbatim,quote,relative=2]
+c2( c)
+\slurDown
+c2( c)
+c2( c)
+\slurNeutral
+c2( c)
+@end lilypond
+
+En matière de musique polyphonique, il est souvent plus judicieux
+d'utiliser des contextes @code{Voice} explicites que de modifier
+l'orientation des objets. Pour de plus amples informations, voir
+@ref{Plusieurs voix}.
+
+@seealso
+Manuel d'initiation :
+@rlearning{Objets inclus dans la portée}.
+
+Manuel de notation :
+@ref{Plusieurs voix}.
+
+
+@node Distances et unités de mesure
+@subsection Distances et unités de mesure
+@translationof Distances and measurements
+
+@cindex distance absolue
+@cindex distance relative
+@cindex distance extensible
+
+@funindex \mm
+@funindex \cm
+@funindex \in
+@funindex \pt
+
+LilyPond considère deux types de distances : les distances absolues
+et les distances relatives ou extensibles.
+
+Les distances absolues permettent de spécifier les marges, indentations
+et autres détails de mise en page ; elles s'expriment par défaut en
+millimètres. Vous pouvez utiliser d'autres systèmes de mesure, dès lors
+que la quantité est suivie de la mesure : @code{\mm}, @code{\cm},
+@code{\in} (pouces) ou @code{\pt} (points, 1/72,27 pouce).
+Les mesures de mise en page peuvent aussi s'exprimer en unité extensible
+de portée @code{\staff-space} (voir ci-après). Pour plus d'information
+concernant la mise en page, voir la rubrique
+@ref{Mise en forme de la page}.
+
+Les distances relatives ou extensibles s'expriment toujours en
+@qq{espace de portée} ou, plus rarement, en @qq{demi espace de portée}.
+L'espace de portée correspond à la distance qui sépare deux lignes
+adjacentes d'une portée. Sa valeur par défaut est déterminée
+globalement par la taille de portée. Elle peut aussi s'ajuster
+ponctuellement en jouant sur la propriété @code{staff-space} de l'objet
+@code{StaffSymbol}. Les distances relatives s'ajustent automatiquement
+dès qu'une modification de la taille globale de portée ou bien de la
+propriété @code{staff-space} du @code{StaffSymbol} intervient.
+Cependant, les tailles de fonte ne s'ajusteront automatiquement que si
+la modification touche la taille globale des portées. La taille globale
+de portée permet ainsi de gérer l'aspect général de la partition --
+voir @ref{Définition de la taille de portée}.
+
+@funindex magstep
+
+Lorsque seulement une portion de partition doit apparaître dans une
+taille, comme par exemple une portée d'ossia ou une note de bas de page,
+influer sur la taille globale de portée affecterait l'intégralité de la
+partition. Il convient donc dans ce cas de modifier à la fois la
+propriété @code{staff-space} du @code{StaffSymbol} et la taille des
+fontes. La fonction Scheme @code{magstep} est tout spécialement chargée
+d'adapter une modification du @code{staff-space} aux fontes. Pour de
+plus amples informations, reportez-vous à la rubrique
+@rlearning{Longueur et épaisseur des objets}.
+
+@seealso
+Manuel d'initiation :
+@rlearning{Longueur et épaisseur des objets}.
+
+Manuel de notation :
+@ref{Définition de la taille de portée},
+@ref{Mise en forme de la page}.
+
+
+@node Propriétés des symboles de la portée
+@subsection Propriétés des symboles de la portée
+@translationof Staff symbol properties
+
+@cindex ajustement des symboles de portée
+@cindex dessin des symboles de portée
+@cindex symboles de portée, dessin
+
+@c TODO Extend or remove this section. See also NR 1.6.2 Staff symbol
+@c Need to think of uses for these properties. Eg 'line-positions
+@c is used in a snippet to thicken centre line.
+@c If retained, add @ref to here in 1.6.2 -td
+
+L'emplacement vertical et le nombre de lignes d'une portée se
+définissent conjointement. Comme l'illustre l'exemple suivant, le
+positionnement des notes n'est en rien influencé par le positionnement
+des lignes de la portée.
+
+@warning{La propriété @code{'line-positions} écrase la propriété
+@code{'line-count}. Le nombre de lignes d'une portée est implicitement
+défini par le nombre d'éléments dans la liste des valeurs de
+@code{'line-positions}.}
+
+@lilypond[verbatim,quote,relative=1]
+\new Staff \with {
+ \override StaffSymbol.line-positions = #'(7 3 0 -4 -6 -7)
+}
+{ a4 e' f b | d1 }
+@end lilypond
+
+La largeur d'une portée, exprimée en espace de portée, peut être figée.
+L'espacement des objets inclus dans cette portée ne sera en rien affecté
+par ce réglage.
+
+@lilypond[verbatim,quote,relative=1]
+\new Staff \with {
+ \override StaffSymbol.width = #23
+}
+{ a4 e' f b | d1 }
+@end lilypond
+
+
+@node Extenseurs et prolongateurs
+@subsection Extenseurs et prolongateurs
+@translationof Spanners
+
+De nombreux objets de notation musicale s'étendent sur plusieurs notes,
+voire même sur plusieurs mesures. Il en va ainsi des liaisons,
+ligatures, crochets de nolet, crochets de reprise, crescendos, trilles
+ou glissandos. Ces objets, que l'on englobe sous l'appellation
+@qq{d'extenseur}, sont pourvus de propriétés spécifiques destinées à
+contrôler leur apparence et leur comportement. Un certain nombre de ces
+propriétés sont communes à tous les extenseurs, d'autres n'affectent que
+certains d'entre eux.
+
+Tout extenseur dispose de la @code{spanner-interface}. Quelques uns,
+tout particulièrement ceux chargés de dessiner une ligne droite entre
+deux objets, disposent aussi de la @code{line-spanner-interface}.
+
++@menu
+* Utilisation de spanner-interface::
+* Utilisation de line-spanner-interface::
+@end menu
+
+
+@node Utilisation de spanner-interface
+@unnumberedsubsubsec Utilisation de @code{spanner-interface}
+@translationof Using the spanner-interface
+
+Cette interface fournit deux propriétés qui s'appliquent à certains
+extenseurs.
+
+@strong{@i{La propriété @code{minimum-length}}}
+
+La longueur minimale d'un extenseur est déterminée par la propriété
+@code{minimum-length}. Au plus sa valeur est élevée, au plus
+l'espacement des notes qui le bornent sera grand. Forcer sa valeur
+restera néanmoins sans effet pour un certain nombre d'extenseurs dont la
+longueur dépend d'autres considérations. Voici quelques exemples de
+mise en œuvre de cette propriété.
+
+@ignore
+Cette propriété est pleinement fonctionnelle pour :
+ Tie (liaison de prolongation)
+ MultiMeasureRest (silence multimesures)
+ Hairpin (soufflet)
+ Slur (liaison d'articulation)
+ PhrasingSlur (liaison de phrasé)
+
+Cette propriété est fonctionnelle en présence d'un @emph{callback} :
+ Glissando
+ Beam (ligature)
+
+Cette propriété est sans effet sur :
+ LyricSpace
+ LyricHyphen
+ LyricExtender
+ TextSpanner
+ System
+
+@end ignore
+
+@lilypond[verbatim,quote,relative=2]
+a~ a
+a
+% increase the length of the tie
+-\tweak minimum-length #5
+~ a
+@end lilypond
+
+@lilypond[verbatim,quote,relative=2]
+a1
+\compressFullBarRests
+R1*23
+% increase the length of the rest bar
+\once \override MultiMeasureRest.minimum-length = #20
+R1*23
+a1
+@end lilypond
+
+@lilypond[verbatim,quote,relative=2]
+a \< a a a \!
+% increase the length of the hairpin
+\override Hairpin.minimum-length = #20
+a \< a a a \!
+@end lilypond
+
+Cette propriété permet aussi de jouer sur l'envergure d'une liaison
+d'articulation ou de phrasé.
+
+@lilypond[verbatim,quote,relative=2]
+a( g)
+a
+-\tweak minimum-length #5
+( g)
+
+a\( g\)
+a
+-\tweak minimum-length #5
+\( g\)
+@end lilypond
+
+Certains objets requièrent un appel explicite à la procédure
+@code{set-spacing-rods} pour que la propriété @code{minimum-length}
+produise ses effets. La propriété @code{set-spacing-rods} doit alors
+prendre pour valeur @code{ly:spanner::set-spacing-rods}. Par exemple, la
+longueur minimale d'un glissando ne pourra être forcée tant que la
+propriété @code{springs-and-rods} n'est pas définie :
+
+@lilypond[verbatim,quote,relative=1]
+% default
+e \glissando c'
+
+% not effective alone
+\once \override Glissando.minimum-length = #20
+e, \glissando c'
+
+% effective only when both overrides are present
+\once \override Glissando.minimum-length = #20
+\once \override Glissando.springs-and-rods = #ly:spanner::set-spacing-rods
+e, \glissando c'
+@end lilypond
+
+Il en va de même pour l'objet @code{Beam} (ligature) :
+
+@lilypond[verbatim,quote,relative=1]
+% not effective alone
+\once \override Beam.minimum-length = #20
+e8 e e e
+
+% effective only when both overrides are present
+\once \override Beam.minimum-length = #20
+\once \override Beam.springs-and-rods = #ly:spanner::set-spacing-rods
+e8 e e e
+@end lilypond
+
+@strong{@i{La propriété @code{to-barline}}}
+
+La seconde propriété fournie par la @code{spanner-interface} est
+@code{to-barline}. Elle est activée par défaut, raison pour laquelle
+les soufflets et autres extenseurs finissant sur la première note d'une
+mesure s'arrêtent visuellement au niveau de la barre de mesure qui la
+précède. Le fait de désactiver la propriété @code{to-barline} aura pour
+effet de prolonger l'extenseur au delà de la barre de mesure et jusqu'à
+la note qui le borne :
+
+@lilypond[verbatim,quote,relative=2]
+a \< a a a a \! a a a \break
+\override Hairpin.to-barline = ##f
+a \< a a a a \! a a a
+@end lilypond
+
+Cette propriété n'est pas opérationnelle pour tous les extenseurs. Il
+serait en effet quelque peu surprenant de l'activer (lui
+affecter @code{#t}) dans le cas d'une liaison d'articulation ou de
+phrasé !
+
+
+@node Utilisation de line-spanner-interface
+@unnumberedsubsubsec Utilisation de @code{line-spanner-interface}
+@translationof Using the line-spanner-interface
+
+Un certain nombre d'objets disposent de la propriété
+@code{line-spanner-interface}, entre autres :
+
+@itemize
+@item @code{DynamicTextSpanner}
+@item @code{Glissando}
+@item @code{TextSpanner}
+@item @code{TrillSpanner}
+@item @code{VoiceFollower}
+@end itemize
+
+La routine en charge de dessiner le stencil de ces extenseurs est
+@code{ly:line-interface::print}. Elle va déterminer les deux points
+extrêmes et dessiner entre eux une ligne du style requis. Bien que la
+localisation des deux bornes de l'extenseur soit calculée à la volée,
+vous pouvez cependant forcer leur ordonnée (coordonnée-Y). Les
+propriétés que vous devrez ajuster résident au deuxième niveau dans la
+hiérarchie, mais la syntaxe de la commande @code{\override} nécessaire
+demeure relativement simple :
+
+@lilypond[relative=2,quote,verbatim]
+e2 \glissando b
+\once \override Glissando.bound-details.left.Y = #3
+\once \override Glissando.bound-details.right.Y = #-2
+e2 \glissando b
+@end lilypond
+
+La propriété @code{Y} est valorisée en unités de @code{staff-space}, la
+ligne médiane de la portée correspondant au point zéro. Pour le
+glissando qui nous occupe, il s'agit du @code{Y} à l'aplomb
+(coordonnée-X) du centre de la tête de chacune des deux notes, si tant
+est que la ligne doive s'étendre entre ces deux points.
+
+Si le @code{Y} n'est pas défini, sa valeur sera calculée en fonction de
+la position verticale du point d'attachement de l'extenseur.
+
+Dans le cas où l'extenseur est interrompu par un saut de ligne, les
+terminaisons à cet endroit se gèrent grâce aux sous-clés
+@code{left-broken} et @code{right-broken} de @code{bound-details}, comme
+ci-dessous :
+
+@lilypond[relative=2,ragged-right,verbatim,quote]
+\override Glissando.breakable = ##t
+\override Glissando.bound-details.right-broken.Y = #-3
+c1 \glissando \break
+f1
+@end lilypond
+
+Les sous-propriétés @code{left} et @code{right} du @code{bound-details}
+disposent d'autres clés modifiables de la même manière que @code{Y} :
+
+@table @code
+@item Y
+Détermine l'ordonnée (coordonnée-Y) de la terminaison, avec un
+décalage en @code{staff-space} par rapport à la ligne médiane de la
+portée. Il s'agit par défaut du centre de l'objet d'attachement, qui
+est le centre vertical de la tête de note pour un glissando.
+
+En ce qui concerne les extenseurs horizontaux, tels ceux comportant du
+texte ou les trilles, il est fixé à @code{0}.
+
+@item attach-dir
+Détermine le début et la fin de la ligne sur l'axe des abscisses,
+relativement à l'objet de rattachement. Une valeur de @w{@code{-1}} (ou
+@code{LEFT}) aura pour effet de commencer ou terminer la ligne sur la
+gauche de la tête de note de rattachement.
+
+@item X
+Il s'agit de l'abscisse (coordonnée-X) absolue de la terminaison. Elle
+se calcule à la volée, et son forçage n'apporte rien de plus.
+
+@item stencil
+Les extenseurs linéaires peuvent commencer ou finir par un symbole,
+enregistré dans cette sous-propriété. Elle est conçue pour un usage
+interne, aussi nous vous conseillons de plutôt recourir à @code{text}.
+
+@item text
+Il s'agit d'un @emph{markup} qui se poursuivra par l'extenseur. C'est la
+sous-propriété utilisée pour ajouter @i{cresc.}, @i{tr} ou autre texte à
+un extenseur horizontal.
+
+@lilypond[quote,ragged-right,relative=2,verbatim]
+\override TextSpanner.bound-details.left.text
+ = \markup { \small \bold Slower }
+c2\startTextSpan b c a\stopTextSpan
+@end lilypond
+
+@item stencil-align-dir-y
+@item stencil-offset
+Lorsqu'aucune de ces deux sous-propriétés n'est définie, le stencil est
+simplement positionné à l'extrémité, centré sur la ligne telle que
+définie par les sous-propriétés @code{X} et @code{Y}. L'utilisation de
+@code{stencil-align-dir-y} ou @code{stencil-offset} permettra d'aligner
+le symbole verticalement par rapport au coin de la ligne :
+
+@lilypond[relative=1,quote,verbatim]
+\override TextSpanner.bound-details.left.stencil-align-dir-y = #-2
+\override TextSpanner.bound-details.right.stencil-align-dir-y = #UP
+
+\override TextSpanner.bound-details.left.text = #"ggg"
+\override TextSpanner.bound-details.right.text = #"hhh"
+c4^\startTextSpan c c c \stopTextSpan
+@end lilypond
+
+Vous n'aurez pas manqué de constater qu'une valeur négative place le
+texte @emph{en haut} -- contrairement à ce que l'on serait en droit
+d'attendre. Ceci est dû au fait que la valeur @w{@code{-1}} ou
+@code{DOWN} signifie @qq{aligner le bord @emph{inférieur} du texte sur
+la ligne d'extension}. Une valeur égale à @code{1} ou @code{UP}
+alignera le sommet du texte sur cette ligne d'extension.
+
+@item arrow
+L'activation de cette sous-propriété (lui affecter @code{#t}) ajoutera
+à l'extenseur une terminaison en flèche.
+
+@item padding
+Cette sous-propriété contrôle l'espace qui doit séparer l'extrémité de
+la ligne et la fin réelle de l'extenseur. Sans ce @qq{décalage}, le
+trait indiquant un glissando commencerait et finirait au beau milieu de
+chacune des têtes de note.
+
+@end table
+
+La fonction @code{\endSpanners} permet d'interrompre l'extenseur qui
+vient dès la note suivante. Autrement dit, il ne s'étendra que sur une
+seule note, ou jusqu'à la prochaine barre de mesure si @code{to-barline}
+a été activé et que survient une barre avant la note suivante.
+
+@lilypond[verbatim,quote,ragged-right,relative=2]
+\endSpanners
+c2 \startTextSpan c2 c2
+\endSpanners
+c2 \< c2 c2
+@end lilypond
+
+L'utilisation de @code{\endSpanners} permet de s'affranchir d'insérer un
+@code{\stopTextSpan} pour clôturer un @code{\startTextSpan} ou un
+@code{\!} pour terminer un soufflet.
+
+@seealso
+Référence des propriétés internes :
+@rinternals{Glissando},
+@rinternals{line-spanner-interface},
+@rinternals{TextSpanner},
+@rinternals{TrillSpanner},
+@rinternals{VoiceFollower}.
+
+
+@node Visibilité des objets
+@subsection Visibilité des objets
+@translationof Visibility of objects
+
+@cindex objets, visibilité
+@cindex grobs, visibilité
+@cindex visibilité d'objets
+
+La visibilité des objets de rendu se contrôle de quatre façons
+différentes : vous pouvez supprimer leur stencil, les rendre
+transparents, les coloriser en blanc ou bien encore forcer leur
+propriété @code{break-visibility}. Les trois premières options peuvent
+s'appliquer à tous les objets, la dernière étant réservée aux objets
+@emph{changeables}. Le Manuel d'initiation contient une introduction à
+ces quatre techniques, à la rubrique
+@rlearning{Visibilité et couleur des objets}.
+
+LilyPond met en œuvre quelques techniques particulières adaptées à
+certains objets ; elles sont couvertes par une rubrique spécifique.
+
+@menu
+* Suppression des stencils::
+* Transparence des objets::
+* Blanchiment des objets::
+* Utilisation de break-visibility::
+* Considérations spécifiques::
+@end menu
+
+
+@node Suppression des stencils
+@unnumberedsubsubsec Suppression des stencils
+@translationof Removing the stencil
+
+@cindex stencil, suppression
+
+@funindex \omit
+
+Tout objet de rendu se voit attribuer une propriété @code{stencil}.
+Elle est par défaut définie par la fonction chargée de dessiner cet
+objet. Lorsque cette propriété est désactivée de force -- en lui
+attribuant la valeur @code{#f} -- aucune fonction ne sera appelée ;
+l'objet ne sera donc pas dessiné. Le retour au comportement par défaut
+s'opère à l'aide d'un @code{\revert}.
+
+@lilypond[quote,verbatim,relative=1]
+a1 a
+\override Score.BarLine.stencil = ##f
+a a
+\revert Score.BarLine.stencil
+a a a
+@end lilypond
+
+Cette opération relativement courante fait l'objet du racourci
+@code{\omit} :
+
+@lilypond[quote,verbatim,relative=1]
+a1 a
+\omit Score.BarLine
+a a
+\undo \omit Score.BarLine
+a a a
+@end lilypond
+
+
+@node Transparence des objets
+@unnumberedsubsubsec Transparence des objets
+@translationof Making objects transparent
+
+@cindex transparent, objet
+
+@funindex \hide
+
+Tout objet de rendu dispose d'une propriété de transparence, qui est par
+défaut définie à @code{#f}. Le fait de l'activer rendra l'objet
+transparent tout en préservant la place qu'il occupe.
+
+@lilypond[quote,verbatim,relative=2]
+a4 a
+\once \override NoteHead.transparent = ##t
+a a
+@end lilypond
+
+Cette opération relativement courante fait l'objet du racourci
+@code{\hide} :
+
+@lilypond[quote,verbatim,relative=2]
+a4 a
+\once \hide NoteHead
+a a
+@end lilypond
+
+
+@node Blanchiment des objets
+@unnumberedsubsubsec Blanchiment des objets
+@translationof Painting objects white
+
+@cindex objets, couleur
+@cindex couleur d'objet
+@cindex layers
+@cindex calque
+@cindex impression, ordre
+@cindex surimpression d'objets
+@cindex objets, surimpression
+@cindex grobs, superposition
+
+Tout objet de rendu dispose d'une propriété couleur, par défaut définie
+à @code{black} (noir). Le fait de la forcer à @code{white} (blanc)
+rendra l'objet indistinct du fond blanc. Néanmoins, lorsque cet objet
+en recouvre d'autres, la couleur de leurs points de jonction dépendra de
+l'ordre dans lequel ils sont dessinés, ce qui peut laisser apparaître
+un fantôme de l'objet blanchi comme ci-dessous :
+
+@lilypond[quote,verbatim,relative=2]
+\override Staff.Clef.color = #white
+a1
+@end lilypond
+
+Cet inconvénient peut être évité en modifiant l'ordre dans lequel les
+objets sont dessinés. Chaque objet de rendu dispose d'une propriété
+@code{layer} (calque ou niveau) à laquelle est affecté un nombre entier.
+Les objets ayant la plus faible valeur sont dessinés en premier, puis
+les autres, de telle sorte qu'un objet ayant une valeur plus élevée les
+recouvrira. La plupart des objet ont un @code{layer} valorisé
+à @code{1} -- quelques uns, dont @code{StaffSymbol} et
+@code{BarLine}, ont une valeur à @code{0}. L'ordre d'impression
+d'objets ayant une même valeur de @code{layer} est indéterminé.
+
+La clef de l'exemple précédent a par défaut un @code{layer}
+à @code{1} ; elle est donc dessinée après les lignes de la
+portée -- @code{layer} valorisé par défaut à @code{0} -- et donc
+les recouvre. Pour changer cet état de fait, l'objet @code{Clef} doit
+avoir un @code{layer} de valeur inférieure, disons @w{@code{-1}}, pour
+pouvoir être dessiné avant.
+
+@lilypond[quote,verbatim,relative=2]
+\override Staff.Clef.color = #white
+\override Staff.Clef.layer = #-1
+a1
+@end lilypond
+
+
+@node Utilisation de break-visibility
+@unnumberedsubsubsec Utilisation de break-visibility
+@translationof Using break-visibility
+
+@c TODO Add making other objects breakable
+
+@cindex break-visibility
+
+La plupart des objets de rendu ne sont imprimés qu'une seule fois ;
+certains cependant, tels les barres de mesure, clefs, métriques ou
+armures, apparaîtront deux fois lors d'un saut de ligne -- une première
+fois en fin de ligne, puis à nouveau au début de la ligne suivante. Ces
+objets, que l'on peut traiter de @emph{changeables} (@emph{breakable} en
+anglais) disposent de la propriété @code{break-visibility} spécialement
+chargée de contrôler leur visibilité aux trois endroits où il sont
+susceptibles d'apparaître : en début de ligne, en cours de ligne ou
+en fin de ligne -- si tant est qu'un changement s'y produise.
+
+Par exemple, la métrique est imprimée par défaut au début de la première
+ligne, et nulle part ailleurs. En cas de modification, une nouvelle
+métrique sera imprimée à l'endroit du changement. Dans le cas où ce
+changement intervient en fin de ligne, la nouvelle métrique s'imprime au
+début de la ligne suivante, et une métrique @qq{de précaution} viendra
+se placer au bout de la ligne précédente.
+
+Ce comportement est géré par la propriété @code{break-visibility}, dont
+vous trouverez une explication à la rubrique
+@rlearning{Visibilité et couleur des objets}. Cette propriété est
+constituée d'un vecteur de trois booléens qui, dans l'ordre, déterminent
+si l'objet sera imprimé à la fin, en cours, et au début d'une ligne --
+on pourrait aussi dire avant un saut de ligne, là où il n'y a pas de
+saut de ligne, et après un saut de ligne.
+
+Les huit combinaisons possibles sont aussi disponibles sous la forme de
+fonctions prédéfinies, regroupées dans le fichier
+@file{scm/output-lib.scm}. Le tableau suivant vous les présente ;
+les trois dernières colonnes indiquent l'endroit où l'objet sera visible.
+
+@multitable {@code{begin-of-line-invisible}} {@code{'#(#t #t #t)}} {apres} {apres} {apres}
+@headitem Forme @tab Forme @tab Avant @tab Hors @tab Après
+@headitem fonctionnelle @tab vectorielle @tab saut @tab saut @tab saut
+
+@item @code{all-visible} @tab @code{'#(#t #t #t)} @tab oui @tab oui @tab oui
+@item @code{begin-of-line-visible} @tab @code{'#(#f #f #t)} @tab non @tab non @tab oui
+@item @code{center-visible} @tab @code{'#(#f #t #f)} @tab non @tab oui @tab non
+@item @code{end-of-line-visible} @tab @code{'#(#t #f #f)} @tab oui @tab non @tab non
+@item @code{begin-of-line-invisible} @tab @code{'#(#t #t #f)} @tab oui @tab oui @tab non
+@item @code{center-invisible} @tab @code{'#(#t #f #t)} @tab oui @tab non @tab oui
+@item @code{end-of-line-invisible} @tab @code{'#(#f #t #t)} @tab non @tab oui @tab oui
+@item @code{all-invisible} @tab @code{'#(#f #f #f)} @tab non @tab non @tab non
+@end multitable
+
+Les réglages par défaut de la propriété @code{break-visibility}
+diffèrent selon l'objet de rendu. Le tableau suivant présente, pour la
+plupart des objets comportant la propriété @code{break-visibility},
+ces réglages par défaut.
+
+@multitable @columnfractions .3 .3 .4
+
+@headitem Objet de rendu @tab Contexte habituel @tab Réglage par défaut
+
+@c omit Ambitus as it appears not to be affected by break-visibility -td
+@c @item @code{Ambitus} @tab as specified @tab @code{begin-of-line-visible}
+@item @code{BarLine} @tab @code{Score} @tab calculé
+@item @code{BarNumber} @tab @code{Score} @tab @code{begin-of-line-visible}
+@c omit the following item until it can be explained -td
+@c @item @code{BreakAlignGroup} @tab @code{Score} @tab calculé
+@item @code{BreathingSign} @tab @code{Voice} @tab @code{begin-of-line-invisible}
+@item @code{Clef} @tab @code{Staff} @tab @code{begin-of-line-visible}
+@item @code{Custos} @tab @code{Staff} @tab @code{end-of-line-visible}
+@item @code{DoublePercentRepeat} @tab @code{Voice} @tab @code{begin-of-line-invisible}
+@c omit KeyCancellation until it can be explained -td
+@c @item @code{KeyCancellation} @tab ?? @tab @code{begin-of-line-invisible}
+@item @code{KeySignature} @tab @code{Staff} @tab @code{begin-of-line-visible}
+@c omit LeftEdge until it can be explained -td
+@c @item @code{LeftEdge} @tab @code{Score} @tab @code{center-invisible}
+@item @code{ClefModifier} @tab @code{Staff} @tab @code{begin-of-line-visible}
+@item @code{RehearsalMark} @tab @code{Score} @tab @code{end-of-line-invisible}
+@item @code{TimeSignature} @tab @code{Staff} @tab @code{all-visible}
+
+@end multitable
+
+Voici un exemple d'utilisation de la forme vectorielle pour contrôler la
+visibilité des barres de mesure :
+
+@lilypond[quote,verbatim,relative=1,ragged-right]
+f4 g a b
+f4 g a b
+% Remove bar line at the end of the current line
+\once \override Score.BarLine.break-visibility = #'#(#f #t #t)
+\break
+f4 g a b
+f4 g a b
+@end lilypond
+
+Lors d'un forçage de @code{break-visibility} sous une forme vectorielle,
+les trois éléments doivent impérativement être mentionnés. Ces formes
+vectorielles ne sont d'ailleurs pas prises en charge par tous les objets
+de rendu, et certaines combinaisons peuvent entraîner des erreurs ;
+nous citerons entre autres :
+
+@itemize @bullet
+@item Une barre de mesure ne peut s'imprimer en début de ligne.
+@item Un numéro de mesure ne peut apparaître au début de la première
+ligne, à moins d'être différent de 1.
+@item Clef -- voir ci-après.
+@item Les répétitions en pourcentage sont soit toutes imprimées, soit
+aucune. Vous devrez utiliser @code{begin-of-line-invisible} pour les
+voir et @code{all-invisible} pour les masquer.
+@item Armure -- voir ci-après.
+@item Modificateur de clef -- voir ci-après.
+@end itemize