@c -*- coding: utf-8; mode: texinfo; documentlanguage: es -*-
@ignore
- Translation of GIT committish: d4f58bb3ad4e7fe1967a6b48f25e3addffc8aa14
+ Translation of GIT committish: b2bdfeb83d3dd8460ffe0afef5f99e08dbe7f1ba
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.0"
-@node Spacing issues
-@chapter Spacing issues
+@ignore
+GDP TODO list
+This block comment is copied here to ease comparation of
+original and its translation.
+
+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 Problemas de espaciado
+@chapter Problemas de espaciado
+@translationof Spacing issues
La disposición global sobre el papel viene determinada por tres
factores: el diseño de página, los saltos de línea y el espaciado.
que ni el espaciado horizontal ni el vertical estén demasiado
estrechos ni estirados.
-Los ajustes que influyen en la disposición se pueden agrupar en dos
-bloques. El bloque @code{\paper @{...@}} se sitúa fuera de los
-bloques @code{\score @{...@}} y contiene ajustes relacionados con el
-documento como un todo. El bloque @code{\layout @{...@}} se sitúa
-dentro de un bloque @code{\score @{...@}} y contiene ajustes para
-dicha partitura en concreto. Si sólo tiene un bloque @code{\score
-@{...@}}, los dos tienen el mismo efecto. En general las
-instrucciones que se muestran en este capítulo se pueden poner en
-cualquiera de los dos.
+Hay dos tipos de bloques que pueden contener ajustes de disposición:
+@code{\paper @{@dots{}@}} y @code{\layout @{@dots{}@}}. El bloque
+@code{\paper} contiene ajustes de disposición de la página que se
+espera sean los mismos para todas las partituras de un libro, como la
+altura de la hoja o si se imprimen los números de página, etc. Véase
+@ref{Disposición de la página}. El bloque @code{\layout} contiene
+ajustes de disposición de la partitura, como el número de sistemas que
+utilizar, o la separación entre grupos de pentagramas, etc. Véase
+@ref{Disposición de la partitura}.
@menu
-* Paper and pages::
-* Music layout::
-* Breaks::
-* Vertical spacing::
-* Horizontal spacing::
-* Fitting music onto fewer pages::
+* Disposición de la página::
+* Disposición de la partitura::
+* Saltos::
+* Espaciado vertical::
+* Espaciado horizontal::
+* Encajar la música en menos páginas::
@end menu
-@node Paper and pages
-@section Paper and pages
+@node Disposición de la página
+@section Disposición de la página
+@translationof Page layout
-Esta sección se ocupa de los límites que definen la zona del papel en
-que se puede imprimir la música.
+Esta sección estudia las opciones de disposición de la página para el
+bloque @code{\paper}.
@menu
-* Paper size::
-* Page formatting::
+* El bloque \paper::
+* Tamaño del papel y escalado automático::
+* Variables de espaciado de \paper verticales fijas::
+* Variables de espaciado de \paper verticales flexibles::
+* Variables de espaciado de \paper horizontales::
+* Otras variables de \paper::
@end menu
-@node Paper size
-@subsection Paper size
+@node El bloque \paper
+@subsection El bloque @code{\paper}
+@translationof The \paper block
+
+El bloque @code{\paper} puede aparecer dentro de un bloque
+@code{\book}, pero no dentro de un bloque @code{\score}. Los ajustes
+de un bloque @code{\paper} se aplican a todo el libro, que puede
+comprender varias partituras. Entre los ajustes que pueden aparecer
+dentro de un bloque @code{\paper} están los siguientes:
-@cindex papel, tamaño del
-@cindex página, tamaño de la
+@itemize
+
+@item
+la función de Scheme @code{set-paper-size},
-Existen dos funciones para cambiar el tamaño del papel:
-@code{set-default-paper-size} (establecer tamaño de página
-predeterminado) y @code{set-paper-size} (establecer tamaño de página).
-@code{set-default-paper-size} se debe poner en el ámbito del nivel
-superior, y @code{set-paper-size} se debe poner en un bloque
-@code{\paper}:
+@item
+variables de @code{\paper} utilizadas para personalizar la disposición
+de la página, y
+
+@item
+definiciones de marcado utilizadas para personalizar la disposición de
+los encabezamientos, pies y títulos.
+
+@end itemize
+
+La función @code{set-paper-size} se estudia en la sección siguiente,
+@ref{Tamaño del papel y escalado automático}. Las variables de
+@code{\paper} que se ocupan de la disposición de la página
+se estudian en secciones posteriores. Las definiciones de elementos
+de marcado que se encargan de los encabezamientos, pies y títulos se
+estudian en @ref{Títulos encabezamientos y pies de página personalizados}.
+
+Casi todas las variables de @code{\paper} funcionan solamente dentro
+de un bloque @code{\paper}. Las pocas que funcionan también en un
+bloque @code{\layout} están relacionadas en @ref{El bloque \layout}.
+
+Excepto cuando se especifica lo contrario, todas las variables de
+@code{\paper} que corresponden a distancias sobre la página se miden
+en milímetros, a no ser que el usuario especifique unas unidades
+diferentes. Por ejemplo, la declaración siguiente
+establece el margen superior @code{top-margin} a diez milímetros:
@example
-#(set-default-paper-size "a4")
+\paper @{
+ top-margin = 10
+@}
@end example
+Para fijarlo en @code{0.5} pulgadas, utilice el sufijo de unidades
+@code{\in}:
+
@example
\paper @{
- #(set-paper-size "a4")
+ top-margin = 0.5\in
@}
@end example
-@noindent
+Los sufijos de unidades que están disponibles son @code{\mm},
+@code{\cm}, @code{\in} y @code{\pt}. Estas unidades son valores
+simples para convertir a partir de milímetros; están definidos en
+@file{ly/paper-defaults-init.ly}. Por claridad, al usar milímetros,
+se suele escribir el sufijo @code{\mm} aunque no es necesario
+técnicamente.
+
+También es posible definir valores de @code{\paper} utilizando Scheme.
+El equivalente de Scheme del ejemplo anterior es:
+
+@example
+\paper @{
+ #(define top-margin (* 0.5 in))
+@}
+@end example
+
+@seealso
+Referencia de la notación:
+@ref{Tamaño del papel y escalado automático},
+@ref{Títulos encabezamientos y pies de página personalizados},
+@ref{El bloque \layout}.
+
+Archivos instalados:
+@file{ly/paper-defaults-init.ly}.
+
+
+@node Tamaño del papel y escalado automático
+@subsection Tamaño del papel y escalado automático
+@translationof Paper size and automatic scaling
+
+@cindex tamaño del papel
+@cindex tamaño de la página
+
+@funindex \paper
+
+@menu
+* Fijar el tamaño del papel::
+* Escalado automático al tamaño del papel::
+@end menu
+
+
+@node Fijar el tamaño del papel
+@unnumberedsubsubsec Fijar el tamaño del papel
+@translationof Setting paper size
+
+@q{A4} es el valor predeterminado si no se establece ningún tamaño de
+página explícitamente. Sin embargo, existen dos funciones que se
+pueden usar para modificarlo: @code{set-default-paper-size},
+
+@example
+#(set-default-paper-size "quarto")
+@end example
+
+que siempre se debe colocar en el ámbito superior, y
+@code{set-paper-size},
+
+@example
+\paper @{
+ #(set-paper-size "tabloid")
+@}
+@end example
+
+que se debe colocar siempre dentro de un bloque @code{\paper}.
+
+Si se usa la función @code{set-default-paper-size} en el ámbito
+superior jerárquico, debe ir antes de cualquier bloque @code{\paper}.
@code{set-default-paper-size} establece el tamaño de todas las
páginas, mientras que @code{set-paper-size} establece sólo el tamaño
de las páginas a las que se aplica el bloque @code{\paper}. Por
@code{\paper} está dentro de un bloque @code{\book}, entonces el
tamaño del papel sólo se aplica a ese libro.
-Se encuentran disponibles los tamaños de papel más comunes, entre
-ellos @code{a4}, @code{letter}, @code{legal} y @code{11x17} (conocido
-también como tabloide). Están contemplados muchos más tamaños de papel
-de forma predeterminada. Para ver más detalles, consulte
-@file{scm/@/paper@/.scm} y busque la definición de @code{paper-alist}.
+Cuando se usa la función @code{set-paper-size}, se debe colocar
+@emph{antes} de cualquier otra función que se utilice dentro del mismo
+bloque @code{\paper}. Véase @ref{Escalado automático al tamaño del
+papel}.
-@c TODO add a new appendix for paper sizes (auto-generated) -pm
+Los tamaños de página están definidos en el archivo
+@file{scm/paper.scm}, y aunque es posible añadir tamaños
+personalizados, se sobreescribirán en las actualizaciones del software
+posteriores. La lista de todos los tamaños de papel disponibles
+está en @ref{Tamaños de página predefinidos}.
-@warning{El tamaño predeterminado del papel es @code{a4}.}
+@c An appendix entry exists for paper sizes but is not auto-generated
-Se pueden añadir tamaños adicionales editando la definición de
-@code{paper-alist} en el archivo de inicio @file{scm/@/paper@/.scm},
-aunque se sobreescribirán en la siguiente reinstalación del programa.
+Se puede usar la siguiente instrucción en el archivo para añadir un
+tamaño de página personalizado que se puede usar después con
+@code{set-default-paper-size} o con @code{set-paper-size} según
+convenga,
-@cindex orientación
-@cindex apaisado
-@cindex horizontal, papel
+@example
+#(set! paper-alist (cons '("mi tamaño" . (cons (* 15 in) (* 3 in))) paper-alist))
-Si se añade el símbolo @code{'landscape} (apaisado) como argumento a
-@code{set-default-paper-size}, las páginas se giran 90 grados y se
-establece en consonancia una mayor longitud de las líneas.
+\paper @{
+ #(set-paper-size "mi tamaño")
+@}
+@end example
+
+Se puede usar cualquiera de las unidades @code{in} (pulgadas),
+@code{cm} (centímetros) o @code{mm} (milímetros).
+
+@cindex papel, tamaño, orientación
+@cindex página, orientación de la
+@cindex papel, tamaño, apaisado
+
+Si se añade el símbolo @code{'landscape} a la función del tamaño de la
+página, el papel se gira 90 grados y se establece adecuadamente la
+anchura de las líneas.
@example
#(set-default-paper-size "a6" 'landscape)
@end example
-Al establecer el tamaño del papel se ajustan un cierto número de
-variables del @code{\paper}, tales como los márgenes. Para utilizar
-un tamaño de página determinado con variables de @code{\paper}
-alteradas, establezca el tamaño de página antes de dar valores a las
-variables.
+Se pueden intercambiar las dimensiones del papel @emph{sin que la
+impresión resulte girada} (como cuando se imprime en tamaño tarjeta
+postal, o al crear gráficos para su inclusión en lugar de un documento
+independiente) añadiendo @samp{landscape} después del nombre del
+propio tamaño del papel:
+@example
+#(set-default-paper-size "a6landscape")
+@end example
+
+Cuando el tamaño del papel termina de forma explícita con
+@samp{landscape} o con @samp{portrait}, la presencia de un símbolo
+@code{'landscape} @emph{solamente} afecta a la orientación de la
+impresión, no a las dimensiones del papel que se usan para la
+disposición.
@seealso
-Archivos instalados:
-@file{scm/@/paper@/.scm}.
+Referencia de la notación:
+@ref{Escalado automático al tamaño del papel},
+@ref{Tamaños de página predefinidos}.
-Fragmentos de código:
-@rlsr{Spacing}.
+Archivos instalados:
+@file{scm/paper.scm}.
+
+
+@node Escalado automático al tamaño del papel
+@unnumberedsubsubsec Escalado automático al tamaño del papel
+@translationof Automatic scaling to paper size
+
+Si se cambia el tamaño del papel con una de las funciones de Scheme
+(@code{set-default-paper-size} o @code{set-paper-size}), los valores
+de algunas variables de @code{\paper} se escalan automáticamente al
+nuevo tamaño. Para sortear el escalado automático para una variable
+determinada, fije el valor de la variable después de establecer el
+tamaño del papel. Observe que el escalado automático no se activa
+mediante el ajuste de las variables
+@code{paper-height} o de @code{paper-width},
+incluso aunque @code{paper-width} puede influir sobre otros valores
+(esto es distinto al escalado y se estudia más abajo). Las funciones
+@code{set-default-paper-size} y @code{set-paper-size} se describen en
+@ref{Fijar el tamaño del papel}.
+
+Las dimensiones verticales afectadas por el escalado automático son
+@code{top-margin} y @code{bottom-margin}
+(véase @ref{Variables de espaciado de \paper verticales fijas}).
+Las dimensiones
+horizontales afectadas por el escalado automático son
+@code{left-margin}, @code{right-margin}, @code{inner-margin},
+@code{outer-margin}, @code{binding-offset}, @code{indent} y
+@code{short-indent} (véase
+@ref{Variables de espaciado de \paper horizontales}).
+
+Los valores predeterminados para estas dimensiones están fijados en el
+archivo @file{ly/paper-defaults-init.ly}, usando variables internas
+llamadas @code{top-margin-default}, @code{bottom-margin-default}, etc.
+Estos son los valores que resultan del tamaño predeterminado del papel
+@code{a4}. Como referencia, con el papel @code{a4} la altura
+@code{paper-height} es @code{297\mm} y la anchura @code{paper-width}
+es @code{210\mm}.
+@seealso
+Referencia de la notación:
+@ref{Variables de espaciado de \paper verticales fijas},
+@ref{Variables de espaciado de \paper horizontales}.
-@node Page formatting
-@subsection Page formatting
+Archivos de inicio:
+@file{ly/paper-defaults-init.ly},
+@file{scm/paper.scm}.
-Los márgenes, encabezamientos y pies de página y otras variables de
-diseño de página se establecen automáticamente de acuerdo con el
-tamaño del papel.
-Esta sección relaciona y describe cierto número de variables del papel
-que se pueden alterar.
+@node Variables de espaciado de \paper verticales fijas
+@subsection Variables de espaciado de @code{\paper} verticales fijas
+@translationof Fixed vertical spacing \paper variables
-@menu
-* Vertical dimensions::
-* Horizontal dimensions::
-* Other layout variables::
-@end menu
+@warning{Algunas dimensiones de @code{@bs{}paper} se escalan
+automáticamente al tamaño del papel, lo que puede llevar a un
+comportamiento no esperado. Véase @ref{Escalado automático al tamaño
+del papel}.}
+Los valores predeterminados (previos al escalado) están definidos en
+el archivo @file{ly/paper-defaults-init.ly}.
-@node Vertical dimensions
-@unnumberedsubsubsec Vertical dimensions
+@table @code
+@item paper-height (altura del papel)
+@funindex paper-height
-Estas variables se utilizan para establecer las diferentes dimensiones
-verticales de la página:
+Altura de la página, no fijada de forma predeterminada. Observe que
+el escalado automático de algunas dimensiones verticales no resulta
+afectado por esto.
-@funindex \paper
+@item top-margin (margen superior)
+@funindex top-margin
-@table @code
+Margen entre el extremo superior de la página y la parte superior de
+la zona imprimible. Si se modifica el tamaño del papel, el valor
+predeterminado de esta dimensión se escala de acuerdo con ello.
-@item after-title-space
-@funindex after-title-space
+@item bottom-margin (margen inferior)
+@funindex bottom-margin
-Espacio entre el título y el primer sistema.
-Predeterminado: @code{5\mm}.
+Margen entre la parte inferior de la zona imprimible y el extremo
+inferior de la página. Si se modifica el tamaño del papel, se escala
+de acuerdo con ello el valor predeterminado de esta dimensión.
-@item before-title-space
-@funindex before-title-space
+@item ragged-bottom (sin justificar por abajo)
+@funindex ragged-bottom
-Distancia entre el último sistema de la pieza anterior y el título de
-la siguiente. Predeterminado: @code{10\mm}.
+Si se fija al valor verdadero, los sistemas no se reparten
+verticalmente hasta abajo de la página. Esto no afecta a la última
+página. Se debe fijar a verdadero para piezas que sólo tienen dos o
+tres sistemas por página, como por ejemplo las partituras orquestales.
-@item between-system-padding
-@funindex between-system-padding
+@item ragged-last-bottom (sin justificar la última por abajo)
+@funindex ragged-last-bottom
-Distancia mínima que se deja siempre entre el símbolo más bajo de un
-sistema y el más alto del siguiente. Predeterminado: @code{4\mm}.
+Si se establece al valor falso, los sistemas se reparten verticalmente
+hasta abajo de la última página. Las piezas que llenan sobradamente
+dos o más páginas deben tener este valor fijado a falso. También
+afecta a la última página de las partes de libro, es decir, partes de
+un libro creadas con bloques @code{\bookpart}.
-El aumento de este valor separa más los sistemas cuyas cajas
-circundantes casi se tocan.
+@end table
-@item between-system-space
-@funindex between-system-space
+@seealso
+Referencia de la notación:
+@ref{Escalado automático al tamaño del papel}.
-Distancia entre los sistemas. Es la distancia ideal desde el centro
-del pentagrama inferior de un sistema hasta el centro del pentagrama
-superior del sistema siguiente. Predeterminado: @code{20\mm}.
+Archivos de inicio:
+@file{ly/paper-defaults-init.ly}.
-El aumento de este valor da a la página un aspecto más regular a costa
-de utilizar más espacio vertical.
+Fragmentos de código:
+@rlsr{Spacing}.
-@item between-title-space
-@funindex between-title-space
+@knownissues
+Los títulos (extraídos del bloque @code{\header}) se tratan como
+sistemas, así pues @code{ragged-bottom} y @code{ragged-last-bottom}
+aumentan la separación entre los títulos y el primer sistema de la
+partitura.
+
+Los tamaños de papel definidos explícitamente
+sobreescriben cualquier ajuste de los márgenes
+superior o inferior definidos por el usuario.
+
+
+@node Variables de espaciado de \paper verticales flexibles
+@subsection Variables de espaciado de @code{\paper} verticales flexibles
+@translationof Flexible vertical spacing \paper variables
+
+En casi todos los casos es preferible que las distancias verticales
+entre ciertos elementos (como márgenes, títulos, sistemas y las
+distintas partituras) sean flexibles, de manera que se amplíen y
+compriman adecuadamente dependiendo de la situación. Están
+disponibles un cierto número de variables del bloque @code{\paper}
+(relacionadas más abajo) para realizar un ajuste fino del
+comportamiento de estas dimensiones frente a su ampliación o
+compresión.
+
+Observe que las variables de @code{\paper} que se estudian en esta
+sección no controlan el espaciado de los pentagramas que están dentro
+de los sistemas individuales. El espaciado dentro de los sistemas se
+controla por medio de propiedades de grob, con ajustes que se escriben
+normalmente dentro de un bloque @code{\score} o @code{\layout}, y no
+dentro del bloque @code{\paper}.
+Véase @ref{Espaciado vertical flexible dentro de los sistemas}.
-Distancia entre títulos consecutivos (p.ej., el título del libro y el
-título de una pieza). Predeterminado: @code{2\mm}.
+@menu
+* Estructura de las listas-A de espaciado vertical flexible::
+* Lista de variables de espaciado de \paper verticales flexibles::
+@end menu
-@item bottom-margin
-@funindex bottom-margin
-Margen entre el pie de página y la parte inferior del papel.
-Predeterminado: @code{6\mm}.
+@node Estructura de las listas-A de espaciado vertical flexible
+@unnumberedsubsubsec Estructura de las listas-A de espaciado vertical flexible
+@translationof Structure of flexible vertical spacing alists
-@item foot-separation
-@funindex foot-separation
+Cada una de las variables de espaciado de @code{\paper} flexibles es
+una lista-A (lista asociativa) que contiene cuatro @emph{claves}:
-Distancia entre el sistema situado más abajo y el pie de página.
-Predeterminado: @code{4\mm}.
+@itemize
-@item head-separation
-@funindex head-separation
+@item
+@code{basic-distance} (distancia básica):
+distancia vertical, medida en espacios de pentagrama, entre los
+@emph{puntos de referencia} de los dos elementos, cuando no resulte
+ninguna colisión, y no se produzca ninguna ampliación o compresión.
+El punto de referencia de un elemento de marcado (de título o del
+nivel jerárquico superior) es su punto más alto, y el punto de
+referencia de un sistema es el centro vertical del @code{StaffSymbol}
+más cercano (incluso si se trata de una línea que no es un pentagrama,
+como un contexto @code{Lyrics}). Los valores de @code{distancia básica} menores
+de @code{padding} o de @code{minimum-distance} no son significativos,
+porque la distancia resultante nunca será menor de @code{padding} o de
+@code{minimum-distance}.
-Distancia entre el sistema situado más arriba y el encabezamiento de
-la página. Predeterminado: @code{4\mm}.
+@item
+@code{minimum-distance} (distancia mínima):
+la distancia vertical mínima permitida, medida en espacios de
+pentagrama, entre los puntos de referencia de los dos elementos,
+cuando se produce una compresión. Los valores de
+@code{minimum-distance} menores de @code{padding} no son
+significativos, porque la distancia resultante nunca será menor de
+@code{padding}.
-@item page-top-space
-@funindex page-top-space
+@c TODO: explain skylines somewhere and xref to it from here.
-Distancia desde la parte alta del área imprimible hasta el centro del
-primer pentagrama. Esto sólo funciona para pentagramas con una
-anchura vertical pequeña. Los pentagramas grandes se establecen con
-la parte alta de su caja circundante alineada a la parte alta del área
-imprimible. Predeterminado: @code{12\mm}.
+@item
+@code{padding} (relleno):
+mínimo espacio vertical vacío necesario entre los rectángulos
+circundantes (o las líneas de horizonte) de los dos elementos,
+medido en espacios de pentagrama.
-@item paper-height
-@funindex paper-height
+@item
+@code{stretchability} (ampliabilidad):
+medida sin unidades de la propensión relativa de esta dimensión a
+ampliarse. Si es cero, la distancia no se ampliará (a no ser que
+resultasen colisiones). Si es positiva, la significación del valor de
+ampliabilidad de una dimensión concreta depende solamente de su
+relación con los valores de @code{stretchability} de las otras
+dimensiones. Por ejemplo, si una dimensión tiene el doble de
+@code{stretchability} que otra, se ampliará con el doble de facilidad.
+Los valores deben ser no negativos y finitos. El valor @code{+inf.0}
+desencadena un error de programación y se ignora, pero se puede usar
+@code{1.0e7} para un muelle casi infinitamente ampliable. Si no se
+fija un valor, el valor predeterminado se establece a @code{basic-distance}.
+Observe que la propensión de la dimensión a @emph{comprimirse} no se
+puede establecer directamente por el usuario y es igual a
+(@code{basic-distance}@tie{}@minus{}@tie{}@code{minimum-distance}).
-Altura de la página. Predeterminado: altura del tamaño actual del
-papel. Para ver más detalles, consulte @ref{Paper size}.
+@end itemize
-@item top-margin
-@funindex top-margin
+Si una página tiene un margen inferior no justificado, la distancia
+resultante es la mayor de:
-Margen entre el encabezamiento y la parte alta del papel.
-Predeterminado: @code{5\mm}.
+@itemize
-@end table
+@item
+@code{basic-distance},
+@item
+@code{minimum-distance}, y
-@snippets
+@item
+@code{padding} más la menor distancia necesaria
+para eliminar las colisiones.
-El encabezamiento y el pie se crean por parte de las funciones
-@code{make-footer} y @code{make-header}, definidas dentro de
-@code{\paper}. Las implementaciones predeterminadas están en
-@file{ly/paper-defaults.ly} y en @file{ly/titling-init.ly}.
+@end itemize
-El diseño de la página en sí está realizado por dos funciones dentro
-del bloque @code{\paper}, @code{page-music-height} y
-@code{page-make-stencil}. El primero informa al algoritmo de saltos
-de línea de la cantidad de espacio que está disponible en una página,
-y el último crea la propia página dado el sistema que poner sobre
-ella.
+Para partituras de varias páginas con la parte inferior
+no justificada en la última página, ésta usará el mismo
+espaciado que la página anterior
+siempre y cuando haya espacio suficiente para ello.
-Se pueden definir valores del bloque @code{\paper} en Scheme. En tal
-caso, @code{mm}, @code{in}, @code{pt}, y @code{cm} son variables que
-están definidas en @file{paper-defaults.ly} con valores en milímetros.
-Por ello el valor 2 cm se debe multiplicar en el siguiente ejemplo:
+Los métodos específicos para la modificación de las listas-A se
+estudian en @ref{Modificación de las listas-A}. El siguiente ejemplo
+muestra las dos formas en que pueden modificarse estas listas-A. La
+primera declaración actualiza un par clave-valor individualmente, y la
+segunda redefine la variable completamente:
@example
\paper @{
- #(define bottom-margin (* 2 cm))
+ system-system-spacing #'basic-distance = #8
+ score-system-spacing =
+ #'((basic-distance . 12)
+ (minimum-distance . 6)
+ (padding . 1)
+ (stretchability . 12))
@}
@end example
-Ejemplo:
+@node Lista de variables de espaciado de \paper verticales flexibles
+@unnumberedsubsubsec Lista de variables de espaciado de @code{\paper} verticales flexibles
+@translationof List of flexible vertical spacing \paper variables
-@example
-\paper@{
- paper-width = 2\cm
- top-margin = 3\cm
- bottom-margin = 3\cm
- ragged-last-bottom = ##t
-@}
-@end example
+Los nombres de estas variables siguen el formato
+@code{@var{superior}-@var{inferior}-spacing}, donde
+@code{@var{superior}} e @code{@var{inferior}} son los elementos que
+van a ser espaciados. Cada distancia se mide entre los puntos de
+referencia de los dos elementos (véase más arriba la descripción de la
+estructura de la lista-A). Observe que en estos nombres de variable,
+el término @q{@code{markup}} se refiere tanto a @emph{elementos de
+marcado de título} (@code{bookTitleMarkup} o @code{scoreTitleMarkup})
+como a @emph{elementos de marcado del nivel superior} (véase
+@ref{Estructura del archivo}). Todas las distancias se miden en
+espacios de pentagrama.
-Este segundo ejemplo centra los números de página en la parte baja del
-papel.
+Los ajustes predeterminados están definidos en el archivo
+@file{ly/paper-defaults-init.ly}.
-@example
-\paper @{
- print-page-number = ##t
- print-first-page-number = ##t
- oddHeaderMarkup = \markup \fill-line @{ " " @}
- evenHeaderMarkup = \markup \fill-line @{ " " @}
- oddFooterMarkup = \markup @{ \fill-line @{
- \bold \fontsize #3 \on-the-fly #print-page-number-check-first
- \fromproperty #'page:page-number-string @} @}
- evenFooterMarkup = \markup @{ \fill-line @{
- \bold \fontsize #3 \on-the-fly #print-page-number-check-first
- \fromproperty #'page:page-number-string @} @}
-@}
-@end example
+@c TODO: Where do headers/footers fit in? -mp
+
+@table @code
+@item markup-system-spacing
+@funindex markup-system-spacing
+
+distancia entre un elemento de marcado (de título o del nivel
+superior) y el sistema que le sigue.
+
+@item score-markup-spacing
+@funindex score-markup-spacing
+
+distancia entre el último sistema de una partitura y el elemento de
+marcado (de título o del nivel superior) que le sigue.
+
+@item score-system-spacing
+@funindex score-system-spacing
+
+distancia entre el último sistema de una partitura y el primer sistema
+de la partitura que le sigue, cuando no existe ningún elemento de
+marcado (de título o del nivel superior) entre ellos.
+
+@item system-system-spacing
+@funindex system-system-spacing
+
+distancia entre dos sistemas dentro de la misma partitura.
+@item markup-markup-spacing
+@funindex markup-markup-spacing
+
+distancia entre dos elementos de marcado (de título o del nivel
+superior).
+
+@item last-bottom-spacing
+@funindex last-bottom-spacing
+
+distancia desde el último sistema o elemento de marcado del nivel
+superior en una página, hasta la parte inferior de la zona imprimible
+(es decir, el extremo superior del margen inferior).
+
+@item top-system-spacing
+@funindex top-system-spacing
+
+distancia desde la parte superior de la zona imprimible (es decir, el
+extremo inferior del margen superior) hasta el primer sistema de una
+página, cuando no hay ningún elemento de marcado (de título o del
+nivel superior) entre los dos.
+
+@item top-markup-spacing
+@funindex top-markup-spacing
+
+distancia desde el extremo superior de la zona imprimible (es decir,
+el extremo inferior del margen superior) hasta el primer elemento de
+marcado (de título o del nivel superior) sobre una página, cuando no
+hay ningún sistema entre los dos.
+@end table
@seealso
Referencia de la notación:
-@ref{Vertical spacing between systems}.
+@ref{Espaciado vertical flexible dentro de los sistemas}.
+
+Archivos de inicio:
+@file{ly/paper-defaults-init.ly}.
Fragmentos de código:
@rlsr{Spacing}.
-@node Horizontal dimensions
-@unnumberedsubsubsec Horizontal dimensions
+@node Variables de espaciado de \paper horizontales
+@subsection Variables de espaciado de \paper horizontales
+@translationof Horizontal spacing \paper variables
+
+@warning{Algunas dimensiones de @code{@bs{}paper} se escalan
+automáticamente al tamaño del papel, lo que puede dar lugar a un
+comportamiento distinto al esperado. Véase
+@ref{Escalado automático al tamaño del papel}.}
+
+@menu
+* Variables de \paper para la anchura y los márgenes::
+* Variables de \paper para el modo de doble cara::
+* Variables de \paper para desplazamientos y sangrados::
+@end menu
+
-@warning{Si se establece @code{paper-width} manualmente,
-@code{line-width}, @code{left-margin}, @code{indent} y
-@code{short-indent} pueden necesitar ajustarse también.}
+@node Variables de \paper para la anchura y los márgenes
+@unnumberedsubsubsec Variables de @code{\paper} para la anchura y los márgenes
+@translationof \paper variables for widths and margins
-Existe un cierto número de variables que determinan las dimensiones
-horizontales de una página:
+Los valores predeterminados (antes del escalado) que no están
+relacionados aquí se encuentran definidos en el archivo
+@file{ly/paper-defaults-init.ly}.
@table @code
-@item horizontal-shift
-@funindex horizontal-shift
+@item paper-width
+@funindex paper-width
-Medida en que todos los sistemas (incluidos los títulos de cabecera y
-los separadores de sistemas) se desplazan a la derecha.
-Predeterminado: @code{0.0}.
+Anchura de la página, sin fijar de forma predeterminada. Aunque
+@code{paper-width} no tiene ningún efecto sobre el escalado automático
+de algunas dimensiones horizontales, sí influye sobre la variable
+@code{line-width}. Si están establecidas las dos variables
+@code{paper-width} y @code{line-width}, entonces también se actualizan
+@code{left-margin} y @code{right-margin}. Véase también
+@code{check-consistency}.
-@item indent
-@funindex indent
+@item line-width
+@funindex line-width
-Nivel de sangrado para el primer sistema de una partitura.
-Predeterminado: @code{paper-width} dividido por @code{14}, tal y como
-viene determinado por @code{set-default-paper-size} o
-@code{set-paper-size}.
+Dimensiones horizontales de las líneas del pentagrama en los sistemas
+sin sangrado y justificados, igual a
+@code{(paper-width@tie{}@minus{}@tie{}left-margin@tie{}@minus{}@tie{}right-margin)}
+cuando está sin fijar. Si @code{line-width} está fijado, y tanto
+@code{left-margin} como @code{right-margin} están sin fijar, entonces
+los márgenes se actualizan para centrar los sistemas automáticamente
+sobre la página. Véase también @code{check-consistency}.
+Esta variable también se puede fijar dentro de un bloque @code{\layout}.
@item left-margin
@funindex left-margin
-El margen entre el límite izquierdo del papel y el comienzo de los
-sistemas. Predeterminado: @code{10\mm}, tal y como se define por
-parte de @code{set-default-paper-size} o de @code{set-paper-size}.
+Margen entre el extremos izquierdo de la página y el comienzo de las
+líneas del pentagrama en los sistemas sin sangrado. Si el tamaño del
+papel se modifica, el valor predeterminado de esta dimensión se escala
+de acuerdo con ello. Si no se fija el valor de @code{left-margin}, y
+tanto @code{line-width} como @code{right-margin} están fijados,
+entonces se establece el valor de @code{left-margin} a
+@code{(paper-width@tie{}@minus{}@tie{}line-width@tie{}@minus{}@tie{}right-margin)}.
+Si solamente está fijado @code{line-width}, entonces los dos márgenes
+se establecen a
+@code{((paper-width@tie{}@minus{}@tie{}line-width)@tie{}/@tie{}2)}, y
+como consecuencia los sistemas se centran sobre la página. Véase
+también @code{check-consistency}.
+
+@item right-margin
+@funindex right-margin
+
+Margen entre el extremo derecho de la página y el final de las líneas
+del pentagrama en sistemas justificados. Si el tamaño de la página se
+modifica, el valor predeterminado de esta dimensión se escala de
+acuerdo con ello. Si @code{right-margin} está sin fijar, y tanto
+@code{line-width} como @code{left-margin} están fijados, el valor de
+@code{right-margin} se establece a
+@code{(paper-width@tie{}@minus{}@tie{}line-width@tie{}@minus{}@tie{}left-margin)}.
+Si solamente está fijado @code{line-width}, los dos márgenes se
+establecen a
+@code{((paper-width@tie{}@minus{}@tie{}line-width)@tie{}/@tie{}2)}, y
+como consecuencia los sistemas aparecen centrados sobre la página.
+Véase también @code{check-consistency}.
+
+@item check-consistency
+@funindex check-consistency
+
+Si se establece al valor verdadero, se imprime una advertencia en caso
+de que la suma de @code{left-margin}, @code{line-width} y
+@code{right-margin} no coincida exactamente con el valor de
+@code{paper-width}, y se sustituye cada uno de estos valores (excepto
+@code{paper-width}) con su valor predeterminado (escalado al tamaño
+del papel si es necesario). Si está fijado al valor falso, se ignora
+cualquier inconsistencia y se permite que los sistemas se salgan del
+borde del papel.
-@item line-width
-@funindex line-width
+@item ragged-right
+@funindex ragged-right
-Ancho de los sistemas. Predeterminado: @code{paper-width} menos
-@code{20\mm}, como viene determinado por @code{set-default-paper-size}
-o por @code{set-paper-size}.
+Si está fijado al valor verdadero, los sistemas no cubren el ancho de
+la línea. En lugar de ello, los sistemas finalizan en su longitud
+horizontal natural. Valor predeterminado: @code{#t} para las
+partituras con un solo sistema, y @code{#f} para partituras que tienen
+dos o más sistemas. Esta variable también se puede establecer dentro
+de un bloque @code{\layout}.
+
+@item ragged-last
+@funindex ragged-last
+
+Si está fijado al valor verdadero, el último sistema de la partitura
+no llena toda la anchura de la línea. En lugar de ello, el último
+sistema finaliza en su longitud horizontal natural. Valor
+predeterminado: @code{#f}. Esta variable también puede ajustarse
+dentro de un bloque @code{\layout}.
+
+@end table
+
+@seealso
+Referencia de la notación:
+@ref{Escalado automático al tamaño del papel}.
+
+Archivos de inicio:
+@file{ly/paper-defaults-init.ly}.
+
+@knownissues
+Los tamaños de papel definidos explícitamente
+sobreescriben cualquier ajuste de los márgenes
+izquierdo o derecho definidos por el usuario.
-@item paper-width
-@funindex paper-width
-Ancho de la página. Predeterminado: la anchura del tamaño actual del
-papel. Para ver más detalles, consulte @ref{Paper size}.
+@node Variables de \paper para el modo de doble cara
+@unnumberedsubsubsec Variables de @code{\paper} para el modo de doble cara
+@translationof \paper variables for two-sided mode
+
+Los valores predeterminados (antes del escalado) se definen en
+@file{ly/paper-defaults-init.ly}.
+
+@table @code
+
+@item two-sided
+@funindex two-sided
+
+@cindex encuadernación
+@cindex margen de encuadernación
+
+Si tiene el valor verdadero, utilizar @code{inner-margin},
+@code{outer-margin} y @code{binding-offset} para determinar los
+márgenes dependiendo de si el número de la página es par o impar.
+Esto sobreescribe a @code{left-margin} y a @code{right-margin}.
+
+@item inner-margin
+@funindex inner-margin
+
+Margen que todas las páginas tienen en el lado interno si forman parte
+de un libro. Si el tamaño del papel se modifica, el valor
+predeterminado de esta dimensión se escala de acuerdo con ello.
+Solamente funciona con @code{two-sided} fijado al valor verdadero.
+
+@item outer-margin
+@funindex outer-margin
+
+Margen que todas las páginas tienen en el lado externo si forman parte
+de un libro. Si el tamaño del papel se modifica, el valor
+predeterminado de esta dimensión se escala de acuerdo con ello.
+Solamente funciona con @code{two-sided} fijado al valor verdadero.
+
+@item binding-offset
+@funindex binding-offset
+
+Medida en que se aumenta @code{inner-margin} para asegurar que no se
+oculta nada a causa de la encuadernación. Si el tamaño del papel se
+modifica, el valor predeterminado de esta dimensión se escala de
+acuerdo con ello. Solamente funciona con @code{two-sided} fijado al
+valor verdadero.
+
+@end table
+
+@seealso
+Referencia de la notación:
+@ref{Escalado automático al tamaño del papel}.
+
+Archivos de inicio:
+@file{ly/paper-defaults-init.ly}.
+
+
+@node Variables de \paper para desplazamientos y sangrados
+@unnumberedsubsubsec Variables de @code{\paper} para desplazamientos y sangrados
+@translationof \paper variables for shifts and indents
+
+Los valores predeterminados (antes del escalado) que no se relacionan
+aquí están definidos en el archivo @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
+
+Medida en que todos los sistemas (incluidos los títulos de cabecera y
+los separadores de sistemas) se desplazan a la derecha.
+Predeterminado: @code{0.0}.
+
+@item indent
+@funindex indent
+
+Nivel de sangrado para el primer sistema de una partitura. Si se
+modifica el tamaño del papel, el valor predeterminado de esta
+dimensión se escala de acuerdo con ello. Esta variable también se
+puede ajustar dentro de un bloque @code{\layout}.
@item short-indent
@funindex short-indent
Nivel de sangrado para todos los sistemas de una partitura excepto el
-primero. Predeterminado: @code{0}, como se determina en
-@code{set-default-paper-size} o en @code{set-paper-size}.
+primero. Si el tamaño del papel se modifica, el valor predeterminado
+de esta dimensión se escala de acuerdo con ello. Esta variable
+también se puede ajustar dentro de un bloque @code{\layout}.
@end table
-
@seealso
+Referencia de la notación:
+@ref{Escalado automático al tamaño del papel}.
+
+Archivos de inicio:
+@file{ly/paper-defaults-init.ly}.
+
Fragmentos de código:
@rlsr{Spacing}.
-@knownissues
+@node Otras variables de \paper
+@subsection Otras variables de @code{\paper}
+@translationof Other \paper variables
-La opción @code{right-margin} está definida pero no establece aún el
-margen derecho. El valor del margen derecho se debe definir ajustando
-los valores de @code{left-margin} y de @code{line-width}.
+@menu
+* Variables de \paper para los saltos de línea::
+* Variables de \paper para los saltos de página::
+* Variables de \paper para la numeración de las páginas::
+* Variables de \paper diversas::
+@end menu
-@node Other layout variables
-@unnumberedsubsubsec Other layout variables
+@node Variables de \paper para los saltos de línea
+@unnumberedsubsubsec Variables de @code{\paper} para los saltos de línea
+@translationof \paper variables for line breaking
-Estas variables se pueden usar para ajustar el diseño de la página en
-general.
+@c TODO: Mention that ly:optimal-breaking is on by default? -mp
@table @code
-@item auto-first-page-number
-@funindex auto-first-page-number
+@item max-systems-per-page
+@funindex max-systems-per-page
-El algoritmo de división de páginas está afectado por el hecho de que
-el número de la primera página sea par o impar. Si está establecido
-al valor verdadero, el algoritmo de división de páginas decide si
-comenzar con un número par o impar. Esto hace que el número de la
-primera página se quede como está, o que se aumente en una unidad.
-Predeterminado: @code{##f}.
+Número máximo de sistemas que se colocan sobre una página. Solo está
+contemplado por el algoritmo @code{ly:optimal-breaking}. Valor
+predeterminado: no fijado.
-@ignore
+@item min-systems-per-page
+@funindex min-systems-per-page
-FIXME: this variable is used, but I don't know what it does. -pm
-@item blank-after-score-page-force
-@funindex blank-after-score-page-force
+Número mínimo de sistemas que se colocan sobre una página. Puede
+causar que las páginas aparezcan atiborradas si el valor es demasiado
+grande En el momento actual solo está contemplado por el algoritmo
+@code{ly:optimal-breaking}. Valor predeterminado: no fijado.
-Default: @code{2}.
+@item systems-per-page
+@funindex systems-per-page
-@end ignore
+Número de sistemas que se deben colocar en cada página. En el momento
+actual solo está contemplado por el algoritmo
+@code{ly:optimal-breaking}. Valor predeterminado: no fijado.
-@item blank-last-page-force
-@funindex blank-last-page-force
+@item system-count
+@funindex system-count
-Penalización por terminar la partitura en una página de numeración
-impar. Predeterminado: @code{0}.
+Número de sistemas que utilizar para una partitura. Valor
+predeterminado: no fijado. Esta variables también se puede ajustar
+dentro de un bloque @code{\layout}.
-@item blank-page-force
-@funindex blank-page-force
+@end table
-Penalización por tener una página en blanco en medio de una partitura.
-Esto no se usa por parte de @code{ly:optimal-breaking} porque éste
-nunca considera la posibilidad de tener páginas en blanco en mitad de
-una partitura. Predeterminado: @code{5}.
+@seealso
+Referencia de la notación:
+@ref{Saltos de línea}.
-@item first-page-number
-@funindex first-page-number
-Valor del número de la primera página. Predeterminado: @code{#1}.
+@node Variables de \paper para los saltos de página
+@unnumberedsubsubsec Variables de @code{\paper} para los saltos de página
+@translationof \paper variables for page breaking
-@item max-systems-per-page
-Máximo número de sistemas que tendrán cabida en una página. Está
-contemplado por el momento solamente por parte del algoritmo
-@code{ly:optimal-breaking}. Predeterminado: no establecido.
+Los valores predeterminados que no están relacionados aquí, se definen
+en el archivo @file{ly/paper-defaults-init.ly}
-@item min-systems-per-page
-Mínimo número de sistemas que habrá en una página. Puede hacer que
-las páginas se llenen en exceso si se establece a un valor grande.
-Por el momento solamente está contemplado por parte del algoritmo
-@code{ly:optimal-breaking}. Predeterminado: no establecido.
+@table @code
-@item page-breaking-between-system-padding
-@funindex page-breaking-between-system-padding
+@item blank-after-score-page-penalty
+@funindex blank-after-score-page-penalty
-Engaña al divisor de páginas para que crea que
-@code{between-system-padding} está establecido a algo distinto de lo
-que está realmente. Por ejemplo, si esta variable se establece a algo
-mucho mayor que @code{between-system-padding}, entonces el divisor de
-páginas colocará menos sistemas en cada página. Predeterminado: no
-establecido.
+Penalización por tener una página vacía después del final de una
+partitura y antes de la siguiente. De forma predeterminada, es menor
+que @code{blank-page-penalty}, de manera que preferimos páginas vacías
+después de las partituras que páginas vacías dentro de una partitura.
+
+@item blank-last-page-penalty
+@funindex blank-last-page-penalty
+
+Penalización por terminar la partitura sobre una página impar.
+
+@item blank-page-penalty
+@funindex blank-page-penalty
+
+Penalización por tener una página vacía en medio de una partitura. No
+se utiliza por parte de @code{ly:optimal-breaking} porque nunca
+considera páginas vacías en mitad de una partitura.
+
+@item page-breaking
+@funindex page-breaking
+
+Algoritmo de saltos de página que utilizar. Se puede elegir entre
+@code{ly:minimal-breaking}, @code{ly:page-turn-breaking} o
+@code{ly:optimal-breaking}.
+
+@item page-breaking-system-system-spacing
+@funindex page-breaking-system-system-spacing
+
+Engaña a la parte del programa encargada de los saltos de página para
+que piense que @code{system-system-spacing} está establecido a un
+valor distinto al que tiene realmente. Por ejemplo, si
+@code{page-breaking-system-system-spacing #'padding} está establecido
+a algo que es mucho mayor que @code{system-system-spacing #'padding},
+entonces el divisor de páginas pone menos sistemas en cada página.
+Valor predeterminado: sin ajustar.
@item page-count
@funindex page-count
-Número de páginas que usar para una partitura. Predeterminado: sin
-fijar.
+Número de páginas que utilizar en una partitura, no ajustado de forma
+predeterminada.
-@item page-limit-inter-system-space
-@funindex page-limit-inter-system-space
+@end table
-Si tiene un valor verdadero, limita el espacio entre los sistemas de
-una página en la que sobra mucho espacio. Predeterminado: @code{##f}.
-Para ver más detalles, consulte @ref{Vertical spacing between
-systems}.
+@seealso
+Referencia de la notación:
+@ref{Saltos de página},
+@ref{Saltos de página óptimos},
+@ref{Paso de página óptimo},
+@ref{Saltos de página mínimos},
+@ref{Saltos de página de una línea}.
-@item page-limit-inter-system-space-factor
-@funindex page-limit-inter-system-space-factor
+Archivos de inicio:
+@file{ly/paper-defaults-init.ly}.
-Factor usado por @code{page-limit-inter-system-space}.
-Predeterminado: @code{1.4}. Para ver más detalles, consulte
-@ref{Vertical spacing between systems}.
-@item page-spacing-weight
-@funindex page-spacing-weight
+@node Variables de \paper para la numeración de las páginas
+@unnumberedsubsubsec Variables de @code{\paper} para la numeración de las páginas
+@translationof \paper variables for page numbering
-Importancia relativa del espacio (vertical) de las páginas y el
-espaciado (horizontal) de las líneas. Los valores altos hacen que el
-espaciado de la página tenga más importancia. Predeterminado:
-@code{#10}.
+Los valores predeterminados que no se relacionan aquí están definidos
+en el archivo @file{ly/paper-defaults-init.ly}
-@item print-all-headers
-@funindex print-all-headers
+@table @code
-Si está establecido a un valor verdadero, imprime todas las cabeceras
-para cada una de las @code{\score} en la salida impresa. Normalmente
-sólo se imprimen las variables de encabezamiento de pieza y opus.
-Predeterminado: @code{##f}.
+@cindex números de página, automáticos
+@item auto-first-page-number
+@funindex auto-first-page-number
+
+El algoritmo de división de páginas está afectado por el hecho de que
+el número de la primera página sea par o impar. Si está establecido
+al valor verdadero, el algoritmo de división de páginas decide si
+comenzar con un número par o impar. Esto hace que el número de la
+primera página se quede como está, o que se aumente en una unidad.
+Predeterminado: @code{#f}.
+
+@cindex números de página, especificar el primero
+@item first-page-number
+@funindex first-page-number
+
+Valor del número de pátina en la primera página.
@item print-first-page-number
@funindex print-first-page-number
-Si está establecido a un valor verdadero, se imprime un número de
-página en la primera página. Predeterminado: @code{##f}.
+Si está fijado a verdadero, se imprime un número de página en la
+primera página.
+@cindex números de página, suprimir
@item print-page-number
@funindex print-page-number
-Si está establecido a un valor falso, no se imprimen los números de
-página. Predeterminado: @code{##t}.
-
-@item ragged-bottom
-@funindex ragged-bottom
-
-Si está establecido a un valor verdadero, los sistemas no ocuparán
-verticalmente toda la altura de la página. Esto no afecta a la última
-página. Predeterminado: @code{##f}.
+Si está fijado a falso, no se imprimen los números de página.
-Esto se debería establecer al valor verdadero para piezas que tienen
-sólo dos o tres sistemas por página, por ejemplo partituras
-orquestales.
+@end table
-@item ragged-last
-@funindex ragged-last
+@seealso
+Archivos de inicio:
+@file{ly/paper-defaults-init.ly}.
-Si está establecido a un valor verdadero, el último sistema de la
-partitura no llenará la anchura de la línea. En su lugar, el último
-sistema termina en su longitud horizontal natural. Predeterminado:
-@code{##f}.
+@knownissues
+Los números de página impares siempre están a la derecha.
+Si quiere que la música comience en la página 1 debe haber
+una página en blanco en el reverso de la página de cubierta
+de manera que la página 1 esté en el lado derecho.
-@item ragged-last-bottom
-@funindex ragged-last-bottom
-Si está establecido a un valor falso, los sistemas se repartirán
-verticalmente por toda la última página. Predeterminado: @code{##t}.
+@node Variables de \paper diversas
+@unnumberedsubsubsec Variables de @code{\paper} diversas
+@translationof Miscellaneous \paper variables
-Las piezas que llenan generosamente dos o más páginas deberían tener
-esto establecido al valor verdadero.
+@table @code
-También afecta a la última página de las partes de libro, es decir,
-partes de un libro que se han creado con bloques @code{\bookpart}.
+@item page-spacing-weight
+@funindex page-spacing-weight
-@item ragged-right
-@funindex ragged-right
+Importancia relativa del espacio (vertical) de las páginas y el
+espaciado (horizontal) de las líneas. Los valores altos hacen que el
+espaciado de la página tenga más importancia. Predeterminado:
+@code{10}.
-Si está establecido a un valor verdadero, los sistemas no llenarán el
-ancho de línea disponible. En su lugar, los sistemas terminan en su
-longitud horizontal natural. Predeterminado: @code{##f}.
+@item print-all-headers
+@funindex print-all-headers
-Si la partitura sólo tiene un sistema, el valor predeterminado es
-@code{##t}.
+Si está fijado a verdadero, imprime todos los encabezamientos para
+cada una de las partituras @code{\score} de la salida. Normalmente
+sólo se imprimen las variables de encabezamiento @code{piece} y
+@code{opus}. Valor predeterminado: @code{#f}.
@item system-separator-markup
@funindex system-separator-markup
Objeto de marcado que se inserta entre los sistemas. Se suele usar
-para partituras orquestales. Predeterminado: sin establecer.
+para partituras orquestales. Predeterminado: sin establecer. El
+elemento de marcado @code{\slashSeparator}, definido en el archivo
+@file{ly/titling-init.ly}, se aporta como un valor predeterminado
+adecuado, por ejemplo:
-Se ofrece la instrucción de marcado @code{\slashSeparator} como un
-valor predeterminado apropiado, por ejemplo
+@lilypond[quote,verbatim,noragged-right,line-width=30\mm]
+#(set-default-paper-size "a8")
-@lilypond[quote,ragged-right]
-#(set-default-paper-size "a6" 'landscape)
\book {
- \score {
- \relative { c1 \break c1 }
- }
\paper {
system-separator-markup = \slashSeparator
}
+ \header {
+ tagline = ##f
+ }
+ \score {
+ \relative c'' { c1 \break c1 \break c1 }
+ }
}
@end lilypond
-@item system-count
-@funindex system-count
+@end table
+
+@seealso
+Archivos de inicio:
+@file{ly/titling-init.ly}.
+
+Fragmentos de código:
+@rlsr{Spacing}.
+
+@knownissues
+El encabezamiento de página predeterminado pone el número de página y
+el campo @code{instrument} del bloque @code{\header} sobre la misma
+línea.
+
+
+@node Disposición de la partitura
+@section Disposición de la partitura
+@translationof Score layout
+
+Esta sección trata de las opciones de disposición de la partitura para
+el bloque @code{\layout}.
+
+@menu
+* El bloque \layout::
+* Establecer el tamaño del pentagrama::
+@end menu
+
+
+@node El bloque \layout
+@subsection El bloque @code{\layout}
+@translationof The \layout block
+
+@funindex \layout
+
+Así como el bloque @code{\paper} contiene ajustes relativos al
+formateo de la página para todo el documento, el bloque @code{\layout}
+contiene ajustes para la disposición específica de las partituras.
+Para fijar las opciones de disposición de partituras de forma global,
+escríbalas en un bloque @code{\layout} del nivel jerárquico superior.
+Para fijar opciones de disposición para una partitura individual
+escríbalas dentro de un bloque @code{\layout} dentro del bloque
+@code{\score}, después de la música. Entre los ajustes que pueden
+aparecer en un bloque @code{\layout} se encuentran los siguientes:
+
+@itemize
+@item la función de Scheme @code{layout-set-staff-size},
+@item las modificaciones de contexto de los bloques @code{\context}, y
+@item las variables de @code{\paper} que afectan a la disposición de la partitura.
+@end itemize
+
+La función @code{layout-set-staff-size} se estudia en la sección
+siguiente, @ref{Establecer el tamaño del pentagrama}. Las
+modificaciones de contexto se estudian en un capítulo distinto; véase
+@ref{Modificar los complementos (plug-ins) de contexto} y
+@ref{Cambiar los valores por omisión de los contextos}. Las variables de
+@code{\paper} que pueden aparecer dentro de un bloque @code{\layout}
+son:
+
+@itemize
+
+@item
+@code{line-width}, @code{ragged-right} y @code{ragged-last}
+(véase @ref{Variables de \paper para la anchura y los márgenes})
+
+@item
+@code{indent} y @code{short-indent}
+(véase @ref{Variables de \paper para desplazamientos y sangrados})
+
+@item
+@code{system-count}
+(véase @ref{Variables de \paper para los saltos de línea})
+
+@end itemize
+
+He aquí un ejemplo de un bloque @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
+
+Se pueden escribir varios bloques @code{\layout} como expresiones del
+nivel superior. Esto puede ser útil, por ejemplo, si hay distintos
+ajustes almacenados en diversos archivos y se incluyen opcionalmente.
+Internamente, cuando se evalúa un bloque @code{\layout}, se hace una
+copia de la configuración de @code{\layout} actual, y después se
+aplican los cambios definidos en el bloque; el resultado se guarda
+como la nueva configuración actual. Desde el punto de vista del
+usuario, los bloques @code{\layout} se combinan, pero en situaciones
+de conflicto (cuando se cambia la misma propiedad en diferentes
+bloques) las definiciones más tarías toman precedencia.
+
+Por ejemplo: si este bloque:
+
+@example
+\layout @{
+ \context @{
+ \Voice
+ \override TextScript #'color = #magenta
+ \override Glissando #'thickness = #1.5
+ @}
+@}
+@end example
-Cantidad de sistemas que usar por parte de la partitura.
-Predeterminado: sin establecer.
+se coloca después del del ejemplo anterior, las sobreescrituras de
+@code{'padding} y de @code{'color} para @code{TextScript} se combinan,
+pero la última sobreescritura @code{'thickness} para @code{Glissando}
+sustituye (u oculta) a la anterior.
-@item systems-per-page
-@funindex systems-per-page
+Los bloques @code{\layout} se pueden asignar a variables para una
+reutilización posterior, pero la forma en que esto funciona es ligera
+y significativamente diferente del hecho de escribirlas literalmente.
-Número de sistemas que se deben colocar en cada página. Está
-contemplado solamente por parte del algoritmo
-@code{ly:optimal-breaking} por el momento. Predeterminado: no
-establecido.
+Si se define una variable de la siguiente manera:
-@end table
+@example
+variable_de_Layout = \layout @{
+ \context @{
+ \Voice
+ \override NoteHead #'font-size = #4
+ @}
+@}
+@end example
+guardará la configuración actual de @code{\layout} con la
+sobreescritura añadida de @code{NoteHead #'font-size}, pero esta
+combinación @emph{no} se guarda como la nueva configuración actual.
+Tenga en cuenta que la @q{configuración actual} se lee cuando la
+variable se define y no cuando se usa, de manera que el contenido de
+la variable depende de su posición dentro del código fuente.
-@seealso
-Fragmentos de código:
-@rlsr{Spacing}.
+La variable se puede entonces usar dentro de otro bloque
+@code{\layout}, por ejemplo:
+@example
+\layout @{
+ \variable_de_layout
+ \context @{
+ \Voice
+ \override NoteHead #'color = #red
+ @}
+@}
+@end example
-@knownissues
+Un bloque @code{\layout} que contiene una variable, como en el ejemplo
+anterior, @emph{no} copia la configuración actual, sino que en lugar
+de ello usa el contenido de @code{\variable_de_layout} como la
+configuración base para las adiciones posteriores. Esto significa que
+cualquier cambio definido entre la definición y el uso de la variable,
+se pierde.
-El encabezamiento de página predeterminado pone el número de página y
-el campo @code{instrument} del bloque @code{\header} sobre la misma
-línea.
+Si la @code{variable_de_layout} se define (o se incluye con
+@code{\include}) inmediatamente antes de que se utilice, su contenido
+es sencillamente la configuración en curso más las sobreescrituras que
+se hayan definido dentro de él. Así pues, en el ejemplo anterior que
+muestra el uso de @code{\variable_de_layout} el último bloque
+@code{\layout} consistiría en:
-Los títulos de cabecera (tomados de la sección @code{\header@{@}}) se
-tratan como un sistema, por lo que @code{ragged-bottom} y
-@code{ragged-last-bottom} añaden espacio entre los títulos y el primer
-sistema de la partitura.
+@example
+ TextScript #'padding = #1
+ TextScript #'color = #magenta
+ Glissando #'thickness = #1.5
+ NoteHead #' font-size = #4
+ NoteHead #' color = #red
+@end example
+más las sobreescrituras de @code{indent} y de @code{StaffGrouper}.
-@node Music layout
-@section Music layout
+Pero si la variable ya hubiera sido definida antes del primer bloque
+@code{\layout} la configuración actual contendría ahora solamente
-@menu
-* Setting the staff size::
-* Score layout::
-@end menu
+@example
+ NoteHead #' font-size= #4 % (escrita en la definición de la variable)
+ NoteHead #' color = #red % (añadida después del uso de la variable)
+@end example
+Si se planifica cuidadosamente, las variables de @code{\layout} pueden
+ser una herramienta valiosa para estructurar el diseño de la
+disposición de las fuentes, y tambiién para reiniciar la configuración
+de @code{\layout} a un estado conocido.
+
+@seealso
+Referencia de la notación:
+@ref{Cambiar los valores por omisión de los contextos}.
+
+Fragmentos de código:
+@rlsr{Spacing}.
-@node Setting the staff size
-@subsection Setting the staff size
-@cindex tipografía, establecer tamaño de
-@cindex pentagrama, establecer tamaño de
-@funindex layout file
+@node Establecer el tamaño del pentagrama
+@subsection Establecer el tamaño del pentagrama
+@translationof Setting the staff size
+
+@cindex tipografía, fijar el tamaño de
+@cindex pentagrama, fijar el tamaño de
+@funindex disposición, archivo de
El @strong{tamaño de pentagrama} predeterminado se establece en 20
puntos. Esto se puede modificar de dos maneras:
partitura, use
@example
\score@{
- ...
- \layout@{
- #(layout-set-staff-size 15)
+ @dots{}
+ \layout @{
+ #(layout-set-staff-size 15)
@}
@}
@end example
afinar el tamaño de los pentagramas individuales. Los tamaños de
pentagrama individuales están en relación al tamaño global.
-
@seealso
Referencia de la notación:
-@ref{Selecting notation font size}.
+@ref{Seleccionar el tamaño de la tipografía para la notación}.
Fragmentos de código:
@rlsr{Spacing}.
-
@knownissues
-
@code{layout-set-staff-size} no cambia la distancia entre las líneas
del pentagrama.
-@node Score layout
-@subsection Score layout
+@node Saltos
+@section Saltos
+@translationof Breaks
-@funindex \layout
+@menu
+* Saltos de línea::
+* Saltos de página::
+* Saltos de página óptimos::
+* Paso de página óptimo::
+* Saltos de página mínimos::
+* Saltos de página de una línea::
+* Saltos de línea explícitos::
+* Utilizar una voz adicional para los saltos de línea::
+@end menu
-Mientras que @code{\paper} contiene ajustes relativos al formato de
-página del documento completo, @code{\layout} contiene ajustes para la
-disposición específica de cada partitura.
-@example
-\layout @{
- indent = 2.0\cm
- \context @{ \Staff
- \override VerticalAxisGroup #'minimum-Y-extent = #'(-6 . 6)
- @}
- \context @{ \Voice
- \override TextScript #'padding = #1.0
- \override Glissando #'thickness = #3
- @}
-@}
-@end example
+@node Saltos de línea
+@subsection Saltos de línea
+@translationof Line breaking
+@cindex saltos de línea
+@cindex línea, saltos de
-@seealso
-Referencia de la notación:
-@ref{Changing context default settings}.
+Normalmente los saltos de línea se determinan automáticamente. Se
+eligen de forma que las líneas no aparezcan demasiado apretadas ni
+demasiado sueltas, y que las líneas consecutivas tengan una densidad
+similar.
-Fragmentos de código:
-@rlsr{Spacing}.
+Para forzar manualmente un salto de línea sobre la línea divisoria,
+utilice la instrucción @code{\break}:
+@lilypond[quote,ragged-right,relative=2,verbatim]
+c4 c c c | \break
+c4 c c c |
+@end lilypond
-@node Breaks
-@section Breaks
+De forma predeterminada se ignora cualquier @code{\break} en la mitad
+de un compás, y se imprime una advertencia. Para forzar un salto de
+línea en medio de un compás, añada una barra de compás invisible con
+@w{@samp{\bar ""}}:
-@menu
-* Line breaking::
-* Page breaking::
-* Optimal page breaking::
-* Optimal page turning::
-* Minimal page breaking::
-* Explicit breaks::
-* Using an extra voice for breaks::
-@end menu
+@lilypond[quote,ragged-right,relative=2,verbatim]
+c4 c c
+\bar "" \break
+c |
+c4 c c c |
+@end lilypond
+También se ignora un @code{\break} que se produce en la línea
+divisoria si el compás anterior termina en medio de una nota, como
+cuando un grupo de valoración especial inicia y termina en compases
+diferentes. Para permitir que las instrucciones @code{\break}
+funcionen en estas situaciones, elimine el grabador
+@code{Forbid_line_break_engraver} del contexto @code{Voice}. Observe
+que los saltos de línea forzados manualmente se deben añadir en
+paralelo con la música:
+
+@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
-@node Line breaking
-@subsection Line breaking
+De forma similar, los saltos de línea están normalmente prohibidos
+cuando hay barras de corchea que cruzan la línea divisoria. Se puede
+cambiar este comportamiento fijando @code{\override Beam #'breakable =
+##t}:
-@cindex saltos de línea
-@cindex línea, saltos de
+@lilypond[quote,ragged-right,relative=2,verbatim]
+\override Beam #'breakable = ##t
+c2. c8[ c | \break
+c8 c] c2. |
+@end lilypond
-Normalmente los saltos de línea se determinan automáticamente. Se
-eligen de forma que las líneas no aparezcan demasiado apretadas ni
-demasiado sueltas, y que las líneas consecutivas tengan una densidad
-similar. Ocasionalmente podemos querer sobreescribir los saltos
-automáticos; podemos hacerlo especificando @code{\break}. Esto fuerza
-un salto de línea en ese punto. Sin embargo, los saltos de línea sólo
-pueden suceder al final de los compases @q{completos}, es decir, donde
-no queda ninguna nota o grupo especial @q{colgando} por encima de la
-línea divisoria. Si queremos poner un salto de línea donde no hay
-línea divisoria, podemos forzar una barra de compás invisible
-introduciendo @code{\bar ""}, aunque de nuevo no deben quedar notas
-colgando en ninguno de los pentagramas en este punto, o se ignorarán.
-
-La instrucción opuesta, @code{\noBreak}, prohíbe un salto de línea en
+La instrucción @code{\noBreak}, prohíbe un salto de línea en
la barra divisoria en que se inserta.
Los ajustes más básicos que influyen sobre el espaciado de las líneas
@example
\layout @{
-indent = #0
-line-width = #150
-ragged-last = ##t
+ indent = 0\mm
+ line-width = 150\mm
+ ragged-last = ##t
@}
@end example
-
-
-@cindex regular line breaks
-@cindex four bar music.
+@cindex saltos de línea normales
+@cindex música de cuatro compases por línea
Para saltos de línea a intervalos regulares utilice @code{\break}
separado mediante desplazamientos con @code{\skip} y repetidos con
compases, y sólo en dichos lugares:
@example
-<< \repeat unfold 7 @{
- s1 \noBreak s1 \noBreak
- s1 \noBreak s1 \break @}
- @emph{the real music}
+<<
+ \repeat unfold 7 @{
+ s1 \noBreak s1 \noBreak
+ s1 \noBreak s1 \break
+ @}
+ @{ @var{la música real@dots{}} @}
>>
@end example
-@c TODO Check this
-Una configuración de división de líneas se puede guardar como archivo
-@code{.ly} automáticamente. Ello permite que alineaciones verticales
-se estiren para que encajen en las páginas durante una segunda
-ejecución del proceso de formateo. Esta posibilidad es bastante
-novedosa y difícil. Hay más detalles disponibles en @rlsr{Spacing}.
-
@predefined
@funindex \break
@code{\noBreak}.
@endpredefined
-
@seealso
-Referencia de funcionamiento interno:
-@rinternals{LineBreakEvent}.
+Referencia de la notación:
+@ref{Variables de \paper para los saltos de línea}.
Fragmentos de código:
@rlsr{Spacing}.
-
-@knownissues
-
-Sólo pueden ocurrir saltos de línea si hay una @q{buena} línea
-divisoria. Una nota colgando de una línea divisoria no es adecuada,
-como
-
-@lilypond[quote,ragged-right,relative=2,fragment,verbatim]
-c4 c2 << c2 {s4 \break } >> % this does nothing
-c2 c4 | % a break here would work
-c4 c2 c4 ~ \break % as does this break
-c4 c2 c4
-@end lilypond
-
-Esto se puede evitar eliminando el grabador
-@code{Forbid_line_break_engraver}. Observe que los saltos de línea
-forzados manualmente se tienen que añadir en paralelo con la música.
-
-@lilypond[quote,ragged-right,verbatim]
-\new Voice \with {
- \remove Forbid_line_break_engraver
-} {
- c4 c2 << c2 {s4 \break } >> % now the break is allowed
- c2 c4
-}
-@end lilypond
-
-De forma parecida, los saltos de línea están prohibidos normalmente
-cuando las barras cruzan a las líneas divisorias. Este comportamiento
-se puede modificar con el establecimiento de @code{\override Beam
-#'breakable = ##t}.
+Referencia de funcionamiento interno:
+@rinternals{LineBreakEvent}.
-@node Page breaking
-@subsection Page breaking
+@node Saltos de página
+@subsection Saltos de página
+@translationof Page breaking
Se puede sobreescribir el mecanismo predeterminado de salto de página
insertando instrucciones @code{\pageBreak} o @code{\noPageBreak}.
Hay ajustes análogos a @code{ragged-right} y @code{ragged-last} que
tienen el mismo efecto sobre el espaciado vertical:
@code{ragged-bottom} y @code{ragged-last-bottom}. Si están
-establecidos a @code{##t} los sistemas de todas las páginas o sólo de
+establecidos a @code{#t} los sistemas de todas las páginas o sólo de
la última página, respectivamente, no se verán justificados
-verticalmente.
-
-Para ver más detalles, consulte @ref{Vertical spacing}.
+verticalmente. Véase
+@ref{Variables de espaciado de \paper verticales fijas}.
Los saltos de página se calculan por medio de la función
@code{page-breaking}. LilyPond ofrece tres algoritmos para el cómputo
cambiar en el bloque @code{\paper}:
@example
-\paper@{
- #(define page-breaking ly:page-turn-breaking)
+\paper @{
+ page-breaking = #ly:page-turn-breaking
@}
@end example
-@c TODO Check this -td
-El antiguo algoritmo de división de páginas se llama
-@code{optimal-page-breaks}. Si tiene problemas con los nuevos
-divisores de página, puede habilitar el antiguo como forma de rodear
-el problema.
-
-
@funindex \bookpart
Cuando un libro tiene muchas partituras y páginas, puede ser difícil
\paper @{
%% En una parte que consiste en texto principalmente,
%% puede ser preferible ly:minimal-breaking
- #(define page-breaking ly:minimal-breaking)
+ page-breaking = #ly:minimal-breaking
@}
\markup @{ @dots{} @}
@dots{}
@}
@end example
-
@predefined
@funindex \pageBreak
@code{\pageBreak},
@code{\noPageBreak}.
@endpredefined
-
@seealso
+Referencia de la notación:
+@ref{Variables de \paper para los saltos de página}.
+
Fragmentos de código:
@rlsr{Spacing}.
-@node Optimal page breaking
-@subsection Optimal page breaking
+@node Saltos de página óptimos
+@subsection Saltos de página óptimos
+@translationof Optimal page breaking
@funindex ly:optimal-breaking
@code{ly:page-turn-breaking}, no tiene un concepto de los pasos de
página.
-
@seealso
Fragmentos de código:
@rlsr{Spacing}.
-@node Optimal page turning
-@subsection Optimal page turning
+@node Paso de página óptimo
+@subsection Paso de página óptimo
+@translationof Optimal page turning
@funindex ly:page-turn-breaking
Hay dos etapas en el uso de esta función de división de páginas. En
primer lugar debemos habilitarlo en el bloque @code{\paper}, como se
-explicó en @ref{Page breaking}. Entonces debemos decirle a la función
+explicó en @ref{Saltos de página}. Entonces debemos decirle a la función
dónde nos gustaría permitir los saltos de página.
Hay dos formas de conseguir la segunda tarea. Primero, podemos
@code{minimumPageTurnLength} para determinar qué longitud debe tener
una sección sin notas antes de que se considere la posibilidad de un
paso de página. El valor predeterminado para
-@code{minimumPageTurnLength} es @code{#(ly:make-moment 1 1)}. Si
+@code{minimumPageTurnLength} es @code{(ly:make-moment 1 1)}. Si
quiere inhabilitar las vueltas de página, puede establecerlo a algún
valor muy grande.
\new Staff \with @{ \consists "Page_turn_engraver" @}
@{
a4 b c d |
- R1 | % a page turn will be allowed here
+ R1 | % aquí se permite un salto de página
a4 b c d |
\set Staff.minimumPageTurnLength = #(ly:make-moment 5 2)
- R1 | % a page turn will not be allowed here
+ R1 | % aquí no se permite un salto de página
a4 b r2 |
- R1*2 | % a page turn will be allowed here
+ R1*2 | % aquí se permite un salto de página
a1
@}
@end example
el nivel más elevado del código, entre las partituras y los elementos
de marcado del nivel superior.
-
@predefined
@funindex \pageTurn
@code{\pageTurn},
@code{\allowPageTurn}.
@endpredefined
-
@seealso
Fragmentos de código:
@rlsr{Spacing}.
-
@knownissues
-
Sólo debería haber un grabador @code{Page_turn_engraver} dentro de una
partitura. Si hay más de uno, se interferirán entre sí.
-@node Minimal page breaking
-@subsection Minimal page breaking
+@node Saltos de página mínimos
+@subsection Saltos de página mínimos
+@translationof Minimal page breaking
@funindex ly:minimal-breaking
@example
\paper @{
- #(define page-breaking ly:minimal-breaking)
+ page-breaking = #ly:minimal-breaking
@}
@end example
-
@seealso
Fragmentos de código:
@rlsr{Spacing}.
+@node Saltos de página de una línea
+@subsection Saltos de página de una línea
+@translationof One-line page breaking
+
+@funindex ly:one-line-breaking
+
+La función @code{ly:one-line-breaking} es un algoritmo de saltos de
+página para uso especial que pone cada partitura en una página y en
+una sola línea. Esta función de salto de página no compone los
+títulos ni los márgenes; solamente se imprime la partitura.
-@node Explicit breaks
-@subsection Explicit breaks
+El ancho de la página se ajusta de forma que la partitura más larga
+quepa en una línea. Concretamente, las variables @code{paper-width},
+@code{line-width} y @code{indent} del bloque @code{\paper} se ignoran,
+aunque @code{left-margin} y @code{right-margin} aún se respetan. La
+altura de la página se deja sin cambios.
+
+@node Saltos de línea explícitos
+@subsection Saltos de línea explícitos
+@translationof Explicit breaks
Lily a veces rechaza las instrucciones @code{\break} y
@code{\pageBreak} explícitas. Hay dos instrucciones para
ragged-bottom = ##t
}
+music = \relative c'' { c8 c c c }
+
\score {
- \new Score \with {
- \override NonMusicalPaperColumn #'line-break-permission = ##f
- \override NonMusicalPaperColumn #'page-break-permission = ##f
- } {
- \new Staff {
- \repeat unfold 2 { c'8 c'8 c'8 c'8 } \break
- \repeat unfold 4 { c'8 c'8 c'8 c'8 } \break
- \repeat unfold 6 { c'8 c'8 c'8 c'8 } \break
- \repeat unfold 8 { c'8 c'8 c'8 c'8 } \pageBreak
- \repeat unfold 8 { c'8 c'8 c'8 c'8 } \break
- \repeat unfold 6 { c'8 c'8 c'8 c'8 } \break
- \repeat unfold 4 { c'8 c'8 c'8 c'8 } \break
- \repeat unfold 2 { c'8 c'8 c'8 c'8 }
+ \new Staff {
+ \repeat unfold 2 { \music } \break
+ \repeat unfold 4 { \music } \break
+ \repeat unfold 6 { \music } \break
+ \repeat unfold 8 { \music } \pageBreak
+ \repeat unfold 8 { \music } \break
+ \repeat unfold 6 { \music } \break
+ \repeat unfold 4 { \music } \break
+ \repeat unfold 2 { \music }
+ }
+ \layout {
+ \context {
+ \Score
+ \override NonMusicalPaperColumn #'line-break-permission = ##f
+ \override NonMusicalPaperColumn #'page-break-permission = ##f
}
}
}
@end lilypond
-
@seealso
Fragmentos de código:
@rlsr{Spacing}.
-@node Using an extra voice for breaks
-@subsection Using an extra voice for breaks
+@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
-\new Score @{
+music = \relative c'' @{ c4 c c c @}
+
+\score @{
\new Staff @{
- \repeat unfold 2 @{ c'4 c'4 c'4 c'4 @}
- \break
- \repeat unfold 3 @{ c'4 c'4 c'4 c'4 @}
+ \repeat unfold 2 @{ \music @} \break
+ \repeat unfold 3 @{ \music @}
@}
@}
@end example
@code{\break}, @code{pageBreak} y otras informaciones sobre la
disposición de los saltos.
-@lilypond[quote,verbatim]
-\new Score {
- \new Staff <<
- \new Voice {
- s1 * 2 \break
- s1 * 3 \break
- s1 * 6 \break
- s1 * 5 \break
- }
- \new Voice {
- \repeat unfold 2 { c'4 c'4 c'4 c'4 }
- \repeat unfold 3 { c'4 c'4 c'4 c'4 }
- \repeat unfold 6 { c'4 c'4 c'4 c'4 }
- \repeat unfold 5 { c'4 c'4 c'4 c'4 }
- }
- >>
-}
-@end lilypond
+@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
+
+Para modificar globalmente cualquiera de los ajustes de espaciado,
+póngalos dentro del bloque @code{\layout}:
+
+@example
+\layout @{
+ \context @{
+ \Staff
+ \override VerticalAxisGroup #'default-staff-staff-spacing
+ #'basic-distance = #10
+ @}
+@}
+@end example
+
+Los ajustes estándar para las propiedades de grob del espaciado
+vertical están relacionadas en @rinternals{VerticalAxisGroup} y en
+@rinternals{StaffGrouper}. Las sobreescrituras predeterminadas para
+los tipos específicos de líneas que no son pautas están relacionadas
+en las descripciones de contexto correspondientes en
+@rinternals{Contexts}.
+
+@subsubheading Propiedades del grob @code{VerticalAxisGroup}
+
+Las propiedades de @code{VerticalAxisGroup} se suelen ajustar con una
+instrucción @code{\override} en el nivel de @code{Staff} (o
+equivalente).
+
+@table @code
+@item staff-staff-spacing
+Se utiliza para determinar la distancia entre la pauta actual
+y la pauta que está justo por debajo
+de ella dentro del mismo sistema, incluso si hay más líneas que no son
+pautas (tales como @code{Lyrics}) entre las dos pautas. No se aplica
+a la pauta inferior de un sistema.
+
+Inicialmente, el valor de espaciado @code{staff-staff-spacing} de un
+grupo @code{VerticalAxisGroup} es una función de Scheme que aplica las
+propiedades del @code{StaffGrouper} si la pauta forma parte de un
+grupo, o el @code{default-staff-staff-spacing} de la pauta en caso
+contrario. Esto hace posible que las pautas estén espaciadas de forma
+diferente cuando están agrupadas. Para conseguir un espaciado regular
+sin importar el agrupamiento, esta función se puede sustituir por una
+lista-A de espaciado flexible, utilizando la forma de
+sobreescritura de redefinición completa que se ha mostrado más arriba.
+
+@item default-staff-staff-spacing
+Una lista-A de espaciado flexible que define el
+espacio @code{staff-staff-spacing} que se usará para las pautas sin
+agrupar, a no ser que se haya sobreescrito explícitamente
+@code{staff-staff-spacing} con una instrucción @code{\override}.
+
+@item staff-affinity
+Dirección de la pauta que utilizar para el espaciado de la línea
+actual que no es pauta. Se puede elegir entre @code{UP} (arriba),
+@code{DOWN} (abajo) y @code{CENTER} (centro). Si es @code{CENTER}, la
+línea del tipo no-pauta se coloca equidistante entre las dos pautas
+contiguas a ambos lados, a no ser que lo impidan colisiones u otras
+restricciones de espaciado. Las líneas del tipo no-pauta adyacentes
+han de llevar valores de @code{staff-affinity} no crecientes desde la
+parte superior hasta la inferior, p.ej. una línea del tipo no-pauta
+establecida a @code{UP} no debería seguir inmediatamente a otra que
+esté establecida a @code{DOWN}. Las líneas del tipo no-pauta en la
+parte superior de un sistema deben usar @code{DOWN}; las de la parte
+inferior deben usar @code{UP}. El ajuste de @code{staff-affinity}
+para una pauta hace que se le trate como una línea que no es una
+pauta. El establecimiento de @code{staff-affinity} a @code{#f} para
+una línea que no es una pauta hace que se trate como una pauta.
+Establecer @code{staff-affinity} a @code{UP}, @code{CENTER}, o
+@code{DOWN} hace que el pentagrama resulte espaciado como si fuera una
+línea que no es una pauta.
+
+@item nonstaff-relatedstaff-spacing
+Distancia entre la línea del tipo no-pauta actual y la pauta más
+próxima en la dirección de @code{staff-affinity}, si no hay ninguna
+línea que no sea una pauta entre las dos, y @code{staff-affinity} es
+@code{UP} o @code{DOWN}. Si @code{staff-affinity} es @code{CENTER},
+entonces se usa @code{nonstaff-relatedstaff-spacing} para las pautas
+más próximas @emph{a los dos lados}, incluso aunque aparezcan otras
+líneas del tipo no-pauta entre la pauta actual y una de las otras.
+Esto significa que la colocación de una línea que no es una pauta
+depende tanto de las pautas que la rodean como de las líneas que no
+son pautas y que la rodean. Establecer la ampliabilidad
+@code{stretchability} de uno de estos tipos de espaciado a un valor
+más pequeño provoca que este espaciado domine. El establecimiento de
+@code{stretchability} a un valor mayor hace que dicho espaciado tenga
+un menor efecto.
+
+@item nonstaff-nonstaff-spacing
+Distancia entre la línea actual del tipo no-pauta y la siguiente línea
+del tipo no-pauta en la dirección de @code{staff-affinity}, si las dos
+están al mismo lado de la pauta relacionada, y @code{staff-affinity}
+es @code{UP} o @code{DOWN}.
+
+@item nonstaff-unrelatedstaff-spacing
+Distancia entre la línea actual del tipo no-pauta y la pauta en la
+dirección opuesta de @code{staff-affinity}, si no hay ninguna otra
+línea del tipo no-pauta entre las dos, y @code{staff-affinity} es
+@code{UP} o @code{DOWN}. Se puede usar, por ejemplo, para requerir
+una cantidad de relleno mínima entre una línea de @code{Lyrics} y la
+pauta a la que no pertenece.
+@end table
+
+@subsubheading Propiedades del grob @code{StaffGrouper}
+
+Las propiedades de @code{StaffGrouper} se suelen ajustar con una
+instrucción @code{\override} en el nivel de @code{StaffGroup} (o
+equivalente).
+
+@table @code
+@item staff-staff-spacing
+Distancia entre pautas consecutivas dentro del grupo de pautas actual.
+La propiedad @code{staff-staff-spacing} del grob
+@code{VerticalAxisGroup} de una pauta individual se puede
+sobreescribir con distintos ajustes de espaciado para dicha
+pauta.
+
+@item staffgroup-staff-spacing
+Distancia entre la última pauta del grupo en curso y la pauta que está
+justo por debajo de ella dentro del mismo sistema, incluso si existen
+una o más líneas que no son pautas (tales como @code{Lyrics}) entre
+las dos pautas. No se aplica al pentagrama o pauta inferior de un
+sistema. La propiedad @code{staff-staff-spacing} del grob
+@code{VerticalAxisGroup} de una pauta individual se puede
+sobreescribir con distintos ajustes de espaciado para dicha
+pauta.
+@end table
+
+@seealso
+Referencia de la notación:
+@ref{Variables de espaciado de \paper verticales flexibles},
+@ref{Modificación de las listas-A}.
-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{Vertical spacing}.
+Archivos de inicio:
+@file{ly/engraver-init.ly},
+@file{scm/define-grobs.scm}.
-@lilypond[quote,verbatim]
-\new Score {
- \new Staff <<
- \new Voice {
+Referencia de funcionamiento interno:
+@rinternals{Contexts},
+@rinternals{VerticalAxisGroup},
+@rinternals{StaffGrouper}.
- \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
+@node Espaciado de pautas no agrupadas
+@unnumberedsubsubsec Espaciado de pautas no agrupadas
+@translationof Spacing of ungrouped staves
- \overrideProperty "Score.NonMusicalPaperColumn"
- #'line-break-system-details #'((Y-offset . 105))
- s1 * 5 \break
- }
- \new Voice {
- \repeat unfold 2 { c'4 c'4 c'4 c'4 }
- \repeat unfold 3 { c'4 c'4 c'4 c'4 }
- \repeat unfold 6 { c'4 c'4 c'4 c'4 }
- \repeat unfold 5 { c'4 c'4 c'4 c'4 }
- }
- >>
+Las @emph{pautas}, tales como los pentagramas (@code{Staff}), pautas
+de percusión (@code{DrumStaff}) o de tablatura (@code{TabStaff}),
+etc. son contextos que pueden contener uno o más contextos de voz,
+pero no pueden contener otras pautas.
+
+Las siguientes propiedades afectan al espaciado de las pautas @emph{no
+agrupadas}:
+
+@itemize
+@item Propiedades de @code{VerticalAxisGroup}:
+@itemize
+@item @code{default-staff-staff-spacing}
+@item @code{staff-staff-spacing}
+@end itemize
+@end itemize
+
+Estas propiedades de grob se describen individualmente más arriba;
+véase @ref{Propiedades de espaciado dentro de los sistemas}.
+
+Están implicadas ciertas propiedades adicionales para las pautas que
+son parte de un grupo; véase @ref{Espaciado de pautas agrupadas}.
+
+El ejemplo siguiente muestra cómo la propiedad
+@code{default-staff-staff-spacing} puede afectar al espaciado de pautas no
+agrupadas. Las mismas sobreescrituras aplicadas a
+@code{staff-staff-spacing}
+tendrían el mismo efecto, pero también se aplicaría en caso de que las
+pautas estuvieran combinadas en un grupo o grupos.
+
+@lilypond[verbatim,quote,staffsize=16]
+\layout {
+ \context {
+ \Staff
+ \override VerticalAxisGroup #'default-staff-staff-spacing =
+ #'((basic-distance . 8)
+ (minimum-distance . 7)
+ (padding . 1))
+ }
}
-@end lilypond
+<<
+ % 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
-Referencia de la notación:
-@ref{Vertical spacing}.
+Archivos de inicio:
+@file{scm/define-grobs.scm}.
Fragmentos de código:
@rlsr{Spacing}.
+Referencia de funcionamiento interno:
+@rinternals{VerticalAxisGroup}.
-@node Vertical spacing
-@section 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
-* Vertical spacing inside a system::
-* Vertical spacing between systems::
-* Explicit staff and system positioning::
-* Two-pass vertical spacing::
-* Vertical collision avoidance::
-@end menu
+@node Espaciado de pautas agrupadas
+@unnumberedsubsubsec Espaciado de pautas agrupadas
+@translationof Spacing of grouped staves
+En partituras grandes como las orquestales, es común colocar los
+pentagramas en grupos. El espacio entre los grupos suele ser mayor
+que el espacio que hay entre los pentagramas dentro del mismo grupo.
-@node Vertical spacing inside a system
-@subsection Vertical spacing inside a system
+Los grupos de pautas, @emph{Staff-groups} (tales como
+@code{StaffGroup}, @code{ChoirStaff}, etc.) son contextos que pueden
+contener al mismo tiempo uno o más pentagramas o pautas.
-@cindex distancia entre pentagramas
-@cindex pentagrama, distancia entre los
-@cindex espacio entre pentagramas
-@cindex espacio dentro de los sistemas
+Las siguientes propiedades afectan al espaciado de las pautas dentro
+de los grupos:
-La altura de cada sistema se determina automáticamente. Para evitar
-que los pentagramas se superpongan unos encima de otros, se establecen
-algunas distancias mínimas. Al modificarlas, podemos poner los
-pentagramas más cerca unos de otros. Esto reduce el espacio que
-requiere cada sistema y puede resultar en la obtención de más sistemas
-por página.
-
-Normalmente los pentagramas se apilan verticalmente. Para hacer que
-los pentagramas guarden una distancia, se rellena su tamaño vertical.
-Esto se hace con la propiedad @code{minimum-Y-extent}. Si se aplica a
-@rinternals{VerticalAxisGroup}, controla el tamaño de una línea
-horizontal, como un pentagrama o una línea de letra.
-@code{minimum-Y-extent} acepta una pareja de números, de forma que si
-queremos hacerlo más pequeño que su valor predeterminado @code{#'(-4
-. 4)} entonces podemos establecer
+@itemize
+@item Propiedades de @code{VerticalAxisGroup}:
+@itemize
+@item @code{staff-staff-spacing}
+@end itemize
+@item Propiedades de @code{StaffGrouper}:
+@itemize
+@item @code{staff-staff-spacing}
+@item @code{staffgroup-staff-spacing}
+@end itemize
+@end itemize
-@example
-\override Staff.VerticalAxisGroup #'minimum-Y-extent = #'(-3 . 3)
-@end example
+Estas propiedades de grob se describen individualmente más arriba;
+véase @ref{Propiedades de espaciado dentro de los sistemas}.
-@noindent
-Esto fija el tamaño vertical del pentagrama en curso a 3 espacios de
-pentagrama a cada lado de la tercera línea. El valor @code{(-3 . 3)}
-se interpreta como un intervalo, donde la línea central es el 0, por
-lo que el primer número es negativo en general. Los números no tienen
-que coincidir; por ejemplo, el pentagrama se puede hacer mayor por
-debajo dándole el valor @code{(-6 . 4)}.
-
-Después de que se han determinado los saltos de página, se reevalúa el
-espaciado vertical dentro de cada sistema para llenar la página de
-forma más regular; si una página tiene más espacio de sobra, se
-amplían los sistemas para poder llenar este espacio. La magnitud de
-esta ampliación se puede configurar a través de la propiedad
-@code{max-stretch} del grob @rinternals{VerticalAlignment}. De forma
-predeterminada, @code{max-stretch} se establece a cero, inhabilitando
-la ampliación. Para habilitar la ampliación, un valor prudente para
-@code{max-stretch} es @code{ly:align-interface::calc-max-stretch}.
-
-En ciertas situaciones, podemos querer ampliar la mayor parte de un
-sistema y al mismo tiempo dejar algunas partes fijas. Por ejemplo, si
-una parte de piano aparece en el medio de una partitura orquestal,
-podemos querer dejar los pentagramas de piano cercanos entre sí
-mientras se estira el resto de la partitura. Se puede usar la
-propiedad @code{keep-fixed-while-stretching} de
-@rinternals{VerticalAxisGroup} para conseguirlo. Cuando se establece
-al valor @code{##t}, esta propiedad evita que su pentagrama (o línea
-de letra) se desplace en relación al que está directamente encima de
-él. En el ejemplo anterior, podríamos sobreescribir
-@code{keep-fixed-while-stretching} al valor @code{##t} en el segundo
-pentagrama del piano:
-
-@lilypond[verbatim]
-#(set-default-paper-size "a6")
-#(set-global-staff-size 14.0)
+El ejemplo siguiente muestra cómo pueden afectar las propiedades del
+grob @code{StaffGrouper} al espaciado de las pautas agrupadas:
-\book {
-\paper {
- ragged-last-bottom = ##f
+@lilypond[verbatim,quote,staffsize=16]
+\layout {
+ \context {
+ \Score
+ \override StaffGrouper #'staff-staff-spacing #'padding = #0
+ \override StaffGrouper #'staff-staff-spacing #'basic-distance = #1
+ }
}
-\new Score \with
-{
- \override VerticalAlignment #'max-stretch = #ly:align-interface::calc-max-stretch
-}
-{
-\new GrandStaff
<<
- \new StaffGroup
- <<
- \new Staff {c' d' e' f'}
- \new Staff {c' d' e' f'}
- \new Staff {c' d' e' f'}
+ \new PianoStaff \with {
+ \override StaffGrouper #'staffgroup-staff-spacing #'basic-distance = #20
+ } <<
+ \new Staff { c'1 }
+ \new Staff { c'1 }
>>
- \new PianoStaff
- <<
- \new Staff {c' d' e' f'}
- \new Staff \with {
- \override VerticalAxisGroup #'keep-fixed-while-stretching = ##t
- }
- {c' d' e' f'}
- >>
-
- \new StaffGroup
- <<
- \new Staff {c' d' e' f'}
- \new Staff {c' d' e' f'}
+ \new StaffGroup <<
+ \new Staff { c'1 }
+ \new Staff { c'1 }
>>
>>
-}
-}
@end lilypond
-La alineación vertical de los pentagramas está manejada por el objeto
-@code{VerticalAlignment}. Los parámetros de contexto que especifican
-las dimensiones verticales están descritas en conexión con el grabador
-@code{Axis_group_engraver}.
-
-
@seealso
+Archivos de inicio:
+@file{scm/define-grobs.scm}.
+
Fragmentos de código:
@rlsr{Spacing}.
-@c @lsr{spacing,page-spacing.ly},
-@c @lsr{spacing,alignment-vertical-spacing.ly}.
-
Referencia de funcionamiento interno:
-@rinternals{VerticalAlignment},
-@rinternals{Axis_group_engraver}.
+@rinternals{VerticalAxisGroup},
+@rinternals{StaffGrouper}.
-@node Vertical spacing between systems
-@subsection Vertical spacing between systems
+@node Espaciado de las líneas que no son pautas
+@unnumberedsubsubsec Espaciado de las líneas que no son pautas
+@translationof Spacing of non-staff lines
-La separación entre los sistemas está controlada por cuatro variables
-del papel:
+Las @emph{Líneas que no son pautas} (tales como @code{Lyrics},
+@code{ChordNames}, etc.) son contextos cuyos objetos de presentación
+se imprimen como pentagramas (es decir, en líneas horizontales dentro
+de los sistemas). Específicamente, las líneas que no son pautas son
+contextos del tipo no-pauta que crean el objeto de presentación
+@code{VerticalAxisGroup}.
-@example
-\paper @{
- between-system-space = 1.5\cm
- between-system-padding = #1
- ragged-bottom=##f
- ragged-last-bottom=##f
-@}
-@end example
+Las siguientes propiedades afectan al espaciado de las líneas que no
+son pautas:
-Cuando sólo se ponen dos simples sistemas en una página, el espaciado
-vertical resultante puede ser bastante poco elegante: un sistema en la
-parte alta de la página y el otro en la parte baja, con un enorme
-hueco entre ellos. Para evitar esta situación se puede limitar el
-espacio que se añade entre los sistemas. Esta posibilidad se activa
-mediante el establecimiento al valor @code{#t} de la variable
-@code{page-limit-inter-system-space} en el bloque @code{\paper}. La
-variable del papel @code{page-limit-inter-system-space-factor}
-determina en qué cantidad se puede incrementar el espacio: por
-ejemplo, el valor @code{1.3} significa que el espacio puede ser un
-30% mayor que lo que sería en una página no justificada hasta abajo.
-
-En el ejemplo siguiente, si el espacio entre los sistemas no estuviese
-limitado, el segundo sistema de la página 1 se situaría en la parte de
-abajo de la página. Activando la limitación de espacio, el segundo
-sistema se coloca más cerca del primero. Estableciendo
-@code{page-limit-inter-system-space-factor} a @code{1}, el espacio
-sería el mismo que en una página sin justificar por abajo, como la
-última página.
-
-@lilypond[verbatim]
-#(set-default-paper-size "a6")
-\book {
- \paper {
- page-limit-inter-system-space = ##t
- page-limit-inter-system-space-factor = 1.3
-
- oddFooterMarkup = \markup "page bottom"
- evenFooterMarkup = \markup "page bottom"
- oddHeaderMarkup = \markup \fill-line {
- "page top" \fromproperty #'page:page-number-string }
- evenHeaderMarkup = \markup \fill-line {
- "page top" \fromproperty #'page:page-number-string }
+@itemize
+@item Propiedades de @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
+
+Estas propiedades de grob se describen individualmente más arriba;
+véase @ref{Propiedades de espaciado dentro de los sistemas}.
+
+El ejemplo siguiente muestra cómo la propiedad
+@code{nonstaff-nonstaff-spacing} puede afectar el espaciado de líneas
+consecutivas que no son pautas. Aquí, mediante el establecimiento de
+la clave de ampliabilidad @code{stretchability} a un valor muy grande,
+la línea de letra es capaz de ampliarse mucho más de lo que es usual:
+
+@lilypond[verbatim,quote,staffsize=16]
+\layout {
+ \context {
+ \Lyrics
+ \override VerticalAxisGroup
+ #'nonstaff-nonstaff-spacing #'stretchability = #1000
}
- \new Staff << \repeat unfold 4 { g'4 g' g' g' \break }
- { s1*2 \pageBreak } >>
}
-@end lilypond
+\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
+Archivos de inicio:
+@file{ly/engraver-init.ly},
+@file{scm/define-grobs.scm}.
+
Fragmentos de código:
@rlsr{Spacing}.
+@c @lsr{spacing,page-spacing.ly},
+@c @lsr{spacing,alignment-vertical-spacing.ly}.
+
+Referencia de funcionamiento interno:
+@rinternals{Contexts},
+@rinternals{VerticalAxisGroup}.
+
-@node Explicit staff and system positioning
-@subsection Explicit staff and system positioning
+@node Posicionamiento explícito de los pentagramas y los sistemas
+@subsection Posicionamiento explícito de los pentagramas y los sistemas
+@translationof Explicit staff and system positioning
-Una forma de entender los ajustes de @code{VerticalAxisGroup} y de
-@code{\paper} que se explicaron en las dos secciones anteriores es
-como una colección de distintos ajustes que conciernen principalmente
-a la cantidad de relleno vertical que adquieren los distintos
-pentagramas y sistemas al ocupar la página.
+Una forma de entender los mecanismos del espaciado vertical
+flexible que se han explicado más arriba es como una
+colección de ajustes que controlan la cantidad de relleno
+vertical entre los pentagramas y los sistemas.
-Es posible abordar el problema del espaciado vertical de una forma
-distinta utilizando @code{NonMusicalPaperColumn
-#'line-break-system-details}. Donde los ajustes de
-@code{VerticalAxisGroup} y de @code{\paper} especifican el relleno
-vertical, @code{NonMusicalPaperColumn #'line-break-system-details}
-especifica las posiciones verticales exactas en la página.
+Es posible enfrentarse al espaciado vertical de una forma distinta
+utilizando @code{NonMusicalPaperColumn #'line-break-system-details}.
+Mientras que los mecanismos del espaciado vertical flexible
+especifican relleno vertical, @code{NonMusicalPaperColumn
+#'line-break-system-details} puede especificar posiciones verticales
+exactas sobre la página.
@code{NonMusicalPaperColumn #'line-break-system-details} acepta una
-lista asociativa de cinco ajustes distintos:
+lista asociativa de tres ajustes diferentes:
@itemize
-@item @code{X-offset}
-@item @code{Y-offset}
-@item @code{alignment-offsets}
-@item @code{alignment-extra-space}
-@item @code{fixed-alignment-extra-space}
+@item @code{X-offset} (desplazamiento en X)
+@item @code{Y-offset} (desplazamiento en Y)
+@item @code{alignment-distances} (distancias de alineación)
@end itemize
Las sobreescrituras de los objetos gráficos, entre ellas las de
-@code{NonMusicalPaperColumn} que aparece más abajo, pueden ocurrir en
+@code{NonMusicalPaperColumn} que aparecen más abajo, pueden ocurrir en
tres lugares distintos dentro de un archivo de entrada:
@itemize
#'line-break-system-details #'((Y-offset . 40))
\overrideProperty NonMusicalPaperColumn
- #'line-break-system-details #'((X-offset . 20) (Y-offset . 40))
+ #'line-break-system-details #'((X-offset . 20)
+ (Y-offset . 40))
\overrideProperty NonMusicalPaperColumn
- #'line-break-system-details #'((alignment-offsets . (0 -15)))
+ #'line-break-system-details #'((alignment-distances . (15)))
\overrideProperty NonMusicalPaperColumn
- #'line-break-system-details #'((X-offset . 20) (Y-offset . 40)
- (alignment-offsets . (0 -15)))
+ #'line-break-system-details #'((X-offset . 20)
+ (Y-offset . 40)
+ (alignment-distances . (15)))
@end example
Para entender cómo funciona cada uno de los distintos ajustes,
@c \book { } is required in these examples to ensure the spacing
@c overrides can be seen between systems. -np
-@lilypond[quote]
+@lilypond[verbatim,quote,staffsize=16]
\header { tagline = ##f }
\paper { left-margin = 0\mm }
\book {
Esta partitura mantiene aislada la información de los saltos de línea
y de página en una voz dedicada a ello. Esta técnica de crear una voz
de saltos ayuda a mantener separada de la escritura de notas conforme
-el ejemplo se vuelve más complicado. Consulte @ref{Using an extra
-voice for breaks}.
+el ejemplo se vuelve más complicado. Consulte
+@ref{Utilizar una voz adicional para los saltos de línea}.
Los saltos explícitos dividen la música de forma regular en seis
compases por línea. El espaciado vertical es el resultado de los
@code{Y-offset} en el atributo @code{line-break-system-details} del
grob (objeto gráfico) @code{NonMusicalPaperColumn}:
-@lilypond[quote]
+@lilypond[verbatim,quote,staffsize=16]
\header { tagline = ##f }
\paper { left-margin = 0\mm }
\book {
en la que se trazará cada uno de los nuevos sistemas.
Ahora que hemos establecido explícitamente el punto de origen vertical
-de cada sistema, podemos también establecer manualmente el punto de
-origen vertical de cada pentagrama dentro de cada sistema. Lo hacemos
-usando la subpropiedad @code{alignment-offsets} de
+de cada sistema, podemos también establecer manualmente las distancias
+verticales entre los pentagramas dentro de cada sistema. Lo hacemos
+usando la subpropiedad @code{alignment-distances} de
@code{line-break-system-details}.
-@lilypond[quote]
+@lilypond[verbatim,quote,staffsize=16]
\header { tagline = ##f }
\paper { left-margin = 0\mm }
\book {
\new Voice {
\overrideProperty #"Score.NonMusicalPaperColumn"
#'line-break-system-details #'((Y-offset . 20)
- (alignment-offsets . (0 -15)))
+ (alignment-distances . (15)))
s1*5 \break
\overrideProperty #"Score.NonMusicalPaperColumn"
#'line-break-system-details #'((Y-offset . 60)
- (alignment-offsets . (0 -15)))
+ (alignment-distances . (15)))
s1*5 \break
\overrideProperty #"Score.NonMusicalPaperColumn"
#'line-break-system-details #'((Y-offset . 100)
- (alignment-offsets . (0 -15)))
+ (alignment-distances . (15)))
s1*5 \break
}
\new Voice { \repeat unfold 15 { c'4 c' c' c' } }
@code{line-break-system-details} acepta muchos parámetros de espaciado
adicionales (entre ellos, por ejemplo, un par @code{X-offset}
correspondiente), sólo tenemos que establecer el desplazamiento
-@code{Y-offset} y los pares @code{alignment-offsets} para controlar el
-punto de origen vertical de cada sistema y pentagrama. Finalmente,
-observe que @code{alignment-offsets} especifica el posicionamiento
+@code{Y-offset} y los pares @code{alignment-distances} para controlar
+el punto de origen vertical de cada sistema y pentagrama. Finalmente,
+observe que @code{alignment-distances} especifica el posicionamiento
vertical de los pentagramas pero no de los grupos de pentagramas.
-@lilypond[quote]
+@lilypond[verbatim,quote,staffsize=16]
\header { tagline = ##f }
\paper { left-margin = 0\mm }
\book {
\new Voice {
\overrideProperty #"Score.NonMusicalPaperColumn"
#'line-break-system-details #'((Y-offset . 0)
- (alignment-offsets . (0 -30 -40)))
+ (alignment-distances . (30 10)))
s1*5 \break
\overrideProperty #"Score.NonMusicalPaperColumn"
#'line-break-system-details #'((Y-offset . 60)
- (alignment-offsets . (0 -10 -20)))
+ (alignment-distances . (10 10)))
s1*5 \break
\overrideProperty #"Score.NonMusicalPaperColumn"
#'line-break-system-details #'((Y-offset . 100)
- (alignment-offsets . (0 -10 -40)))
+ (alignment-distances . (10 30)))
s1*5 \break
}
\new Voice { \repeat unfold 15 { c'4 c' c' c' } }
Algunos puntos que tener en cuenta:
@itemize
-@item Al usar @code{alignment-offsets}, la letra cuenta como un pentagrama.
+@item Al usar @code{alignment-distances}, la letra
+y otras líneas que no son pautas, no cuentan como un pentagrama.
@item Las unidades de los números que se pasan a @code{X-offset},
-@code{Y-offset} y @code{alignment-offsets} se interpretan como
+@code{Y-offset} y @code{alignment-distances} se interpretan como
múltiplos de la distancia entre líneas de pentagrama adyacentes. Los
valores positivos mueven a los pentagramas y a la letra hacia arriba,
los valores negativos mueven los pentagramas y la letra hacia abajo.
-@item A causa de que los ajustes a @code{NonMusicalPaperColumn #'line-break-system-details}
-dados aquí permiten el posicionamiento de pentagramas y sistemas en
-cualquier lugar de la página, es posible violar los márgenes o los
-límites del papel, o incluso imprimir pentagramas o sistemas unos
-encima de otros. Esto se evitaría pasando a los diferentes ajustes
-unos valores razonables.
+@item A causa de que los ajustes a @code{NonMusicalPaperColumn
+#'line-break-system-details} dados aquí permiten el posicionamiento de
+pentagramas y sistemas en cualquier lugar de la página, es posible
+violar los márgenes o los límites del papel, o incluso imprimir
+pentagramas o sistemas unos encima de otros. Esto se evitaría pasando
+a los diferentes ajustes unos valores razonables.
@end itemize
-
-@seealso
-Fragmentos de código:
-@rlsr{Spacing}.
-
-
-@node Two-pass vertical spacing
-@subsection Two-pass vertical spacing
-
-@warning{El espaciado vertical en dos pasadas está obsoleto y se
-eliminará en una versión futura de LilyPond. Ahora los sistemas se
-amplían automáticamente en un solo paso. Véase @ref{Vertical spacing
-inside a system}.}
-
-In order to automatically stretch systems so that they should fill the
-space left on a page, a two-pass technique can be used:
-
-@enumerate
-@item In the first pass, the amount of vertical space used to increase
-the height of each system is computed and dumped to a file.
-@item In the second pass, spacing inside the systems are
-stretched according to the data in the page layout file.
-@end enumerate
-
-The @code{ragged-bottom} property adds space between systems, while
-the two-pass technique adds space between staves inside a system.
-
-To allow this behavior, a @code{tweak-key} variable has to be set in
-each score @code{\layout} block, and the tweaks included in each score
-music, using the @code{\scoreTweak} music function.
-
-@quotation
-@verbatim
-%% include the generated page layout file:
-\includePageLayoutFile
-
-\score {
- \new StaffGroup <<
- \new Staff <<
- %% Include this score tweaks:
- \scoreTweak "scoreA"
- { \clef french c''1 \break c''1 }
- >>
- \new Staff { \clef soprano g'1 g'1 }
- \new Staff { \clef mezzosoprano e'1 e'1 }
- \new Staff { \clef alto g1 g1 }
- \new Staff { \clef bass c1 c1 }
- >>
- \header {
- piece = "Score with tweaks"
- }
- %% Define how to name the tweaks for this score:
- \layout { #(define tweak-key "scoreA") }
-}
-@end verbatim
-@end quotation
-
-For the first pass, the @code{dump-tweaks} option should be set to
-generate the page layout file.
-
-@example
-lilypond -dbackend=null -d dump-tweaks <file>.ly
-lilypond <file>.ly
-@end example
-
-
@seealso
Fragmentos de código:
@rlsr{Spacing}.
-@node Vertical collision avoidance
-@subsection Vertical collision avoidance
+@node Evitar las colisiones verticales
+@subsection Evitar las colisiones verticales
+@translationof Vertical collision avoidance
@funindex outside-staff-priority
@funindex outside-staff-padding
@code{outside-staff-priority} más baja se colocará más próximo al
pentagrama.
-@lilypond[quote,ragged-right,relative=2,fragment,verbatim]
+@lilypond[quote,ragged-right,relative=2,verbatim]
c4_"Text"\pp
r2.
\once \override TextScript #'outside-staff-priority = #1
posicionados previamente se puede controlar con
@code{outside-staff-padding}.
-@lilypond[quote,ragged-right,relative=2,fragment,verbatim]
+@lilypond[quote,ragged-right,relative=2,verbatim,staffsize=18]
\once \override TextScript #'outside-staff-padding = #0
a'^"This text is placed very close to the note"
\once \override TextScript #'outside-staff-padding = #3
@code{outside-staff-horizontal-padding} ocasiona que un objeto se
desplace verticalmente para que tal situación no ocurra.
-@lilypond[quote,ragged-right,relative=2,fragment,verbatim]
+@lilypond[quote,ragged-right,relative=2,verbatim]
% the markup is too close to the following note
c4^"Text"
c4
c''2
@end lilypond
-
@seealso
Fragmentos de código:
@rlsr{Spacing}.
-@node Horizontal spacing
-@section Horizontal spacing
+@node Espaciado horizontal
+@section Espaciado horizontal
+@translationof Horizontal spacing
@cindex horizontal, espaciado
@cindex espaciado horizontal
@menu
-* Horizontal spacing overview::
-* New spacing area::
-* Changing horizontal spacing::
-* Line length::
-* Proportional notation::
+* Panorámica del espaciado horizontal::
+* Área de espaciado nueva::
+* Cambiar el espaciado horizontal::
+* Longitud de la línea::
+* Notación proporcional::
@end menu
-@node Horizontal spacing overview
-@subsection Horizontal spacing overview
+@node Panorámica del espaciado horizontal
+@subsection Panorámica del espaciado horizontal
+@translationof Horizontal spacing overview
El motor de espaciado traduce las diferencias en las duraciones a
distancias ampliables (@q{muelles}) de distintas longitudes. Las
corcheas; la corchea va seguida de un ancho de cabeza de blanca (ACB).
La negra va seguida de 2 ACB, la blanca por 3 ACB, etc.
-@lilypond[quote,fragment,verbatim,relative=1]
+@lilypond[quote,verbatim,relative=1]
c2 c4. c8 c4. c8 c4. c8 c8
c8 c4 c4 c4
@end lilypond
duración más común se toma como base para el espaciado, habiendo
estipulado que esta duración menor siempre debe ser igual o menor que
una corchea. La duración más breve se imprime cuando se ejecuta
-@code{lilypond} con la opción @code{--verbose}.
+@code{lilypond} con la opción @option{--verbose}.
Estas duraciones también se pueden personalizar. Si establecemos la
@code{common-shortest-duration} en @rinternals{SpacingSpanner},
nota común más breve. Así pues, si fuésemos a añadir tan sólo algunas
semicorcheas al ejemplo anterior, irían seguidas por medio ACB:
-@lilypond[quote,fragment,verbatim,relative=2]
+@lilypond[quote,verbatim,relative=2]
c2 c4. c8 c4. c16[ c] c4. c8 c8 c8 c4 c4 c4
@end lilypond
-En la introducción (véase @rlearning{Engraving}), se explicó que las
-direcciones de las plicas influyen en el espaciado. Esto se controla
+En el @emph{Ensayo sobre grabado musical automatizado},
+se explicó que las
+direcciones de las plicas influyen en el espaciado
+(véase @ressay{Espaciado óptico}). Esto se controla
con la propiedad @code{stem-spacing-correction} en el objeto
@rinternals{NoteSpacing}. Estos se generan para cada uno de los
contextos de @rinternals{Voice}. El objeto @code{StaffSpacing}
@lilypond[quote,ragged-right]
{
c'4 e''4 e'4 b'4 |
- b'4 e''4 b'4 e''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|
+ b'4 e''4 b'4 e''4 |
}
@end lilypond
-Está contemplada la notación proporcional; consulte @ref{Proportional
-notation}.
-
+Está contemplada la notación proporcional; consulte
+@ref{Notación proporcional}.
@seealso
+Ensayo sobre grabado musical automatizado:
+@ressay{Espaciado óptico}.
+
Fragmentos de código:
@rlsr{Spacing}.
@rinternals{StaffSpacing},
@rinternals{NonMusicalPaperColumn}.
-
@knownissues
-
No existe ningún mecanismo conveniente para sobreescribir el espaciado
manualmente. Se puede usar el siguiente rodeo para insertar espacio
adicional en una partitura, ajustando el valor del relleno en la
No existe ningún rodeo para disminuir la magnitud de la separación.
-@node New spacing area
-@subsection New spacing area
+@node Área de espaciado nueva
+@subsection Área de espaciado nueva
+@translationof New spacing area
Se pueden iniciar secciones nuevas con diferentes parámetros de
espaciado, con @code{newSpacingSection}. Esto es útil cuando hay
En el ejemplo siguiente, el cambio de compás introduce una sección
nueva, y por ello las semicorcheas se separan de manera más amplia.
-@lilypond[relative,fragment,verbatim,quote]
+@lilypond[relative=1,verbatim,quote]
\time 2/4
c4 c8 c
c8 c c4 c16[ c c8] c4
@code{SpacingSpanner}, y de ahí que se puedan usar nuevas
instrucciones de sobreescritura @code{\override} en dicho punto.
-
@seealso
Fragmentos de código:
@rlsr{Spacing}.
@rinternals{SpacingSpanner}.
-@node Changing horizontal spacing
-@subsection Changing horizontal spacing
+@node Cambiar el espaciado horizontal
+@subsection Cambiar el espaciado horizontal
+@translationof Changing horizontal spacing
Se puede alterar el espaciado horizontal con la propiedad
@code{base-shortest-duration}. Aquí compararemos la misma música, una
\context {
\Score
\override SpacingSpanner
- #'base-shortest-duration = #(ly:make-moment 1 16)
+ #'base-shortest-duration = #(ly:make-moment 1 16)
}
}
}
@end lilypond
-
@snippets
-
De forma predeterminada, el espaciado en los grupos de valoración
especial depende de varios factores ajenos a la duración (como
alteraciones, cambios de clave, etc.). Para pasar por alto estos
@code{Score.SpacingSpanner #'uniform-stretching}. Esta propiedad sólo
puede cambiarse al principio de la partitura:
-@lilypond[quote,ragged-right,relative=2,fragment,verbatim]
-\new Score \with {
- \override SpacingSpanner #'uniform-stretching = ##t
-} <<
- \new Staff{
- \times 4/5 {
- c8 c8 c8 c8 c8
+@lilypond[quote,ragged-right,verbatim]
+\score {
+ <<
+ \new Staff {
+ \times 4/5 {
+ c8 c8 c8 c8 c8
+ }
+ c8 c8 c8 c8
}
- c8 c8 c8 c8
- }
- \new Staff{
- c8 c8 c8 c8
- \times 4/5 {
- 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
Cuando se establece @code{strict-note-spacing}, las notas se separan
sin tener en cuenta las claves, líneas divisorias ni notas de adorno:
-@lilypond[quote,ragged-right,relative=2,fragment,verbatim]
+@lilypond[quote,ragged-right,relative=2,verbatim]
\override Score.SpacingSpanner #'strict-note-spacing = ##t
\new Staff { c8[ c \clef alto c \grace { c16[ c] } c8 c c] c32[ c32] }
@end lilypond
-
@seealso
Fragmentos de código:
@rlsr{Spacing}.
-@node Line length
-@subsection Line length
+@node Longitud de la línea
+@subsection Longitud de la línea
+@translationof Line length
@cindex saltos de página
@cindex página, saltos de
horizontal natural, en lugar de repartirse horizontalmente hasta
llenar toda la línea. Esto es útil para fragmentos cortos, y para
comprobar qué tan apretado es el espaciado natural.
+El valor normal predeterminado es falso, pero si la partitura
+tiene un solo sistema, el valor predeterminado es verdadero.
@cindex diseño de página
@cindex página, disposición de la
@c stretch as the previous line. eTeX uses \lastlinefit to
@c interpolate between both these solutions.
-@c interesting! -FV
-
@example
\layout @{
indent = #0
@}
@end example
-
@seealso
Fragmentos de código:
@rlsr{Spacing}.
-@node Proportional notation
-@subsection Proportional notation
+@node Notación proporcional
+@subsection Notación proporcional
+@translationof Proportional notation
LilyPond contempla la notación proporcional, un tipo de espaciado
horizontal en el que cada nota consume una medida horizontal que
@item @code{proportionalNotationDuration}
@item @code{uniform-stretching}
@item @code{strict-note-spacing}
-@item @code{\remove Separating_line_group_engraver}
+@item @code{\remove "Separating_line_group_engraver"}
@item @code{\override PaperColumn #'used = ##t}
@end itemize
espaciado clásico sin justificación por la derecha.
@lilypond[quote,verbatim,ragged-right]
-\new 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
+\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
Observe que la blanca que inicia el compás ocupa mucho menos de la
ajuste @code{proportionalNotationDuration}.
@lilypond[quote,verbatim,ragged-right]
-\new Score \with {
- proportionalNotationDuration = #(ly:make-moment 1 20)
-} <<
- \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
+\score {
+ <<
+ \new RhythmicStaff {
+ c'2
+ c'16 c'16 c'16 c'16
+ \times 4/5 {
+ c'16 c'16 c'16 c'16 c'16
+ }
+ }
+ >>
+ \layout {
+ \context {
+ \Score
+ proportionalNotationDuration = #(ly:make-moment 1 20)
}
}
->>
+}
@end lilypond
La blanca al principio del compás y las notas rápidas de la segunda
espaciado de toda la música. La función Scheme de LilyPond
@code{make-moment} acepta dos argumentos: un numerador y un
denominador que, juntos, expresan una cierta fracción de redonda. La
-llamada @code{#(ly:make-moment 1 20)}, por tanto, produce una duración
+llamada @code{(ly:make-moment 1 20)}, por tanto, produce una duración
de referencia de una nota de un veinteavo de redonda (semicorcheas de
-cinquillo). Los valores @code{#(ly:make-moment 1 16)},
-@code{#(ly:make-moment 1 8)} y @code{#(ly:make-moment 3 97)} son
-también posibles.
+cinquillo). Son también posibles valores como
+@code{(ly:make-moment 1 16)},
+@code{(ly:make-moment 1 8)} y @code{(ly:make-moment 3 97)}.
¿Cómo seleccionamos la duración correcta de referencia para pasarla a
@code{proportionalNotationDuration}? Normalmente mediante un proceso
más largas aplican un espaciado más apretado.
@lilypond[quote,verbatim,ragged-right]
-\new Score \with {
- proportionalNotationDuration = #(ly:make-moment 1 8)
-} <<
- \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
+\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)
}
}
->>
+}
-\new Score \with {
- proportionalNotationDuration = #(ly:make-moment 1 16)
-} <<
- \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
+\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)
}
}
->>
+}
-\new Score \with {
- proportionalNotationDuration = #(ly:make-moment 1 32)
-} <<
- \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
+\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
Observe que una duración de referencia demasiado grande (como la
diferente de grupo especial.
@lilypond[quote,verbatim,ragged-right]
-\new 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
+\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
+ \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
El espaciado es defectuoso porque las notas regularmente espaciadas
-del pentagrama inferior no se amplían de manera uniforme. El grabado
-clásico incluye muy pocos tresillos complejos y así las reglas del
+del pentagrama inferior no se amplían de manera uniforme. Los grabados
+clásicos incluyen muy pocos tresillos complejos y así las reglas del
grabado clásico pueden generar este tipo de resultado. El
-establecimiento de @code{proportionalNotationDuration} remedia esta
-situación considerablemente.
+establecimiento de @code{proportionalNotationDuration} lo
+soluciona.
@lilypond[quote,verbatim,ragged-right]
-\new Score \with {
- proportionalNotationDuration = #(ly:make-moment 1 20)
-} <<
- \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
+\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
+ \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
Pero si observamos con mucho cuidado podremos ver que las notas de la
propiedad de @code{SpacingSpanner}.
@lilypond[quote,verbatim,ragged-right]
-\new Score \with {
- proportionalNotationDuration = #(ly:make-moment 1 20)
- \override SpacingSpanner #'uniform-stretching = ##t
-} <<
- \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
+\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
+ \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
Nuestro ejemplo de dos pentagramas ahora está espaciado exactamente,
partitura completa. Sin embargo, podemos sobreescribir este
comportamiento y activar distintas posibilidades de espaciado en
distintos lugares de la partitura. Lo hacemos con la instrucción
-@code{\newSpacingSection}. Consulte @ref{New spacing area} para más
-información.
+@code{\newSpacingSection}. Consulte @ref{Área de espaciado nueva}
+para más información.
A continuación examinamos los efectos del grabador
@code{Separating_line_group_engraver} y veremos por qué las partituras
proporcionales con frecuencia eliminan este grabador. El ejemplo
siguiente muestra que hay una pequeña cantidad de espacio
-@qq{preparatorio} justo antes de la primera nota de cada sistema.
+@qq{preliminar} justo antes de la primera nota de cada sistema.
@lilypond[quote,verbatim,ragged-right]
\paper {
}
@end lilypond
-
-Esta cantidad de espacio preparatorio es la misma ya sea después de
+Esta cantidad de espacio preliminar es la misma ya sea después de
una indicación de compás, una armadura o una clave. El grabador
@code{Separating_line_group_engraver} es responsable de este espacio.
La eliminación de @code{Separating_line_group_engraver} reduce este
}
\new Staff \with {
- \remove Separating_line_group_engraver
+ \remove "Separating_line_group_engraver"
} {
c'1
\break
@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 in the Voice context}
+@item @code{\remove "Forbid_line_break_engraver" in the Voice context}
@end itemize
Estos ajustes dan a las notas de adorno un espaciado estricto,
extensión se dividan entre los sistemas y las páginas. Consulte las
partes respectivas del manual para ver estos ajustes relacionados.
-
@seealso
Referencia de la notación:
-@ref{New spacing area}.
+@ref{Área de espaciado nueva}.
Fragmentos de código:
@rlsr{Spacing}.
-@node Fitting music onto fewer pages
-@section Fitting music onto fewer pages
+@node Encajar la música en menos páginas
+@section Encajar la música en menos páginas
+@translationof Fitting music onto fewer pages
En ocasiones, podemos terminar con uno o dos pentagramas en una
-segunda página (o tercera, o cuarta...). Es fastidioso, especialmente
-cuando vemos que las páginas anteriores parecen tener espacio de
-sobra.
+segunda página (o tercera, o cuarta@dots{}). Es fastidioso,
+especialmente cuando vemos que las páginas anteriores parecen tener
+espacio de sobra.
Al investigar los problemas de disposición, una herramienta de valor
incalculable es @code{annotate-spacing}. Esta instrucción imprime los
valores de un cierto número de variables de espaciado; para ver más
-detalles consulte la sección siguiente, @ref{Displaying spacing}.
+detalles consulte la sección siguiente, @ref{Mostrar el espaciado}.
@menu
-* Displaying spacing::
-* Changing spacing::
+* Mostrar el espaciado::
+* Cambiar el espaciado::
@end menu
-@node Displaying spacing
-@subsection Displaying spacing
+@node Mostrar el espaciado
+@subsection Mostrar el espaciado
+@translationof Displaying spacing
@cindex espaciado, presentación del
@funindex annotate-spacing
intervalos, donde @var{a} es el límite inferior y @var{b} es el límite
superior del intervalo.
-
@seealso
-@ref{Setting the staff size}.
+Referencia de la notación:
+@ref{Establecer el tamaño del pentagrama}.
Fragmentos de código:
@rlsr{Spacing}.
-@node Changing spacing
-@subsection Changing spacing
+@node Cambiar el espaciado
+@subsection Cambiar el espaciado
+@translationof Changing spacing
La salida de @code{annotate-spacing} revela las dimensiones verticales
con gran detalle. Para ver más detalles acerca de la modificación de
los márgenes y otras variables de diseño de la página, consulte
-@ref{Page formatting}.
+@ref{Disposición de la página}.
Aparte de los márgenes, hay algunas otras opciones para ahorrar espacio:
@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
+Forzar el número de páginas. Por ejemplo, la asignación
+siguiente fuerza una disposición con dos páginas.
+
+@example
+\paper @{
+ page-count = #2
+@}
+@end example
+
@item
Evitar (o reducir en número) los objetos que aumentan el tamaño
vertical de un sistema. Por ejemplo, las repeticiones de primera y
@lilypond[verbatim,quote,relative=1]
e4 c g\f c
-\override DynamicText #'extra-offset = #'( -2.2 . 2.0)
-e4 c g\f c
+e4 c g-\tweak #'X-offset #-2.7 -\tweak #'Y-offset #2.5 \f c
@end lilypond
@item
Alterar el espaciado horizontal por medio de @code{SpacingSpanner}.
-Para ver más detalles, consulte @ref{Changing horizontal spacing}. El
-ejemplo siguiente ilustra el espaciado predeterminado:
+Para ver más detalles, consulte @ref{Cambiar el espaciado horizontal}.
+El ejemplo siguiente ilustra el espaciado predeterminado:
@lilypond[verbatim,quote]
\score {
@end itemize
-
@seealso
Referencia de la notación:
-@ref{Page formatting},
-@ref{Changing horizontal spacing}.
+@ref{Disposición de la página},
+@ref{Cambiar el espaciado horizontal}.
Fragmentos de código:
@rlsr{Spacing}.