X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=Documentation%2Fes%2Fnotation%2Fspacing.itely;h=adfd59925b101ebf4bc7e1a13c3b10bec6a948a3;hb=2613eed0a13ce118cb11f83057d9d79fc6973a4e;hp=c41cc304e6842898a90d4a244771fc76499c99ae;hpb=1c859650b6ff11a7dbe829328fd5cae3816b9231;p=lilypond.git diff --git a/Documentation/es/notation/spacing.itely b/Documentation/es/notation/spacing.itely index c41cc304e6..adfd59925b 100644 --- a/Documentation/es/notation/spacing.itely +++ b/Documentation/es/notation/spacing.itely @@ -1,16 +1,18 @@ @c -*- coding: utf-8; mode: texinfo; documentlanguage: es -*- @ignore - Translation of GIT committish: d4f58bb3ad4e7fe1967a6b48f25e3addffc8aa14 + Translation of GIT committish: 55ac733b69643a6bc6a83b706c65cb56efd388ef 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.13.42" -@node Spacing issues -@chapter Spacing issues +@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. @@ -29,43 +31,144 @@ selecciona una combinación de saltos de página y de línea de tal forma 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 -@cindex papel, tamaño del -@cindex página, tamaño de la +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: + +@itemize + +@item +la función de Scheme @code{set-paper-size}, + +@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} variables 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{Encabezamientos pies y títulos 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 se especifiquen unas unidades diferentes +por parte del usuario. Por ejemplo, la declaración siguiente +establece el margen superior @code{top-margin} a diez milímetros: + +@example +\paper @{ + top-margin = 10 +@} +@end example + +Para fijarlo en @code{0.5} pulgadas, utilice el sufijo de unidades +@code{\in}: + +@example +\paper @{ + top-margin = 0.5\in +@} +@end example + +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{Encabezamientos pies y títulos 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 Existen dos funciones para cambiar el tamaño del papel: @code{set-default-paper-size} (establecer tamaño de página @@ -85,6 +188,14 @@ superior, y @code{set-paper-size} se debe poner en un bloque @end example @noindent +Dentro del ámbito del nivel jerárquico superior, se puede llamar sin +riesgo a la función @code{set-default-paper-size} desde cualquier +lugar antes del primer bloque @code{\paper} block. Dentro de un +bloque @code{\paper}, el lugar más seguro para llamar a +@code{set-paper-size} es al principio, por encima de la lista de +declaraciones de variables. Se explican las razones de esto en +@ref{Escalado automático al tamaño del papel}. + @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 @@ -97,14 +208,14 @@ 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}. +@file{scm/paper.scm} y busque la definición de @code{paper-alist}. @c TODO add a new appendix for paper sizes (auto-generated) -pm @warning{El tamaño predeterminado del papel es @code{a4}.} Se pueden añadir tamaños adicionales editando la definición de -@code{paper-alist} en el archivo de inicio @file{scm/@/paper@/.scm}, +@code{paper-alist} en el archivo de inicio @file{scm/paper.scm}, aunque se sobreescribirán en la siguiente reinstalación del programa. @cindex orientación @@ -119,488 +230,889 @@ establece en consonancia una mayor longitud de las líneas. #(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. - - @seealso -Archivos instalados: -@file{scm/@/paper@/.scm}. +Referencia de la notación: +@ref{Escalado automático al tamaño del papel}. -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 verdadero. 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 -Distancia entre títulos consecutivos (p.ej., el título del libro y el -título de una pieza). Predeterminado: @code{2\mm}. +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. + + +@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}. -@item bottom-margin -@funindex bottom-margin +@menu +* Estructura de las listas-A de espaciado vertical flexible:: +* Lista de variables de espaciado de \paper verticales flexibles:: +@end menu -Margen entre el pie de página y la parte inferior del papel. -Predeterminado: @code{6\mm}. -@item foot-separation -@funindex foot-separation +@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 -Distancia entre el sistema situado más abajo y el pie de página. -Predeterminado: @code{4\mm}. +Cada una de las variables de espaciado de @code{\paper} flexibles es +una lista-A (lista asociativa) que contiene cuatro @emph{claves}: -@item head-separation -@funindex head-separation +@itemize -Distancia entre el sistema situado más arriba y el encabezamiento de -la página. Predeterminado: @code{4\mm}. +@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}. -@item page-top-space -@funindex page-top-space +@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}. -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}. +@c TODO: explain skylines somewhere and xref to it from here. -@item paper-height -@funindex paper-height +@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. -Altura de la página. Predeterminado: altura del tamaño actual del -papel. Para ver más detalles, consulte @ref{Paper size}. +@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}). -@item top-margin -@funindex top-margin +@end itemize -Margen entre el encabezamiento y la parte alta del papel. -Predeterminado: @code{5\mm}. +Si una página tiene un margen inferior no justificado, la distancia +resultante es la mayor de: -@end table +@itemize +@item +@code{basic-distance}, -@snippets +@item +@code{minimum-distance}, y -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}. +@item +@code{padding} más la menor distancia necesaria +para eliminar las colisiones. -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. +@end itemize -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 paper-width -@funindex paper-width +@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}. + + +@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 -Ancho de la página. Predeterminado: la anchura del tamaño actual del -papel. Para ver más detalles, consulte @ref{Paper size}. +@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 + +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. + +@item systems-per-page +@funindex systems-per-page + +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 system-count +@funindex system-count + +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}. + +@end table + +@seealso +Referencia de la notación: +@ref{Saltos de línea}. + + +@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 + +Los valores predeterminados que no están relacionados aquí, se definen +en el archivo @file{ly/paper-defaults-init.ly} + +@table @code -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 -Default: @code{2}. - -@end ignore +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-force}, 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-force @funindex blank-last-page-force -Penalización por terminar la partitura en una página de numeración -impar. Predeterminado: @code{0}. +Penalización por terminar la partitura sobre una página impar. @item blank-page-force @funindex blank-page-force -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}. +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 first-page-number -@funindex first-page-number +@item page-breaking +@funindex page-breaking -Valor del número de la primera página. Predeterminado: @code{#1}. - -@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. - -@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. +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-between-system-padding -@funindex page-breaking-between-system-padding +@item page-breaking-system-system-spacing +@funindex page-breaking-system-system-spacing -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. +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}. -@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 + +@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}. + +@item first-page-number +@funindex first-page-number -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}. +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. @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}. +Si está fijado a falso, no se imprimen los números de página. -@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}. - -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. - -@item ragged-last -@funindex ragged-last +@end table -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}. +@seealso +Archivos de inicio: +@file{ly/paper-defaults-init.ly}. -@item ragged-last-bottom -@funindex ragged-last-bottom +@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. -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 -Cantidad de sistemas que usar por parte de la partitura. -Predeterminado: sin establecer. +@funindex \layout -@item systems-per-page -@funindex systems-per-page +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: -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. +@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 -@end table +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 -@seealso -Fragmentos de código: -@rlsr{Spacing}. +@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}) -@knownissues +@item +@code{system-count} +(véase @ref{Variables de \paper para los saltos de línea}) -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. +@end itemize -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. +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 -@node Music layout -@section Music layout +@seealso +Referencia de la notación: +@ref{Cambiar los valores por omisión de los contextos}. -@menu -* Setting the staff size:: -* Score layout:: -@end menu +Fragmentos de código: +@rlsr{Spacing}. -@node Setting the staff size -@subsection Setting the staff size +@node Establecer el tamaño del pentagrama +@subsection Establecer el tamaño del pentagrama +@translationof Setting the staff size -@cindex tipografía, establecer tamaño de -@cindex pentagrama, establecer tamaño de -@funindex layout file +@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: @@ -621,9 +1133,9 @@ Para establecer el tamaño del pentagrama de forma individual para cada partitura, use @example \score@{ - ... - \layout@{ - #(layout-set-staff-size 15) + @dots{} + \layout @{ + #(layout-set-staff-size 15) @} @} @end example @@ -696,7 +1208,7 @@ 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}. @@ -708,71 +1220,85 @@ Fragmentos de código: 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 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 @@ -793,16 +1319,16 @@ afecta sólo a la última línea de la pieza. @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 @@ -811,16 +1337,18 @@ siguientes (suponiendo un compás de 4/4) se dividan cada cuatro 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 +@file{.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}. @@ -835,47 +1363,19 @@ novedosa y difícil. Hay más detalles disponibles en @rlsr{Spacing}. @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}. @@ -894,9 +1394,8 @@ 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 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 @@ -906,18 +1405,11 @@ predeterminado es @code{ly:optimal-breaking}, pero el valor se puede 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 @@ -937,7 +1429,7 @@ partes del libro. \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{} @@ -963,12 +1455,16 @@ partes del libro. @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 @@ -985,8 +1481,9 @@ 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 @@ -1000,7 +1497,7 @@ introducir vueltas de página en los lugares especificados. 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 @@ -1034,12 +1531,12 @@ 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 @@ -1082,8 +1579,9 @@ 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 @@ -1096,7 +1594,7 @@ de memoria, o con una gran cantidad de textos. Se habilita utilizando: @example \paper @{ - #(define page-breaking ly:minimal-breaking) + page-breaking = #ly:minimal-breaking @} @end example @@ -1106,8 +1604,9 @@ Fragmentos de código: @rlsr{Spacing}. -@node Explicit breaks -@subsection Explicit breaks +@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 @@ -1131,349 +1630,721 @@ las instrucciones @code{\pageBreak} explícitas y en ningún otro lugar. 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 Utilizar una voz adicional para los saltos de línea +@subsection Utilizar una voz adicional para los saltos de línea +@translationof Using an extra voice for breaks + +La información sobre saltos de línea y de página suele aparecer +directamente entremezclado dentro del código de notas. + +@example +music = \relative c'' @{ c4 c c c @} + +\score @{ + \new Staff @{ + \repeat unfold 2 @{ \music @} \break + \repeat unfold 3 @{ \music @} + @} +@} +@end example + +Esto hace sencillas de introducir a las instrucciones @code{\break} y +@code{\pageBreak}, pero mezcla la escritura de música con información +que especifica cómo se debe disponer la música sobre la página. +Podemos mantener la introducción de música y la información de saltos +de línea y de página en dos lugares separados mediante la introducción +de una voz adicional que contenga los saltos. Esta voz adicional +contiene solamente desplazamientos o @q{skips} junto con los +@code{\break}, @code{pageBreak} y otras informaciones sobre la +disposición de los saltos. + +@lilypond[quote,verbatim] +music = \relative c'' { c4 c c c } + +\score { + \new Staff << + \new Voice { + s1 * 2 \break + s1 * 3 \break + s1 * 6 \break + s1 * 5 \break + } + \new Voice { + \repeat unfold 2 { \music } + \repeat unfold 3 { \music } + \repeat unfold 6 { \music } + \repeat unfold 5 { \music } + } + >> +} +@end lilypond + +Este patrón resulta especialmente útil cuando se sobreescribe +@code{line-break-system-details} y las otras útiles (pero largas) +propiedades de @code{NonMusicalPaperColumnGrob}, como se explica en +@ref{Espaciado vertical}. + +@lilypond[quote,verbatim] +music = \relative c'' { c4 c c c } + +\score { + \new Staff << + \new Voice { + \overrideProperty "Score.NonMusicalPaperColumn" + #'line-break-system-details #'((Y-offset . 0)) + s1 * 2 \break + + \overrideProperty "Score.NonMusicalPaperColumn" + #'line-break-system-details #'((Y-offset . 35)) + s1 * 3 \break + + \overrideProperty "Score.NonMusicalPaperColumn" + #'line-break-system-details #'((Y-offset . 70)) + s1 * 6 \break + + \overrideProperty "Score.NonMusicalPaperColumn" + #'line-break-system-details #'((Y-offset . 105)) + s1 * 5 \break + } + \new Voice { + \repeat unfold 2 { \music } + \repeat unfold 3 { \music } + \repeat unfold 6 { \music } + \repeat unfold 5 { \music } } + >> +} +@end lilypond + + +@seealso +Referencia de la notación: +@ref{Espaciado vertical}. + +Fragmentos de código: +@rlsr{Spacing}. + + +@node Espaciado vertical +@section Espaciado vertical +@translationof Vertical spacing + +@cindex espaciado vertical +@cindex vertical, espaciado + +El espaciado vertical está controlado por tres factores: la cantidad +de espacio disponible (es decir, el tamaño del papel y los márgenes), +la separación entre los sistemas, y la separación entre los +pentagramas dentro de un sistema. + +@menu +* Espaciado vertical flexible dentro de los sistemas:: +* Posicionamiento explícito de los pentagramas y los sistemas:: +* Evitar las colisiones verticales:: +@end menu + + +@node Espaciado vertical flexible dentro de los sistemas +@subsection Espaciado vertical flexible dentro de los sistemas +@translationof Flexible vertical spacing within systems + +@cindex distancia entre pentagramas +@cindex pentagrama, distancia entre los +@cindex espacio entre pentagramas +@cindex espacio dentro de los sistemas + +Tres mecanismos distintos controlan el espaciado vertical flexible +dentro de los sistemas, uno por cada una de las categorías siguientes: + +@itemize + +@item +@emph{pautas sin agrupar}, + +@item +@emph{pautas agrupadas} (pautas dentro de un grupo de pentagramas como +@code{ChoirStaff}, etc.), y + +@item +@emph{líneas que no son pautas} (como @code{Lyrics}, +@code{ChordNames}, etc.). + +@end itemize + +@c TODO: Clarify this. This almost implies that non-staff lines +@c have NO effect on the spacing between staves. -mp + +La altura de cada sistema se determina en dos fases. Primero, todos +los pentagramas se disponen según la cantidad de espacio vacío +disponible. Después, las líneas que no son pautas se distribuyen +entre las pautas. + +Observe que los mecanismos de espaciado estudiados en esta sección +solamente controlan el espaciado vertical de las pautas y líneas que +no son pautas dentro de los sistemas individuales. El espaciado +vertical entre distintos sistemas, partituras, marcados y márgenes se +controla mediante variables de @code{\paper} que se estudian en +@ref{Flexible vertical spacing \paper variables}. + +@menu +* Propiedades de espaciado dentro de los sistemas:: +* Espaciado de pautas no agrupadas:: +* Espaciado de pautas agrupadas:: +@end menu + + +@node Propiedades de espaciado dentro de los sistemas +@unnumberedsubsubsec Propiedades de espaciado dentro de los sistemas +@translationof Within-system spacing properties + +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 } + \context { \ChordNames \alignToZero \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 { s2\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}) se almacena como una lista-A (lista +asociativa), y todas usan 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 +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. Esto sustituye a cualquier ajuste +heredado del grob @code{StaffGrouper} del grupo de pautas contenedor, +si existe. Si no está fijado, y no hay ninguna propiedad de +@code{StaffGrouper} que heredar, se usa la propiedad +@code{default-staff-staff-spacing}. + +@item default-staff-staff-spacing +Ajustes que utilizar para @code{staff-staff-spacing} cuando está sin +establecer. Se aplica a las pautas no agrupadas y a las pautas +agrupadas que no heredan los ajustes del grob @code{StaffGrouper}. + +@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. + +@c TODO: verify last clause below ("even if other...") + +@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. + +@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 + -@seealso -Fragmentos de código: -@rlsr{Spacing}. +@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). -@node Using an extra voice for breaks -@subsection Using an extra voice for breaks +@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 usará en su lugar +para cualquier pauta que esté dentro del grupo que tiene el valor +fijado. Véase también @code{default-staff-staff-spacing}. + +@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 usará en su lugar +para cualquier pauta dentro del grupo que tenga el valor fijado. +Véase también @code{default-staff-staff-spacing}. +@end table -La información sobre saltos de línea y de página suele aparecer -directamente entremezclado dentro del código de notas. +@seealso +Archivos de inicio: +@file{ly/engraver-init.ly}, +@file{scm/define-grobs.scm}. -@example -\new 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 @} - @} -@} -@end example +Referencia de funcionamiento interno: +@rinternals{Contexts}, +@rinternals{VerticalAxisGroup}, +@rinternals{StaffGrouper}. -Esto hace sencillas de introducir a las instrucciones @code{\break} y -@code{\pageBreak}, pero mezcla la escritura de música con información -que especifica cómo se debe disponer la música sobre la página. -Podemos mantener la introducción de música y la información de saltos -de línea y de página en dos lugares separados mediante la introducción -de una voz adicional que contenga los saltos. Esta voz adicional -contiene solamente desplazamientos o @q{skips} junto con los -@code{\break}, @code{pageBreak} y otras informaciones sobre la -disposición de los saltos. -@lilypond[quote,verbatim] -\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 +@node Espaciado de pautas no agrupadas +@unnumberedsubsubsec Espaciado de pautas no agrupadas +@translationof Spacing of ungrouped staves -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}. +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. -@lilypond[quote,verbatim] -\new Score { - \new Staff << - \new Voice { +Las siguientes propiedades afectan al espaciado de las pautas @emph{no +agrupadas}: - \overrideProperty "Score.NonMusicalPaperColumn" - #'line-break-system-details #'((Y-offset . 0)) - s1 * 2 \break +@itemize +@item Propiedades de @code{VerticalAxisGroup}: +@itemize +@item @code{staff-staff-spacing} +@end itemize +@end itemize - \overrideProperty "Score.NonMusicalPaperColumn" - #'line-break-system-details #'((Y-offset . 35)) - s1 * 3 \break +Estas propiedades de grob se describen individualmente más arriba; +véase @ref{Propiedades de espaciado dentro de los sistemas}. - \overrideProperty "Score.NonMusicalPaperColumn" - #'line-break-system-details #'((Y-offset . 70)) - s1 * 6 \break +Están implicadas ciertas propiedades adicionales para las pautas que +son parte de un grupo; véase @ref{Espaciado de pautas agrupadas}. - \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 } - } - >> +El ejemplo siguiente muestra cómo la propiedad +@code{staff-staff-spacing} puede afectar al espaciado de pautas no +agrupadas: + +@lilypond[verbatim,quote,staffsize=16] +\layout { + \context { + \Staff + \override VerticalAxisGroup #'staff-staff-spacing = + #'((basic-distance . 8) + (minimum-distance . 7) + (padding . 1)) + } } -@end lilypond +\new StaffGroup << + % 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 #'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} +@item @code{default-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 - << - \new Staff {c' d' e' f'} - \new Staff \with { - \override VerticalAxisGroup #'keep-fixed-while-stretching = ##t - } - {c' d' e' f'} + \new PianoStaff \with { + \override StaffGrouper #'staffgroup-staff-spacing #'basic-distance = #20 + } << + \new Staff { c'1 } + \new Staff { c'1 } >> - \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 +@unnumberedsubsubsec Espaciado de las líneas que no son pautas -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 } >> } + +\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 @@ -1498,14 +2369,16 @@ instrucción especial @code{\overrideProperty}: #'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, @@ -1515,7 +2388,7 @@ sobreescritura. @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 { @@ -1540,8 +2413,8 @@ sobreescritura. 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 @@ -1550,7 +2423,7 @@ el punto de origen vertical de cada sistema, podemos establecer el par @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 { @@ -1585,12 +2458,12 @@ fijamos un valor. Observe también que aquí la propiedad 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 { @@ -1600,15 +2473,15 @@ usando la subpropiedad @code{alignment-offsets} de \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' } } @@ -1627,12 +2500,12 @@ Observe que aquí asignamos dos valores distintos al atributo @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 { @@ -1642,15 +2515,15 @@ vertical de los pentagramas pero no de los grupos de pentagramas. \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' } } @@ -1667,20 +2540,21 @@ vertical de los pentagramas pero no de los grupos de pentagramas. 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 @@ -1689,73 +2563,9 @@ 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 .ly -lilypond .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 @@ -1787,7 +2597,7 @@ compiten por el mismo espacio, el que tiene la prioridad @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 @@ -1804,7 +2614,7 @@ El relleno vertical entre un objeto fuera del pentagrama y los grobs 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] \once \override TextScript #'outside-staff-padding = #0 a'^"This text is placed very close to the note" \once \override TextScript #'outside-staff-padding = #3 @@ -1822,7 +2632,7 @@ establecimiento del relleno horizontal @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 @@ -1841,23 +2651,25 @@ 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 @@ -1873,7 +2685,7 @@ Por ejemplo, la pieza siguiente contiene numerosas blancas, negras y 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 @@ -1918,12 +2730,15 @@ seguidas por un espacio proporcional a su duración en relación con la 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} @@ -1935,16 +2750,16 @@ con los valores predeterminados y otra con correcciones exageradas: @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 @@ -1957,6 +2772,9 @@ Referencia de funcionamiento interno: @rinternals{StaffSpacing}, @rinternals{NonMusicalPaperColumn}. +Ensayo sobre grabado musical automatizado: +@ressay{Espaciado óptico}. + @knownissues @@ -1972,8 +2790,9 @@ medida necesaria. 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 @@ -1982,7 +2801,7 @@ secciones que tienen distinta noción de las notas largas y cortas. 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 @@ -2004,8 +2823,9 @@ Referencia de funcionamiento interno: @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 @@ -2037,7 +2857,7 @@ que @code{ly:make-moment} construye una duración, por lo que @code{1 \context { \Score \override SpacingSpanner - #'base-shortest-duration = #(ly:make-moment 1 16) + #'base-shortest-duration = #(ly:make-moment 1 16) } } } @@ -2053,29 +2873,35 @@ símbolos y forzar un espaciado de duraciones iguales uniforme, use @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 @@ -2086,8 +2912,9 @@ 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 @@ -2112,6 +2939,9 @@ Si se fija un valor verdadero para @code{ragged-right} en el bloque 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 @@ -2127,8 +2957,6 @@ ocupa su longitud horizontal natural. @c stretch as the previous line. eTeX uses \lastlinefit to @c interpolate between both these solutions. -@c interesting! -FV - @example \layout @{ indent = #0 @@ -2143,8 +2971,9 @@ 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 @@ -2173,15 +3002,17 @@ Comenzamos con el siguiente ejemplo de un solo compás, que usa un 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 @@ -2201,17 +3032,23 @@ notación proporcional. Se activa la notación proporcional con el 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 @@ -2235,9 +3072,9 @@ espaciado de toda la música. La función Scheme de LilyPond denominador que, juntos, expresan una cierta fracción de redonda. La 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 @@ -2247,41 +3084,59 @@ pequeñas aplican un espaciado más suelto; las duraciones de referencia 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 @@ -2300,48 +3155,57 @@ espaciado clásico, cuando añadimos un segundo pentagrama con un tipo 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 segunda mitad del 9-illo están espaciadas de forma ligeramente más ancha que las de la primera mitad del 9-illo. Para asegurar una @@ -2349,23 +3213,29 @@ ampliación uniforme, activamos @code{uniform-stretching}, que es una 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, @@ -2393,14 +3263,14 @@ está activado para la partitura completa o desactivado para la 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 { @@ -2415,7 +3285,7 @@ siguiente muestra que hay una pequeña cantidad de espacio @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 @@ -2507,14 +3377,15 @@ 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 @@ -2524,16 +3395,17 @@ 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 @@ -2551,6 +3423,7 @@ página, establezca @code{annotate-spacing} en el bloque @code{\paper}: } @end lilypond + @noindent Todas las dimensiones de disposición se muestran en espacios de pentagrama, independientemente de las unidades especificadas en los @@ -2581,19 +3454,21 @@ 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: @@ -2606,8 +3481,7 @@ parte baja del papel. @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 @} @@ -2643,14 +3517,13 @@ pentagrama: @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 { @@ -2700,8 +3573,8 @@ completa. @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}.