@end table
--@node Dimensionnement vertical fluctuant
--@unnumberedsubsubsec Dimensionnement vertical fluctuant
++@node Dimensionnement vertical fluctuant
++@unnumberedsubsubsec Dimensionnement vertical fluctuant
@translationof Flexible vertical dimensions
Il est souvent judicieux d'apporter un peu de flexibilité à l'espacement
}
@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 pouvrrez le voir au
-chapitre @ref{Espacement vertical}.
+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 pouvrrez
++intéressantes de @code{NonMusicalPaperColumnGrob}, comme vous pouvez
+le voir au chapitre @ref{Espacement vertical}.
@lilypond[quote,verbatim]
\score {
portée@tie{}; à l'inverse, utiliser la propriété @code{staff-affinity}
pour une portée lui fera perdre cette qualité.
-L'espacement des lignes de @qq{non-portée} est géré par trois
-propriétés, chacune d'elles étant constituée d'une liste associative
-équivalente à celle de @code{next-staff-spacing} que nous avons déjà vue.
+@c TODO: verify last clause below ("even if other...")
+
+@item nonstaff-relatedstaff-spacing
+Il s'agit de la distance entre la ligne de non-portée en cours et la
+portée la plus proche selon la @code{staff-affinity}, à la double
+condition qu'il n'y a pas déjà une autre ligne de non-portée et que la
+valeur de @code{staff-affinity} soit @code{UP} ou @code{DOWN}. Lorsque
+la valeur de @code{staff-affinity} est égale à @code{CENTER}, la valeur
+de @code{nonstaff-relatedstaff-spacing} servira à centrer la ligne de
+non-portée entre les deux portées adjacentes même si une autre
+non-portée est présente (quelque soit le côté).
+
+@item nonstaff-nonstaff-spacing
+Il s'agit de la distance entre deux lignes de non-portée selon
+l'orientation définie par @code{staff-affinity} et qu'elles ont la même
+orientation. Bien entendu, ceci ne peut concerner que les valeurs
+@code{UP} et @code{DOWN} de @code{staff-affinity}.
+
+@item nonstaff-unrelatedstaff-spacing
+Il s'agit de la distance entre une ligne de non-portée et la portée à
+l'opposé de l'orientation adoptée, à la double condition qu'il n'y a pas
+déjà une autre ligne de non-portée et que la valeur de
+@code{staff-affinity} soit @code{UP} ou @code{DOWN}. Cette propriété
+trouve toute sa légitimité pour décaler une ligne de @code{Lyrics} de la
+portée à laquelle elle ne correspond pas.
+@end table
+
+
+@subsubheading Propriétés de l'objet @code{StaffGrouper}
+@translationof Properties of the @code{StaffGrouper} grob
+
+Les propriétés de l'objet @code{StaffGrouper} s'ajustent à l'aide
+d'un @code{\override} au niveau d'un contexte @code{StaffGroup} (ou son
+équivalent).
+
+@table @code
+@item staff-staff-spacing
+Il s'agit de la distance entre deux portées consécutives d'un même
+système. Cependant, lorsque l'une des portées d'un regroupement s'est
+vue définir la propriété @code{staff-staff-spacing} de son
+@code{VerticalAxisGroup}, le @code{VerticalAxisGroup} aura préséance.
+Voir aussi la propriété @code{default-staff-staff-spacing}.
+
+@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 @code{VerticalAxisGroup},
+cette dernière aura préséance. Voir aussi la propriété
+@code{default-staff-staff-spacing}.
+@end table
+
+
+@seealso
+Fichiers d'initialisation :
+@file{ly/engraver-init.ly},
+@file{scm/define-grobs.scm}.
+
+Référence des propriétés internes :
+@rinternals{Contexts},
+@rinternals{VerticalAxisGroup},
+@rinternals{StaffGrouper}.
+
+
+@node Espacement de portées isolées
+@unnumberedsubsubsec Espacement de portées isolées
+@translationof Spacing of ungrouped staves
+
+Les @code{Staff}, @code{DrumStaff}, @code{TabStaff} entre autres sont
+des contextes de @qq{portée} pouvant contenir plusieurs voix, mais pas
+une portée.
+
+L'espacement de ces @i{portées isolées} est géré par les propriétés
+suivantes@tie{}:
@itemize
-@item
-Si la ligne la plus proche -- dans la direction spécifiée par
-@code{staff-affinity} -- est une portée, l'espacement entre cette
-non-portée et la portée suivante s'ajustera sur la valeur de
-@code{inter-staff-spacing}. Lorsque la @code{staff-affinity} est égale
-à @code{CENTER}, @code{inter-staff-spacing} servira des deux côtés.
+@item Propriétés du @code{VerticalAxisGroup} :
+@itemize
+@item @code{staff-staff-spacing}
+@end itemize
+@end itemize
-@item
-Si la ligne la plus proche -- dans la direction spécifiée par
-@code{staff-affinity} -- est une non-portée, l'espacement entre ces deux
-lignes sera égal à @code{inter-loose-line-spacing}.
+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}.
-@item
-Si la ligne la plus proche -- dans la direction opposée à celle
-spécifiée par @code{staff-affinity} -- est une portée, l'espacement
-entre cette non-portée et la portée s'ajustera sur la valeur de
-@code{non-affinity-spacing}. Ceci permet notamment de déterminer un
-espacement mimimal entre une ligne de paroles et la portée à laquelle
-elle n'est pas rattachée.
+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{staff-staff-spacing}@tie{}:
+
+@lilypond[verbatim,quote,staffsize=16]
+\layout {
+ \context {
+ \Staff
+ \override VerticalAxisGroup #'staff-staff-spacing =
+ #'((padding . 1)
+ (space . 8)
+ (minimum-distance . 7))
+ }
+}
+
+\new StaffGroup <<
+ % The very low note here needs more room than 'space can
+ % provide, so the distance between this staff and the next is
+ % determined by 'padding.
+ \new Staff { b,2 r | }
+
+ % Here, 'space 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 'space.
+ \new Staff { \clef bass g2 r | }
+
+ % By setting 'padding to a negative value, staves can be made to
+ % collide. The lowest acceptable value for 'space is 0.
+ \new Staff \with {
+ \override VerticalAxisGroup #'staff-staff-spacing =
+ #'((padding . -10)
+ (space . 3.5))
+ } { \clef bass g2 r | }
+ \new Staff { \clef bass g2 r | }
+>>
+@end lilypond
+
+
+@seealso
+Fichiers d'initialisation :
+@file{scm/define-grobs.scm}.
+
+Morceaux choisis :
+@rlsrnamed{Spacing,Espacements}.
+
+Référence des propriétés internes :
+@rinternals{VerticalAxisGroup}.
+
+
+@node Espacement de portées regroupées
+@unnumberedsubsubsec Espacement de portées regroupées
+@translationof Spacing of grouped staves
+
+Dans les partitions orchestrales ou de grande ampleur, il arrive
+souvent que des portées soient regroupées. L'espacement est alors plus
+important entre deux regroupements qu'entre les portées d'un même
+groupe.
+
+Les @i{regroupement de portées} tels le @code{StaffGroup} ou le
+@code{ChoirStaff} sont des contextes qui peuvent contenir simultanément
+une ou plusieurs portées.
+
+L'espacement entre les portées d'un même regroupement est géré par les
+propriétés suivantes@tie{}:
+
+@itemize
+@item Propriétés du @code{VerticalAxisGroup} :
+@itemize
+@item @code{staff-staff-spacing}
+@item @code{default-staff-staff-spacing}
+@end itemize
+@item Propriétés du @code{StaffGrouper} :
+@itemize
+@item @code{staff-staff-spacing}
+@item @code{staffgroup-staff-spacing}
+@end itemize
+@end itemize
+
+Ces propriétés d'objet graphique sont expliquées une à une au chapitre
+@ref{Propriétés d'espacement au sein d'un système}.
+
+L'exemple suivant illustre la manière de gérer l'espacement de portées
+regroupes, à l'aide des propriétés de l'objet graphique
+@code{StaffGrouper}@tie{}:
+
+@lilypond[verbatim,quote,staffsize=16]
+\layout {
+ \context {
+ \Score
+ \override StaffGrouper #'staff-staff-spacing #'padding = #0
+ \override StaffGrouper #'staff-staff-spacing #'space = #1
+ }
+}
+
+<<
+ \new PianoStaff \with {
+ \override StaffGrouper #'staffgroup-staff-spacing #'space = #20
+ } <<
+ \new Staff { c'1 }
+ \new Staff { c'1 }
+ >>
+
+ \new StaffGroup <<
+ \new Staff { c'1 }
+ \new Staff { c'1 }
+ >>
+>>
+@end lilypond
+
+
+@seealso
+Fichiers d'initialisation :
+@file{scm/define-grobs.scm}.
+
+Morceaux choisis :
+@rlsrnamed{Spacing,Espacements}.
+
+Référence des propriétés internes:
+@rinternals{VerticalAxisGroup},
+@rinternals{StaffGrouper}.
+
-
++@node Espacement des lignes rattachées à des portées
+@unnumberedsubsubsec Espacement des lignes rattachées à des portées
+@translationof Spacing of non-staff lines
+
+Les @i{lignes de non-portée}, comme les @code{Lyrics} ou les
+@code{ChordNames} sont des contextes dont les objets de rendu sont
+gravés à l'instar des portées -- une ligne horizontale dans un système.
+En fait, les lignes de non-portée sont des contextes qui vont créer un
+objet de rendu @code{VerticalAxisGroup}.
+
+L'espacement des lignes de non-portée est géré par les propriétés
+suivantes@tie{}:
+
+@itemize
+@item Propriétés du @code{VerticalAxisGroup} :
+@itemize
+@item @code{staff-affinity}
+@item @code{nonstaff-relatedstaff-spacing}
+@item @code{nonstaff-nonstaff-spacing}
+@item @code{nonstaff-unrelatedstaff-spacing}
+@end itemize
@end itemize
-@lilypond[verbatim]
-#(set-global-staff-size 16)
+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