+@node Utilizar una voz adicional para los saltos de línea
+@subsection Utilizar una voz adicional para los saltos de línea
+@translationof Using an extra voice for breaks
+
+La información sobre saltos de línea y de página suele aparecer
+directamente entremezclado dentro del código de notas.
+
+@example
+music = \relative c'' @{ c4 c c c @}
+
+\score @{
+ \new Staff @{
+ \repeat unfold 2 @{ \music @} \break
+ \repeat unfold 3 @{ \music @}
+ @}
+@}
+@end example
+
+Esto hace sencillas de introducir a las instrucciones @code{\break} y
+@code{\pageBreak}, pero mezcla la escritura de música con información
+que especifica cómo se debe disponer la música sobre la página.
+Podemos mantener la introducción de música y la información de saltos
+de línea y de página en dos lugares separados mediante la introducción
+de una voz adicional que contenga los saltos. Esta voz adicional
+contiene solamente desplazamientos o @q{skips} junto con los
+@code{\break}, @code{pageBreak} y otras informaciones sobre la
+disposición de los saltos.
+
+@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
+
+Este patrón resulta especialmente útil cuando se sobreescribe
+@code{line-break-system-details} y las otras útiles (pero largas)
+propiedades de @code{NonMusicalPaperColumnGrob}, como se explica en
+@ref{Espaciado 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
+Referencia de la notación:
+@ref{Espaciado vertical}.
+
+Fragmentos de código:
+@rlsr{Spacing}.
+
+
+@node Espaciado vertical
+@section Espaciado vertical
+@translationof Vertical spacing
+
+@cindex espaciado vertical
+@cindex vertical, espaciado
+
+El espaciado vertical está controlado por tres factores: la cantidad
+de espacio disponible (es decir, el tamaño del papel y los márgenes),
+la separación entre los sistemas, y la separación entre los
+pentagramas dentro de un sistema.
+
+@menu
+* Espaciado vertical flexible dentro de los sistemas::
+* Posicionamiento explícito de los pentagramas y los sistemas::
+* Evitar las colisiones verticales::
+@end menu
+
+
+@node Espaciado vertical flexible dentro de los sistemas
+@subsection Espaciado vertical flexible dentro de los sistemas
+@translationof Flexible vertical spacing within systems
+
+@cindex distancia entre pentagramas
+@cindex pentagrama, distancia entre los
+@cindex espacio entre pentagramas
+@cindex espacio dentro de los sistemas
+
+Tres mecanismos distintos controlan el espaciado vertical flexible
+dentro de los sistemas, uno por cada una de las categorías siguientes:
+
+@itemize
+
+@item
+@emph{pautas sin agrupar},
+
+@item
+@emph{pautas agrupadas} (pautas dentro de un grupo de pentagramas como
+@code{ChoirStaff}, etc.), y
+
+@item
+@emph{líneas que no son pautas} (como @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 altura de cada sistema se determina en dos fases. Primero, todos
+los pentagramas se disponen según la cantidad de espacio vacío
+disponible. Después, las líneas que no son pautas se distribuyen
+entre las pautas.
+
+Observe que los mecanismos de espaciado estudiados en esta sección
+solamente controlan el espaciado vertical de las pautas y líneas que
+no son pautas dentro de los sistemas individuales. El espaciado
+vertical entre distintos sistemas, partituras, marcados y márgenes se
+controla mediante variables de @code{\paper} que se estudian en
+@ref{Flexible vertical spacing \paper variables}.
+
+@menu
+* Propiedades de espaciado dentro de los sistemas::
+* Espaciado de pautas no agrupadas::
+* Espaciado de pautas agrupadas::
+* Espaciado de las líneas que no son pautas::
+@end menu
+
+
+@node Propiedades de espaciado dentro de los sistemas
+@unnumberedsubsubsec Propiedades de espaciado dentro de los sistemas
+@translationof Within-system spacing properties
+
+@funindex staff-affinity
+@funindex staffgroup-staff-spacing
+@funindex staff-staff-spacing
+@funindex nonstaff-unrelatedstaff-spacing
+@funindex nonstaff-relatedstaff-spacing
+@funindex nonstaff-nonstaff-spacing
+@funindex default-staff-staff-spacing
+@funindex minimum-Y-extent
+@funindex extra-offset
+@funindex self-alignment-X
+@funindex X-offset
+@funindex VerticalAxisGroup
+
+Los mecanismos de espaciado vertical dentro del sistema están
+controlados por dos conjuntos de propiedades de grob. El primer
+conjunto está asociado con el grob @code{VerticalAxisGroup}, que se
+crea por parte de todas las pautas y líneas que no son pautas. El
+segundo conjunto está asociado con el grob @code{StaffGrouper}, que
+puede crearse por parte de los grupos de pentagramas, pero solamente
+si se le llama explícitamente. Estas propiedades se describen
+individualmente al final de la presente sección.
+
+Los nombres de estas propiedades (excepto para @code{staff-affinity})
+siguen el formato @code{@var{elemento1}-@var{elemento2}-spacing},
+donde @code{@var{elemento1}} y @code{@var{elemento2}} son los
+elementos que se van a espaciar. Observe que @code{@var{elemento2}}
+no está necesariamente por debajo de @code{@var{elemento1}}; por
+ejemplo, @code{nonstaff-relatedstaff-spacing} mide hacia arriba a
+partir de la línea del tipo no-pauta si @code{staff-affinity} es
+@code{UP}.
+
+Cada distancia se mide entre los @emph{puntos de referencia} de los
+dos elementos. El @emph{punto de referencia} para un pentagrama y
+otro tipo de pauta es el centro vertical de su @code{StaffSymbol} (es
+decir, la línea central si @code{line-count} es un número impar; el
+espacio central si @code{line-count} es par). Los puntos de
+referencia para las líneas individuales que no son pautas aparecen en
+la tabla siguiente:
+
+@multitable {Línea que no es una pauta} {Punto de referencia}
+@headitem Línea que no es una pauta @tab Punto de referencia
+@item @code{ChordNames} @tab línea de base
+@item @code{NoteNames} @tab línea de base
+@item @code{Lyrics} @tab línea de base
+@item @code{Dynamics} @tab centro vertical
+@item @code{FiguredBass} @tab punto más alto
+@item @code{FretBoards} @tab línea superior
+@end multitable
+
+En la siguiente imagen, las líneas horizontales indican las posiciones
+de estos puntos de referencia:
+
+@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
+ }
+}
+
+%% These contexts have reference points at the baseline:
+%% ChordNames, NoteNames, and Lyrics
+<<
+ \new ChordNames { \chords { g1:m } }
+ \new NoteNames { s1 | g1 | }
+ \new RhythmicStaff {
+ \set RhythmicStaff.instrumentName = #"baseline "
+ \textLengthOn
+ \labelContext "ChordNames " s1 |
+ \labelContext "NoteNames " s1 |
+ \labelContext "Lyrics" s1 |
+ }
+ \new Lyrics { \lyrics { \skip 1*2 | ghijk1 | } }
+>>
+
+%% The reference point for Dynamics is its vertical center
+<<
+ \new RhythmicStaff {
+ \set RhythmicStaff.instrumentName = #"vertical center "
+ \labelContext "Dynamics" s1*3
+ }
+ \new Dynamics { s1\mp s\fp }
+>>
+
+%% The reference point for FiguredBass is its highest point
+<<
+ \new RhythmicStaff {
+ \set RhythmicStaff.instrumentName = #"highest point "
+ \labelContext "FiguredBass" s1
+ }
+ \new FiguredBass { \figuremode { <6 5>1 } }
+>>
+
+%% The reference point for FretBoards is the top line
+\include "predefined-guitar-fretboards.ly"
+<<
+ \new FretBoards { \chordmode { e1 } }
+ \new RhythmicStaff {
+ \set RhythmicStaff.instrumentName = #"top line "
+ \labelContext "FretBoards " s1
+ }
+>>
+@end lilypond
+
+Cada una de las propiedades de grob del espaciado vertical (excepto
+@code{staff-affinity})
+usa la misma estructura de lista-A que las
+variables de espaciado del bloque @code{\paper} que se han estudiado
+en @ref{Flexible vertical spacing \paper variables}.
+En @ref{Modificación de las listas-A}
+se estudian métodos específicos para la modificación de
+las listas-A. Las propiedades de los grobs deben ajustarse con un
+@code{\override} dentro de un bloque @code{\score} o @code{\layout}, y
+no dentro de un bloque @code{\paper}.
+
+El ejemplo que sigue muestra las dos maneras en que pueden modificarse
+estas listas-A. La primera declaración actualiza un par clave-valor de
+forma individual, y la segunda redefine la propiedad completamente:
+
+@example
+\new Staff \with @{
+ \override VerticalAxisGroup #'default-staff-staff-spacing
+ #'basic-distance = #10
+@} @{ @dots{} @}
+
+\new Staff \with @{
+ \override VerticalAxisGroup #'default-staff-staff-spacing =
+ #'((basic-distance . 10)
+ (minimum-distance . 9)
+ (padding . 1)
+ (stretchability . 10))
+@} @{ @dots{} @}
+@end example