1 @c -*- coding: utf-8; mode: texinfo; documentlanguage: es -*-
2 @c This file is part of lilypond.tely
4 Translation of GIT committish: 46458e0e0fafcb4dab3e8127110cef5984523e10
6 When revising a translation, copy the HEAD committish of the
7 version that you are working on. See TRANSLATION for details.
13 @chapter Spacing issues
15 La disposición global sobre el papel viene determinada por tres
16 factores: el diseño de página, los saltos de línea y el espaciado.
17 Estos factores influyen entre sí. La elección de uno u otro espaciado
18 determina qué densidad termina teniendo cada sistema de música. Esto
19 influye en el lugar en que se eligen los saltos de línea y, en último
20 término, en el número de páginas que tiene una partitura.
22 Considerado globalmente, este proceso se produce en cuatro fases: en
23 primer lugar se eligen unas distancias elásticas o @q{muelles},
24 basados en la duración de las figuras. Se prueban todas las
25 combinaciones de saltos de línea posibles, y para cada una de ellas se
26 calcula una puntuación de @q{maldad}. Después se hace una estimación
27 de la altura de cada uno de los posibles sistemas. Finalmente se
28 selecciona una combinación de saltos de página y de línea de tal forma
29 que ni el espaciado horizontal ni el vertical estén demasiado
30 estrechos ni estirados.
32 Los ajustes que influyen en la disposición se pueden agrupar en dos
33 bloques. El bloque @code{\paper @{...@}} se sitúa fuera de los
34 bloques @code{\score @{...@}} y contiene ajustes relacionados con el
35 documento como un todo. El bloque @code{\layout @{...@}} se sitúa
36 dentro de un bloque @code{\score @{...@}} y contiene ajustes para
37 dicha partitura en concreto. Si sólo tiene un bloque @code{\score
38 @{...@}}, los dos tienen el mismo efecto. En general las
39 instrucciones que se muestran en este capítulo se pueden poner en
40 cualquiera de los dos.
47 * Horizontal spacing::
48 * Fitting music onto fewer pages::
53 @section Paper and pages
55 Esta sección se ocupa de los límites que definen la zona del papel en
56 que se puede imprimir la música.
65 @subsection Paper size
67 @cindex papel, tamaño del
68 @cindex página, tamaño de la
70 Existen dos funciones para cambiar el tamaño del papel:
71 @code{set-default-paper-size} (establecer tamaño de página
72 predeterminado) y @code{set-paper-size} (establecer tamaño de página).
73 @code{set-default-paper-size} se debe poner en el ámbito del nivel
74 superior, y @code{set-paper-size} se debe poner en un bloque
78 #(set-default-paper-size "a4")
83 #(set-paper-size "a4")
88 @code{set-default-paper-size} establece el tamaño de todas las
89 páginas, mientras que @code{set-paper-size} establece sólo el tamaño
90 de las páginas a las que se aplica el bloque @code{\paper}. Por
91 ejemplo, si el bloque @code{\paper} está al principio del archivo,
92 aplica el tamaño de papel a todas las páginas. Si el bloque
93 @code{\paper} está dentro de un bloque @code{\book}, entonces el
94 tamaño del papel sólo se aplica a ese libro.
96 Se encuentran disponibles los tamaños de papel más comunes, entre
97 ellos @code{a4}, @code{letter}, @code{legal} y @code{11x17} (conocido
98 también como tabloide). Están contemplados muchos más tamaños de papel
99 de forma predeterminada. Para ver más detalles, consulte
100 @file{scm/@/paper@/.scm} y busque la definición de @code{paper-alist}.
102 @c TODO add a new appendix for paper sizes (auto-generated) -pm
104 @warning{El tamaño predeterminado del papel es @code{a4}.}
106 Se pueden añadir tamaños adicionales editando la definición de
107 @code{paper-alist} en el archivo de inicio @file{scm/@/paper@/.scm},
108 aunque se sobreescribirán en la siguiente reinstalación del programa.
112 @cindex horizontal, papel
114 Si se añade el símbolo @code{'landscape} (apaisado) como argumento a
115 @code{set-default-paper-size}, las páginas se giran 90 grados y se
116 establece en consonancia una mayor longitud de las líneas.
119 #(set-default-paper-size "a6" 'landscape)
122 Al establecer el tamaño del papel se ajustan un cierto número de
123 variables del @code{\paper}, tales como los márgenes. Para utilizar
124 un tamaño de página determinado con variables de @code{\paper}
125 alteradas, establezca el tamaño de página antes de dar valores a las
131 @file{scm/@/paper@/.scm}.
133 Fragmentos de código:
137 @node Page formatting
138 @subsection Page formatting
140 Los márgenes, encabezamientos y pies de página y otras variables de
141 diseño de página se establecen automáticamente de acuerdo con el
144 Esta sección relaciona y describe cierto número de variables del papel
145 que se pueden alterar.
148 * Vertical dimensions::
149 * Horizontal dimensions::
150 * Other layout variables::
154 @node Vertical dimensions
155 @unnumberedsubsubsec Vertical dimensions
157 Estas variables se utilizan para establecer las diferentes dimensiones
158 verticales de la página:
164 @item after-title-space
165 @funindex after-title-space
167 Espacio entre el título y el primer sistema.
168 Predeterminado: @code{5\mm}.
170 @item before-title-space
171 @funindex before-title-space
173 Distancia entre el último sistema de la pieza anterior y el título de
174 la siguiente. Predeterminado: @code{10\mm}.
176 @item between-system-padding
177 @funindex between-system-padding
179 Distancia mínima que se deja siempre entre el símbolo más bajo de un
180 sistema y el más alto del siguiente. Predeterminado: @code{4\mm}.
182 El aumento de este valor separa más los sistemas cuyas cajas
183 circundantes casi se tocan.
185 @item between-system-space
186 @funindex between-system-space
188 Distancia entre los sistemas. Es la distancia ideal desde el centro
189 del pentagrama inferior de un sistema hasta el centro del pentagrama
190 superior del sistema siguiente. Predeterminado: @code{20\mm}.
192 El aumento de este valor da a la página un aspecto más regular a costa
193 de utilizar más espacio vertical.
195 @item between-title-space
196 @funindex between-title-space
198 Distancia entre títulos consecutivos (p.ej., el título del libro y el
199 título de una pieza). Predeterminado: @code{2\mm}.
202 @funindex bottom-margin
204 Margen entre el pie de página y la parte inferior del papel.
205 Predeterminado: @code{6\mm}.
207 @item foot-separation
208 @funindex foot-separation
210 Distancia entre el sistema situado más abajo y el pie de página.
211 Predeterminado: @code{4\mm}.
213 @item head-separation
214 @funindex head-separation
216 Distancia entre el sistema situado más arriba y el encabezamiento de
217 la página. Predeterminado: @code{4\mm}.
220 @funindex page-top-space
222 Distancia desde la parte alta del área imprimible hasta el centro del
223 primer pentagrama. Esto sólo funciona para pentagramas con una
224 anchura vertical pequeña. Los pentagramas grandes se establecen con
225 la parte alta de su caja circundante alineada a la parte alta del área
226 imprimible. Predeterminado: @code{12\mm}.
229 @funindex paper-height
231 Altura de la página. Predeterminado: altura del tamaño actual del
232 papel. Para ver más detalles, consulte @ref{Paper size}.
237 Margen entre el encabezamiento y la parte alta del papel.
238 Predeterminado: @code{5\mm}.
245 El encabezamiento y el pie se crean por parte de las funciones
246 @code{make-footer} y @code{make-header}, definidas dentro de
247 @code{\paper}. Las implementaciones predeterminadas están en
248 @file{ly/paper-defaults.ly} y en @file{ly/titling-init.ly}.
250 El diseño de la página en sí está realizado por dos funciones dentro
251 del bloque @code{\paper}, @code{page-music-height} y
252 @code{page-make-stencil}. El primero informa al algoritmo de saltos
253 de línea de la cantidad de espacio que está disponible en una página,
254 y el último crea la propia página dado el sistema que poner sobre
257 Se pueden definir valores del bloque @code{\paper} en Scheme. En tal
258 caso, @code{mm}, @code{in}, @code{pt}, y @code{cm} son variables que
259 están definidas en @file{paper-defaults.ly} con valores en milímetros.
260 Por ello el valor 2 cm se debe multiplicar en el siguiente ejemplo:
264 #(define bottom-margin (* 2 cm))
276 ragged-last-bottom = ##t
280 Este segundo ejemplo centra los números de página en la parte baja del
285 print-page-number = ##t
286 print-first-page-number = ##t
287 oddHeaderMarkup = \markup \fill-line @{ " " @}
288 evenHeaderMarkup = \markup \fill-line @{ " " @}
289 oddFooterMarkup = \markup @{ \fill-line @{
290 \bold \fontsize #3 \on-the-fly #print-page-number-check-first
291 \fromproperty #'page:page-number-string @} @}
292 evenFooterMarkup = \markup @{ \fill-line @{
293 \bold \fontsize #3 \on-the-fly #print-page-number-check-first
294 \fromproperty #'page:page-number-string @} @}
300 Referencia de la notación:
301 @ref{Vertical spacing between systems}.
303 Fragmentos de código:
307 @node Horizontal dimensions
308 @unnumberedsubsubsec Horizontal dimensions
310 @warning{Si se establece @code{paper-width} manualmente,
311 @code{line-width}, @code{left-margin}, @code{indent} y
312 @code{short-indent} pueden necesitar ajustarse también.}
314 Existe un cierto número de variables que determinan las dimensiones
315 horizontales de una página:
319 @item horizontal-shift
320 @funindex horizontal-shift
322 Medida en que todos los sistemas (incluidos los títulos de cabecera y
323 los separadores de sistemas) se desplazan a la derecha.
324 Predeterminado: @code{0.0}.
329 Nivel de sangrado para el primer sistema de una partitura.
330 Predeterminado: @code{paper-width} dividido por @code{14}, tal y como
331 viene determinado por @code{set-default-paper-size} o
332 @code{set-paper-size}.
335 @funindex left-margin
337 El margen entre el límite izquierdo del papel y el comienzo de los
338 sistemas. Predeterminado: @code{10\mm}, tal y como se define por
339 parte de @code{set-default-paper-size} o de @code{set-paper-size}.
344 Ancho de los sistemas. Predeterminado: @code{paper-width} menos
345 @code{20\mm}, como viene determinado por @code{set-default-paper-size}
346 o por @code{set-paper-size}.
349 @funindex paper-width
351 Ancho de la página. Predeterminado: la anchura del tamaño actual del
352 papel. Para ver más detalles, consulte @ref{Paper size}.
355 @funindex short-indent
357 Nivel de sangrado para todos los sistemas de una partitura excepto el
358 primero. Predeterminado: @code{0}, como se determina en
359 @code{set-default-paper-size} o en @code{set-paper-size}.
365 Fragmentos de código:
371 La opción @code{right-margin} está definida pero no establece aún el
372 margen derecho. El valor del margen derecho se debe definir ajustando
373 los valores de @code{left-margin} y de @code{line-width}.
376 @node Other layout variables
377 @unnumberedsubsubsec Other layout variables
379 Estas variables se pueden usar para ajustar el diseño de la página en
384 @item auto-first-page-number
385 @funindex auto-first-page-number
387 El algoritmo de división de páginas está afectado por el hecho de que
388 el número de la primera página sea par o impar. Si está establecido
389 al valor verdadero, el algoritmo de división de páginas decide si
390 comenzar con un número par o impar. Esto hace que el número de la
391 primera página se quede como está, o que se aumente en una unidad.
392 Predeterminado: @code{##f}.
396 FIXME: this variable is used, but I don't know what it does. -pm
397 @item blank-after-score-page-force
398 @funindex blank-after-score-page-force
404 @item blank-last-page-force
405 @funindex blank-last-page-force
407 Penalización por terminar la partitura en una página de numeración
408 impar. Predeterminado: @code{0}.
410 @item blank-page-force
411 @funindex blank-page-force
413 Penalización por tener una página en blanco en medio de una partitura.
414 Esto no se usa por parte de @code{ly:optimal-breaking} porque éste
415 nunca considera la posibilidad de tener páginas en blanco en mitad de
416 una partitura. Predeterminado: @code{5}.
418 @item first-page-number
419 @funindex first-page-number
421 Valor del número de la primera página. Predeterminado: @code{#1}.
423 @item max-systems-per-page
424 Máximo número de sistemas que tendrán cabida en una página. Está
425 contemplado por el momento solamente por parte del algoritmo
426 @code{ly:optimal-breaking}. Predeterminado: no establecido.
428 @item min-systems-per-page
429 Mínimo número de sistemas que habrá en una página. Puede hacer que
430 las páginas se llenen en exceso si se establece a un valor grande.
431 Por el momento solamente está contemplado por parte del algoritmo
432 @code{ly:optimal-breaking}. Predeterminado: no establecido.
434 @item page-breaking-between-system-padding
435 @funindex page-breaking-between-system-padding
437 Engaña al divisor de páginas para que crea que
438 @code{between-system-padding} está establecido a algo distinto de lo
439 que está realmente. Por ejemplo, si esta variable se establece a algo
440 mucho mayor que @code{between-system-padding}, entonces el divisor de
441 páginas colocará menos sistemas en cada página. Predeterminado: no
447 Número de páginas que usar para una partitura. Predeterminado: sin
450 @item page-limit-inter-system-space
451 @funindex page-limit-inter-system-space
453 Si tiene un valor verdadero, limita el espacio entre los sistemas de
454 una página en la que sobra mucho espacio. Predeterminado: @code{##f}.
455 Para ver más detalles, consulte @ref{Vertical spacing between
458 @item page-limit-inter-system-space-factor
459 @funindex page-limit-inter-system-space-factor
461 Factor usado por @code{page-limit-inter-system-space}.
462 Predeterminado: @code{1.4}. Para ver más detalles, consulte
463 @ref{Vertical spacing between systems}.
465 @item page-spacing-weight
466 @funindex page-spacing-weight
468 Importancia relativa del espacio (vertical) de las páginas y el
469 espaciado (horizontal) de las líneas. Los valores altos hacen que el
470 espaciado de la página tenga más importancia. Predeterminado:
473 @item print-all-headers
474 @funindex print-all-headers
476 Si está establecido a un valor verdadero, imprime todas las cabeceras
477 para cada una de las @code{\score} en la salida impresa. Normalmente
478 sólo se imprimen las variables de encabezamiento de pieza y opus.
479 Predeterminado: @code{##f}.
481 @item print-first-page-number
482 @funindex print-first-page-number
484 Si está establecido a un valor verdadero, se imprime un número de
485 página en la primera página. Predeterminado: @code{##f}.
487 @item print-page-number
488 @funindex print-page-number
490 Si está establecido a un valor falso, no se imprimen los números de
491 página. Predeterminado: @code{##t}.
494 @funindex ragged-bottom
496 Si está establecido a un valor verdadero, los sistemas no ocuparán
497 verticalmente toda la altura de la página. Esto no afecta a la última
498 página. Predeterminado: @code{##f}.
500 Esto se debería establecer al valor verdadero para piezas que tienen
501 sólo dos o tres sistemas por página, por ejemplo partituras
505 @funindex ragged-last
507 Si está establecido a un valor verdadero, el último sistema de la
508 partitura no llenará la anchura de la línea. En su lugar, el último
509 sistema termina en su longitud horizontal natural. Predeterminado:
512 @item ragged-last-bottom
513 @funindex ragged-last-bottom
515 Si está establecido a un valor falso, los sistemas se repartirán
516 verticalmente por toda la última página. Predeterminado: @code{##t}.
518 Las piezas que llenan generosamente dos o más páginas deberían tener
519 esto establecido al valor verdadero.
521 También afecta a la última página de las partes de libro, es decir,
522 partes de un libro que se han creado con bloques @code{\bookpart}.
525 @funindex ragged-right
527 Si está establecido a un valor verdadero, los sistemas no llenarán el
528 ancho de línea disponible. En su lugar, los sistemas terminan en su
529 longitud horizontal natural. Predeterminado: @code{##f}.
531 Si la partitura sólo tiene un sistema, el valor predeterminado es
534 @item system-separator-markup
535 @funindex system-separator-markup
537 Objeto de marcado que se inserta entre los sistemas. Se suele usar
538 para partituras orquestales. Predeterminado: sin establecer.
540 Se ofrece la instrucción de marcado @code{\slashSeparator} como un
541 valor predeterminado apropiado, por ejemplo
543 @lilypond[quote,ragged-right]
544 #(set-default-paper-size "a6" 'landscape)
547 \relative { c1 \break c1 }
550 system-separator-markup = \slashSeparator
556 @funindex system-count
558 Cantidad de sistemas que usar por parte de la partitura.
559 Predeterminado: sin establecer.
561 @item systems-per-page
562 @funindex systems-per-page
564 Número de sistemas que se deben colocar en cada página. Está
565 contemplado solamente por parte del algoritmo
566 @code{ly:optimal-breaking} por el momento. Predeterminado: no
573 Fragmentos de código:
579 El encabezamiento de página predeterminado pone el número de página y
580 el campo @code{instrument} del bloque @code{\header} sobre la misma
583 Los títulos de cabecera (tomados de la sección @code{\header@{@}}) se
584 tratan como un sistema, por lo que @code{ragged-bottom} y
585 @code{ragged-last-bottom} añaden espacio entre los títulos y el primer
586 sistema de la partitura.
590 @section Music layout
593 * Setting the staff size::
598 @node Setting the staff size
599 @subsection Setting the staff size
601 @cindex tipografía, establecer tamaño de
602 @cindex pentagrama, establecer tamaño de
603 @funindex layout file
605 El @strong{tamaño de pentagrama} predeterminado se establece en 20
606 puntos. Esto se puede modificar de dos maneras:
608 Para establecer globalmente el tamaño del pentagrama para todas las
609 partituras de un archivo (o en un bloque @code{book}, para ser
610 exactos), utilice @code{set-global-staff-size}.
613 #(set-global-staff-size 14)
617 Esto establece el tamaño global predeterminado a una altura de
618 pentagrama de 14pt y escala todas las tipografías según corresponda.
620 Para establecer el tamaño del pentagrama de forma individual para cada
626 #(layout-set-staff-size 15)
631 La fuente tipográfica Feta ofrece símbolos musicales a ocho tamaños
632 distintos. Cada fuente tipográfica está afinada para un tamaño de
633 pentagrama distinto: a un tamaño menor la tipografía se vuelve más
634 pesada, para que coincida con las líneas de pentagrama relativamente
635 más gruesas. Los tamaños de tipografía recomendados están
636 relacionados en la tabla siguiente:
639 @multitable @columnfractions .15 .2 .22 .2
641 @item @b{nombre de la fuente}
642 @tab @b{altura del pentagrama (pt)}
643 @tab @b{altura del pentagrama (mm)}
649 @tab partituras de bolsillo
674 @tab particellas estándar
685 @c modern rental material?
690 Estas tipografías están disponibles en cualquier tamaño. La propiedad
691 de contexto @code{fontSize} y la propiedad de disposición
692 @code{staff-space} (en @rinternals{StaffSymbol}) se pueden usar para
693 afinar el tamaño de los pentagramas individuales. Los tamaños de
694 pentagrama individuales están en relación al tamaño global.
698 Referencia de la notación:
699 @ref{Selecting notation font size}.
701 Fragmentos de código:
707 @code{layout-set-staff-size} no cambia la distancia entre las líneas
712 @subsection Score layout
716 Mientras que @code{\paper} contiene ajustes relativos al formato de
717 página del documento completo, @code{\layout} contiene ajustes para la
718 disposición específica de cada partitura.
724 \override VerticalAxisGroup #'minimum-Y-extent = #'(-6 . 6)
727 \override TextScript #'padding = #1.0
728 \override Glissando #'thickness = #3
735 Referencia de la notación:
736 @ref{Changing context default settings}.
738 Fragmentos de código:
748 * Optimal page breaking::
749 * Optimal page turning::
750 * Minimal page breaking::
752 * Using an extra voice for breaks::
757 @subsection Line breaking
759 @cindex saltos de línea
760 @cindex línea, saltos de
762 Normalmente los saltos de línea se determinan automáticamente. Se
763 eligen de forma que las líneas no aparezcan demasiado apretadas ni
764 demasiado sueltas, y que las líneas consecutivas tengan una densidad
765 similar. Ocasionalmente podemos querer sobreescribir los saltos
766 automáticos; podemos hacerlo especificando @code{\break}. Esto fuerza
767 un salto de línea en ese punto. Sin embargo, los saltos de línea sólo
768 pueden suceder al final de los compases @q{completos}, es decir, donde
769 no queda ninguna nota o grupo especial @q{colgando} por encima de la
770 línea divisoria. Si queremos poner un salto de línea donde no hay
771 línea divisoria, podemos forzar una barra de compás invisible
772 introduciendo @code{\bar ""}, aunque de nuevo no deben quedar notas
773 colgando en ninguno de los pentagramas en este punto, o se ignorarán.
775 La instrucción opuesta, @code{\noBreak}, prohíbe un salto de línea en
776 la barra divisoria en que se inserta.
778 Los ajustes más básicos que influyen sobre el espaciado de las líneas
779 son @code{indent} y @code{line-width}. Se establecen dentro del bloque
780 @code{\layout}. Controlan el sangrado de la primera línea de música,
781 y la longitud de las líneas.
783 Si se establece @code{ragged-right} a verdadero en el bloque
784 @code{\layout}, los sistemas terminan en su longitud horizontal
785 natural, en lugar de distribuirse horizontalmente para llenar toda la
786 línea. Esto es de utilidad para fragmentos cortos, y para efectuar una
787 comprobación de lo apretado que es el espaciado natural.
789 @c TODO Check and add para on default for ragged-right
791 La opción @code{ragged-last} es similar a @code{ragged-right}, pero
792 afecta sólo a la última línea de la pieza.
804 @cindex regular line breaks
805 @cindex four bar music.
807 Para saltos de línea a intervalos regulares utilice @code{\break}
808 separado mediante desplazamientos con @code{\skip} y repetidos con
809 @code{\repeat}. Por ejemplo, esto haría que los 28 compases
810 siguientes (suponiendo un compás de 4/4) se dividan cada cuatro
811 compases, y sólo en dichos lugares:
814 << \repeat unfold 7 @{
815 s1 \noBreak s1 \noBreak
816 s1 \noBreak s1 \break @}
817 @emph{the real music}
822 Una configuración de división de líneas se puede guardar como archivo
823 @code{.ly} automáticamente. Ello permite que alineaciones verticales
824 se estiren para que encajen en las páginas durante una segunda
825 ejecución del proceso de formateo. Esta posibilidad es bastante
826 novedosa y difícil. Hay más detalles disponibles en @rlsr{Spacing}.
838 Referencia de funcionamiento interno:
839 @rinternals{LineBreakEvent}.
841 Fragmentos de código:
847 Sólo pueden ocurrir saltos de línea si hay una @q{buena} línea
848 divisoria. Una nota colgando de una línea divisoria no es adecuada,
851 @lilypond[quote,ragged-right,relative=2,fragment,verbatim]
852 c4 c2 << c2 {s4 \break } >> % this does nothing
853 c2 c4 | % a break here would work
854 c4 c2 c4 ~ \break % as does this break
858 Esto se puede evitar eliminando el grabador
859 @code{Forbid_line_break_engraver}. Observe que los saltos de línea
860 forzados manualmente se tienen que añadir en paralelo con la música.
862 @lilypond[quote,ragged-right,verbatim]
864 \remove Forbid_line_break_engraver
866 c4 c2 << c2 {s4 \break } >> % now the break is allowed
871 De forma parecida, los saltos de línea están prohibidos normalmente
872 cuando las barras cruzan a las líneas divisorias. Este comportamiento
873 se puede modificar con el establecimiento de @code{\override Beam
878 @subsection Page breaking
880 Se puede sobreescribir el mecanismo predeterminado de salto de página
881 insertando instrucciones @code{\pageBreak} o @code{\noPageBreak}.
882 Estas instrucciones son análogas a @code{\break} y @code{\noBreak}.
883 Se deben insertar en una línea divisoria. Estas instrucciones fuerzan
884 y prohíben, respectivamente, la eventualidad de un salto de página.
885 Por supuesto, la instrucción @code{\pageBreak} también fuerza un salto
888 Las instrucciones @code{\pageBreak} y @code{\noPageBreak} también se
889 pueden insertar en el nivel más alto, entre las partituras y los
890 elementos de marcado situados en el nivel superior.
892 Hay ajustes análogos a @code{ragged-right} y @code{ragged-last} que
893 tienen el mismo efecto sobre el espaciado vertical:
894 @code{ragged-bottom} y @code{ragged-last-bottom}. Si están
895 establecidos a @code{##t} los sistemas de todas las páginas o sólo de
896 la última página, respectivamente, no se verán justificados
899 Para ver más detalles, consulte @ref{Vertical spacing}.
901 Los saltos de página se calculan por medio de la función
902 @code{page-breaking}. LilyPond ofrece tres algoritmos para el cómputo
903 de los saltos de página: @code{ly:optimal-breaking},
904 @code{ly:page-turn-breaking} y @code{ly:minimal-breaking}. El
905 predeterminado es @code{ly:optimal-breaking}, pero el valor se puede
906 cambiar en el bloque @code{\paper}:
910 #(define page-breaking ly:page-turn-breaking)
914 @c TODO Check this -td
915 El antiguo algoritmo de división de páginas se llama
916 @code{optimal-page-breaks}. Si tiene problemas con los nuevos
917 divisores de página, puede habilitar el antiguo como forma de rodear
923 Cuando un libro tiene muchas partituras y páginas, puede ser difícil
924 resolver el problema de los saltos de página, necesitando mucha
925 memoria y prolongados tiempos de procesamiento. Para facilitar el
926 proceso de división en páginas, se usan los bloques @code{\bookpart}
927 para dividir el libro en varias partes: los saltos de página se
928 producen de manera independiente en cada parte. También se pueden
929 usar diferentes funciones de división en páginas para las distintas
935 subtitle = "Prefacio"
938 %% En una parte que consiste en texto principalmente,
939 %% puede ser preferible ly:minimal-breaking
940 #(define page-breaking ly:minimal-breaking)
942 \markup @{ @dots{} @}
946 %% En esta parte, consistente en música, se usa la función
947 %% óptima predeterminada de saltos de página.
949 subtitle = "Primer movimiento"
960 @funindex \noPageBreak
966 Fragmentos de código:
970 @node Optimal page breaking
971 @subsection Optimal page breaking
973 @funindex ly:optimal-breaking
975 La función @code{ly:optimal-breaking} es el método predeterminado de
976 LilyPond para determinar los saltos de página. Intenta hallar una
977 división de páginas que haga mínimos el apretujamiento y la
978 distensión, tanto horizontal como verticalmente. A diferencia de
979 @code{ly:page-turn-breaking}, no tiene un concepto de los pasos de
984 Fragmentos de código:
988 @node Optimal page turning
989 @subsection Optimal page turning
991 @funindex ly:page-turn-breaking
993 Con frecuencia es necesario encontrar una configuración de división de
994 páginas de manera que haya un silencio al final de una página de cada
995 dos. De esta forma, el músico puede pasar la página sin perder notas.
996 La función @code{ly:page-turn-breaking} trata de encontrar una
997 división de páginas que haga mínimos el apretujamiento y el
998 estiramiento, pero con la restricción añadida de que sólo se permite
999 introducir vueltas de página en los lugares especificados.
1001 Hay dos etapas en el uso de esta función de división de páginas. En
1002 primer lugar debemos habilitarlo en el bloque @code{\paper}, como se
1003 explicó en @ref{Page breaking}. Entonces debemos decirle a la función
1004 dónde nos gustaría permitir los saltos de página.
1006 Hay dos formas de conseguir la segunda tarea. Primero, podemos
1007 especificar manualmente cada uno de los pasos de página potenciales,
1008 insertando @code{\allowPageTurn} en nuestro archivo de entrada en los
1011 Si esto es demasiado tedioso, podemos añadir un grabador
1012 @code{Page_turn_engraver} a un contexto Staff o Voice. El grabador
1013 @code{Page_turn_engraver} analizará el contexto en busca de secciones
1014 sin notas (observe que no busca silencios, sino la ausencia de notas.
1015 Se hace así para que la polifonía en un solo pentagrama con silencios
1016 en una de las voces no arruine la labor del grabador
1017 @code{Page_turn_engraver}). Cuando encuentra una sección sin notas
1018 suficientemente larga, el grabador @code{Page_turn_engraver} inserta
1019 un @code{\allowPageTurn} en la última barra de compás de dicha
1020 sección, a no ser que haya una barra @q{especial} de compás (como una
1021 doble barra), en cuyo caso se insertará el @code{\allowPageTurn} en la
1022 última barra @q{especial} de compás de la sección.
1024 @funindex minimumPageTurnLength
1025 El grabador @code{Page_turn_engraver} lee la propiedad de contexto
1026 @code{minimumPageTurnLength} para determinar qué longitud debe tener
1027 una sección sin notas antes de que se considere la posibilidad de un
1028 paso de página. El valor predeterminado para
1029 @code{minimumPageTurnLength} es @code{#(ly:make-moment 1 1)}. Si
1030 quiere inhabilitar las vueltas de página, puede establecerlo a algún
1034 \new Staff \with @{ \consists "Page_turn_engraver" @}
1037 R1 | % a page turn will be allowed here
1039 \set Staff.minimumPageTurnLength = #(ly:make-moment 5 2)
1040 R1 | % a page turn will not be allowed here
1042 R1*2 | % a page turn will be allowed here
1047 @funindex minimumRepeatLengthForPageTurn
1048 El grabador @code{Page_turn_engraver} detecta las repeticiones de
1049 primera y segunda vez. Sólo permite un pase de página durante la
1050 repetición si hay suficiente tiempo al principio y al final de la
1051 repetición para volver a pasar la página hacia atrás. El grabador
1052 @code{Page_turn_engraver} también puede inhabilitar los pasos de
1053 página si la repetición es muy corta. Si establecemos la propiedad de
1054 contexto @code{minimumRepeatLengthForPageTurn} entonces el grabador
1055 @code{Page_turn_engraver} sólo permitirá los pases de página en las
1056 repeticiones cuya duración sea mayor que este valor.
1058 Las instrucciones de paso de página, @code{\pageTurn},
1059 @code{\noPageTurn} y @code{\allowPageTurn}, se pueden usar también en
1060 el nivel más elevado del código, entre las partituras y los elementos
1061 de marcado del nivel superior.
1067 @funindex \noPageTurn
1069 @funindex \allowPageTurn
1070 @code{\allowPageTurn}.
1075 Fragmentos de código:
1081 Sólo debería haber un grabador @code{Page_turn_engraver} dentro de una
1082 partitura. Si hay más de uno, se interferirán entre sí.
1085 @node Minimal page breaking
1086 @subsection Minimal page breaking
1088 @funindex ly:minimal-breaking
1090 La función @code{ly:minimal-breaking} efectúa unos cálculos mínimos
1091 para determinar los saltos de página: completa una página con tantos
1092 sistemas como sea posible antes de continuar con la siguiente. Así,
1093 puede preferirse para partituras con muchas páginas, donde las otras
1094 funciones de salto de página pueden resultar demasiado lentas o ávidas
1095 de memoria, o con una gran cantidad de textos. Se habilita utilizando:
1099 #(define page-breaking ly:minimal-breaking)
1105 Fragmentos de código:
1109 @node Explicit breaks
1110 @subsection Explicit breaks
1112 Lily a veces rechaza las instrucciones @code{\break} y
1113 @code{\pageBreak} explícitas. Hay dos instrucciones para
1114 sobreescribir este comportamiento:
1117 \override NonMusicalPaperColumn #'line-break-permission = ##f
1118 \override NonMusicalPaperColumn #'page-break-permission = ##f
1121 Cuando se sobreescribe el valor de @code{line-break-permission} a
1122 falso, Lily inserta saltos de línea en las instrucciones @code{\break}
1123 explícitas y en ningún otro lugar. Cuando se sobreescribe el valor de
1124 @code{page-break-permission} a falso, Lily inserta saltos de página en
1125 las instrucciones @code{\pageBreak} explícitas y en ningún otro lugar.
1127 @lilypond[quote,verbatim]
1136 \override NonMusicalPaperColumn #'line-break-permission = ##f
1137 \override NonMusicalPaperColumn #'page-break-permission = ##f
1140 \repeat unfold 2 { c'8 c'8 c'8 c'8 } \break
1141 \repeat unfold 4 { c'8 c'8 c'8 c'8 } \break
1142 \repeat unfold 6 { c'8 c'8 c'8 c'8 } \break
1143 \repeat unfold 8 { c'8 c'8 c'8 c'8 } \pageBreak
1144 \repeat unfold 8 { c'8 c'8 c'8 c'8 } \break
1145 \repeat unfold 6 { c'8 c'8 c'8 c'8 } \break
1146 \repeat unfold 4 { c'8 c'8 c'8 c'8 } \break
1147 \repeat unfold 2 { c'8 c'8 c'8 c'8 }
1155 Fragmentos de código:
1159 @node Using an extra voice for breaks
1160 @subsection Using an extra voice for breaks
1162 La información sobre saltos de línea y de página suele aparecer
1163 directamente entremezclado dentro del código de notas.
1168 \repeat unfold 2 @{ c'4 c'4 c'4 c'4 @}
1170 \repeat unfold 3 @{ c'4 c'4 c'4 c'4 @}
1175 Esto hace sencillas de introducir a las instrucciones @code{\break} y
1176 @code{\pageBreak}, pero mezcla la escritura de música con información
1177 que especifica cómo se debe disponer la música sobre la página.
1178 Podemos mantener la introducción de música y la información de saltos
1179 de línea y de página en dos lugares separados mediante la introducción
1180 de una voz adicional que contenga los saltos. Esta voz adicional
1181 contiene solamente desplazamientos o @q{skips} junto con los
1182 @code{\break}, @code{pageBreak} y otras informaciones sobre la
1183 disposición de los saltos.
1185 @lilypond[quote,verbatim]
1195 \repeat unfold 2 { c'4 c'4 c'4 c'4 }
1196 \repeat unfold 3 { c'4 c'4 c'4 c'4 }
1197 \repeat unfold 6 { c'4 c'4 c'4 c'4 }
1198 \repeat unfold 5 { c'4 c'4 c'4 c'4 }
1204 Este patrón resulta especialmente útil cuando se sobreescribe
1205 @code{line-break-system-details} y las otras útiles (pero largas)
1206 propiedades de @code{NonMusicalPaperColumnGrob}, como se explica en
1207 @ref{Vertical spacing}.
1209 @lilypond[quote,verbatim]
1214 \overrideProperty "Score.NonMusicalPaperColumn"
1215 #'line-break-system-details #'((Y-offset . 0))
1218 \overrideProperty "Score.NonMusicalPaperColumn"
1219 #'line-break-system-details #'((Y-offset . 35))
1222 \overrideProperty "Score.NonMusicalPaperColumn"
1223 #'line-break-system-details #'((Y-offset . 70))
1226 \overrideProperty "Score.NonMusicalPaperColumn"
1227 #'line-break-system-details #'((Y-offset . 105))
1231 \repeat unfold 2 { c'4 c'4 c'4 c'4 }
1232 \repeat unfold 3 { c'4 c'4 c'4 c'4 }
1233 \repeat unfold 6 { c'4 c'4 c'4 c'4 }
1234 \repeat unfold 5 { c'4 c'4 c'4 c'4 }
1242 Referencia de la notación:
1243 @ref{Vertical spacing}.
1245 Fragmentos de código:
1249 @node Vertical spacing
1250 @section Vertical spacing
1252 @cindex espaciado vertical
1253 @cindex vertical, espaciado
1255 El espaciado vertical está controlado por tres factores: la cantidad
1256 de espacio disponible (es decir, el tamaño del papel y los márgenes),
1257 la separación entre los sistemas, y la separación entre los
1258 pentagramas dentro de un sistema.
1261 * Vertical spacing inside a system::
1262 * Vertical spacing between systems::
1263 * Explicit staff and system positioning::
1264 * Two-pass vertical spacing::
1265 * Vertical collision avoidance::
1269 @node Vertical spacing inside a system
1270 @subsection Vertical spacing inside a system
1272 @cindex distancia entre pentagramas
1273 @cindex pentagrama, distancia entre los
1274 @cindex espacio entre pentagramas
1275 @cindex espacio dentro de los sistemas
1277 La altura de cada sistema se determina automáticamente. Para evitar
1278 que los pentagramas se superpongan unos encima de otros, se establecen
1279 algunas distancias mínimas. Al modificarlas, podemos poner los
1280 pentagramas más cerca unos de otros. Esto reduce el espacio que
1281 requiere cada sistema y puede resultar en la obtención de más sistemas
1284 Normalmente los pentagramas se apilan verticalmente. Para hacer que
1285 los pentagramas guarden una distancia, se rellena su tamaño vertical.
1286 Esto se hace con la propiedad @code{minimum-Y-extent}. Si se aplica a
1287 @rinternals{VerticalAxisGroup}, controla el tamaño de una línea
1288 horizontal, como un pentagrama o una línea de letra.
1289 @code{minimum-Y-extent} acepta una pareja de números, de forma que si
1290 queremos hacerlo más pequeño que su valor predeterminado @code{#'(-4
1291 . 4)} entonces podemos establecer
1294 \override Staff.VerticalAxisGroup #'minimum-Y-extent = #'(-3 . 3)
1298 Esto fija el tamaño vertical del pentagrama en curso a 3 espacios de
1299 pentagrama a cada lado de la tercera línea. El valor @code{(-3 . 3)}
1300 se interpreta como un intervalo, donde la línea central es el 0, por
1301 lo que el primer número es negativo en general. Los números no tienen
1302 que coincidir; por ejemplo, el pentagrama se puede hacer mayor por
1303 debajo dándole el valor @code{(-6 . 4)}.
1305 Después de que se han determinado los saltos de página, se reevalúa el
1306 espaciado vertical dentro de cada sistema para llenar la página de
1307 forma más regular; si una página tiene más espacio de sobra, se
1308 amplían los sistemas para poder llenar este espacio. La magnitud de
1309 esta ampliación se puede configurar a través de la propiedad
1310 @code{max-stretch} del grob @rinternals{VerticalAlignment}. De forma
1311 predeterminada, @code{max-stretch} se establece a cero, inhabilitando
1312 la ampliación. Para habilitar la ampliación, un valor prudente para
1313 @code{max-stretch} es @code{ly:align-interface::calc-max-stretch}.
1315 En ciertas situaciones, podemos querer ampliar la mayor parte de un
1316 sistema y al mismo tiempo dejar algunas partes fijas. Por ejemplo, si
1317 una parte de piano aparece en el medio de una partitura orquestal,
1318 podemos querer dejar los pentagramas de piano cercanos entre sí
1319 mientras se estira el resto de la partitura. Se puede usar la
1320 propiedad @code{keep-fixed-while-stretching} de
1321 @rinternals{VerticalAxisGroup} para conseguirlo. Cuando se establece
1322 al valor @code{##t}, esta propiedad evita que su pentagrama (o línea
1323 de letra) se desplace en relación al que está directamente encima de
1324 él. En el ejemplo anterior, podríamos sobreescribir
1325 @code{keep-fixed-while-stretching} al valor @code{##t} en el segundo
1326 pentagrama del piano:
1329 #(set-default-paper-size "a6")
1330 #(set-global-staff-size 14.0)
1334 ragged-last-bottom = ##f
1339 \override VerticalAlignment #'max-stretch = #ly:align-interface::calc-max-stretch
1346 \new Staff {c' d' e' f'}
1347 \new Staff {c' d' e' f'}
1348 \new Staff {c' d' e' f'}
1353 \new Staff {c' d' e' f'}
1355 \override VerticalAxisGroup #'keep-fixed-while-stretching = ##t
1362 \new Staff {c' d' e' f'}
1363 \new Staff {c' d' e' f'}
1370 La alineación vertical de los pentagramas está manejada por el objeto
1371 @code{VerticalAlignment}. Los parámetros de contexto que especifican
1372 las dimensiones verticales están descritas en conexión con el grabador
1373 @code{Axis_group_engraver}.
1377 Fragmentos de código:
1380 @c @lsr{spacing,page-spacing.ly},
1381 @c @lsr{spacing,alignment-vertical-spacing.ly}.
1383 Referencia de funcionamiento interno:
1384 @rinternals{VerticalAlignment},
1385 @rinternals{Axis_group_engraver}.
1388 @node Vertical spacing between systems
1389 @subsection Vertical spacing between systems
1391 La separación entre los sistemas está controlada por cuatro variables
1396 between-system-space = 1.5\cm
1397 between-system-padding = #1
1399 ragged-last-bottom=##f
1403 Cuando sólo se ponen dos simples sistemas en una página, el espaciado
1404 vertical resultante puede ser bastante poco elegante: un sistema en la
1405 parte alta de la página y el otro en la parte baja, con un enorme
1406 hueco entre ellos. Para evitar esta situación se puede limitar el
1407 espacio que se añade entre los sistemas. Esta posibilidad se activa
1408 mediante el establecimiento al valor @code{#t} de la variable
1409 @code{page-limit-inter-system-space} en el bloque @code{\paper}. La
1410 variable del papel @code{page-limit-inter-system-space-factor}
1411 determina en qué cantidad se puede incrementar el espacio: por
1412 ejemplo, el valor @code{1.3} significa que el espacio puede ser un
1413 30% mayor que lo que sería en una página no justificada hasta abajo.
1415 En el ejemplo siguiente, si el espacio entre los sistemas no estuviese
1416 limitado, el segundo sistema de la página 1 se situaría en la parte de
1417 abajo de la página. Activando la limitación de espacio, el segundo
1418 sistema se coloca más cerca del primero. Estableciendo
1419 @code{page-limit-inter-system-space-factor} a @code{1}, el espacio
1420 sería el mismo que en una página sin justificar por abajo, como la
1424 #(set-default-paper-size "a6")
1427 page-limit-inter-system-space = ##t
1428 page-limit-inter-system-space-factor = 1.3
1430 oddFooterMarkup = \markup "page bottom"
1431 evenFooterMarkup = \markup "page bottom"
1432 oddHeaderMarkup = \markup \fill-line {
1433 "page top" \fromproperty #'page:page-number-string }
1434 evenHeaderMarkup = \markup \fill-line {
1435 "page top" \fromproperty #'page:page-number-string }
1437 \new Staff << \repeat unfold 4 { g'4 g' g' g' \break }
1438 { s1*2 \pageBreak } >>
1444 Fragmentos de código:
1448 @node Explicit staff and system positioning
1449 @subsection Explicit staff and system positioning
1451 Una forma de entender los ajustes de @code{VerticalAxisGroup} y de
1452 @code{\paper} que se explicaron en las dos secciones anteriores es
1453 como una colección de distintos ajustes que conciernen principalmente
1454 a la cantidad de relleno vertical que adquieren los distintos
1455 pentagramas y sistemas al ocupar la página.
1457 Es posible abordar el problema del espaciado vertical de una forma
1458 distinta utilizando @code{NonMusicalPaperColumn
1459 #'line-break-system-details}. Donde los ajustes de
1460 @code{VerticalAxisGroup} y de @code{\paper} especifican el relleno
1461 vertical, @code{NonMusicalPaperColumn #'line-break-system-details}
1462 especifica las posiciones verticales exactas en la página.
1464 @code{NonMusicalPaperColumn #'line-break-system-details} acepta una
1465 lista asociativa de cinco ajustes distintos:
1468 @item @code{X-offset}
1469 @item @code{Y-offset}
1470 @item @code{alignment-offsets}
1471 @item @code{alignment-extra-space}
1472 @item @code{fixed-alignment-extra-space}
1475 Las sobreescrituras de los objetos gráficos, entre ellas las de
1476 @code{NonMusicalPaperColumn} que aparece más abajo, pueden ocurrir en
1477 tres lugares distintos dentro de un archivo de entrada:
1480 @item directamente en medio de las notas
1481 @item en un bloque @code{\context}
1482 @item en el bloque @code{\with}
1485 Cuando sobreescribimos @code{NonMusicalPaperColumn}, usamos la
1486 instrucción @code{\override} usual en los bloques @code{\context} y en
1487 el bloque @code{\with}. Por otra parte, cuando sobreescribimos
1488 @code{NonMusicalPaperColumn} en medio de las notas, debemos usar la
1489 instrucción especial @code{\overrideProperty}. He aquí algunas
1490 sobreescrituras de @code{NonMusicalPaperColumn} de ejemplo con la
1491 instrucción especial @code{\overrideProperty}:
1494 \overrideProperty NonMusicalPaperColumn
1495 #'line-break-system-details #'((X-offset . 20))
1497 \overrideProperty NonMusicalPaperColumn
1498 #'line-break-system-details #'((Y-offset . 40))
1500 \overrideProperty NonMusicalPaperColumn
1501 #'line-break-system-details #'((X-offset . 20) (Y-offset . 40))
1503 \override NonMusicalPaperColumn
1504 #'line-break-system-details #'((alignment-offsets . (0 -15)))
1506 \override NonMusicalPaperColumn
1507 #'line-break-system-details #'((X-offset . 20) (Y-offset . 40)
1508 (alignment-offsets . (0 -15)))
1511 Para entender cómo funciona cada uno de los distintos ajustes,
1512 empezamos observando un ejemplo que no incluye absolutamente ninguna
1515 @c \book { } is required in these examples to ensure the spacing
1516 @c overrides can be seen between systems. -np
1519 \header { tagline = ##f }
1520 \paper { left-margin = 0\mm }
1530 \new Voice { \repeat unfold 15 { c'4 c' c' c' } }
1533 \repeat unfold 15 { d'4 d' d' d' }
1540 Esta partitura mantiene aislada la información de los saltos de línea
1541 y de página en una voz dedicada a ello. Esta técnica de crear una voz
1542 de saltos ayuda a mantener separada de la escritura de notas conforme
1543 el ejemplo se vuelve más complicado. Consulte @ref{Using an extra
1546 Los saltos explícitos dividen la música de forma regular en seis
1547 compases por línea. El espaciado vertical es el resultado de los
1548 ajustes predeterminados de LilyPond. Para establecer explícitamente
1549 el punto de origen vertical de cada sistema, podemos establecer el par
1550 @code{Y-offset} en el atributo @code{line-break-system-details} del
1551 grob (objeto gráfico) @code{NonMusicalPaperColumn}:
1554 \header { tagline = ##f }
1555 \paper { left-margin = 0\mm }
1561 \overrideProperty #"Score.NonMusicalPaperColumn"
1562 #'line-break-system-details #'((Y-offset . 0))
1564 \overrideProperty #"Score.NonMusicalPaperColumn"
1565 #'line-break-system-details #'((Y-offset . 40))
1567 \overrideProperty #"Score.NonMusicalPaperColumn"
1568 #'line-break-system-details #'((Y-offset . 80))
1571 \new Voice { \repeat unfold 15 { c'4 c' c' c' } }
1574 \repeat unfold 15 { d'4 d' d' d' }
1581 Observe que @code{line-break-system-details} toma una lista asociativa
1582 de una cantidad de valores potencialmente elevada, pero aquí sólo
1583 fijamos un valor. Observe también que aquí la propiedad
1584 @code{Y-offset} determina la posición vertical exacta sobre la página
1585 en la que se trazará cada uno de los nuevos sistemas.
1587 Ahora que hemos establecido explícitamente el punto de origen vertical
1588 de cada sistema, podemos también establecer manualmente el punto de
1589 origen vertical de cada pentagrama dentro de cada sistema. Lo hacemos
1590 usando la subpropiedad @code{alignment-offsets} de
1591 @code{line-break-system-details}.
1594 \header { tagline = ##f }
1595 \paper { left-margin = 0\mm }
1601 \overrideProperty #"Score.NonMusicalPaperColumn"
1602 #'line-break-system-details #'((Y-offset . 20)
1603 (alignment-offsets . (0 -15)))
1605 \overrideProperty #"Score.NonMusicalPaperColumn"
1606 #'line-break-system-details #'((Y-offset . 60)
1607 (alignment-offsets . (0 -15)))
1609 \overrideProperty #"Score.NonMusicalPaperColumn"
1610 #'line-break-system-details #'((Y-offset . 100)
1611 (alignment-offsets . (0 -15)))
1614 \new Voice { \repeat unfold 15 { c'4 c' c' c' } }
1617 \repeat unfold 15 { d'4 d' d' d' }
1624 Observe que aquí asignamos dos valores distintos al atributo
1625 @code{line-break-system-details} del grob
1626 @code{NonMusicalPaperColumn}. Aunque el atributo alist de
1627 @code{line-break-system-details} acepta muchos parámetros de espaciado
1628 adicionales (entre ellos, por ejemplo, un par @code{X-offset}
1629 correspondiente), sólo tenemos que establecer el desplazamiento
1630 @code{Y-offset} y los pares @code{alignment-offsets} para controlar el
1631 punto de origen vertical de cada sistema y pentagrama. Finalmente,
1632 observe que @code{alignment-offsets} especifica el posicionamiento
1633 vertical de los pentagramas pero no de los grupos de pentagramas.
1636 \header { tagline = ##f }
1637 \paper { left-margin = 0\mm }
1643 \overrideProperty #"Score.NonMusicalPaperColumn"
1644 #'line-break-system-details #'((Y-offset . 0)
1645 (alignment-offsets . (0 -30 -40)))
1647 \overrideProperty #"Score.NonMusicalPaperColumn"
1648 #'line-break-system-details #'((Y-offset . 60)
1649 (alignment-offsets . (0 -10 -20)))
1651 \overrideProperty #"Score.NonMusicalPaperColumn"
1652 #'line-break-system-details #'((Y-offset . 100)
1653 (alignment-offsets . (0 -10 -40)))
1656 \new Voice { \repeat unfold 15 { c'4 c' c' c' } }
1659 \new Staff { \repeat unfold 15 { d'4 d' d' d' } }
1660 \new Staff { \repeat unfold 15 { e'4 e' e' e' } }
1667 Algunos puntos que tener en cuenta:
1670 @item Al usar @code{alignment-offsets}, la letra cuenta como un pentagrama.
1672 @item Las unidades de los números que se pasan a @code{X-offset},
1673 @code{Y-offset} y @code{alignment-offsets} se interpretan como
1674 múltiplos de la distancia entre líneas de pentagrama adyacentes. Los
1675 valores positivos mueven a los pentagramas y a la letra hacia arriba,
1676 los valores negativos mueven los pentagramas y la letra hacia abajo.
1678 @item A causa de que los ajustes a @code{NonMusicalPaperColumn #'line-break-system-details}
1679 dados aquí permiten el posicionamiento de pentagramas y sistemas en
1680 cualquier lugar de la página, es posible violar los márgenes o los
1681 límites del papel, o incluso imprimir pentagramas o sistemas unos
1682 encima de otros. Esto se evitaría pasando a los diferentes ajustes
1683 unos valores razonables.
1688 Fragmentos de código:
1692 @node Two-pass vertical spacing
1693 @subsection Two-pass vertical spacing
1695 @warning{El espaciado vertical en dos pasadas está obsoleto y se
1696 eliminará en una versión futura de LilyPond. Ahora los sistemas se
1697 amplían automáticamente en un solo paso. Véase @ref{Vertical spacing
1700 In order to automatically stretch systems so that they should fill the
1701 space left on a page, a two-pass technique can be used:
1704 @item In the first pass, the amount of vertical space used to increase
1705 the height of each system is computed and dumped to a file.
1706 @item In the second pass, spacing inside the systems are
1707 stretched according to the data in the page layout file.
1710 The @code{ragged-bottom} property adds space between systems, while
1711 the two-pass technique adds space between staves inside a system.
1713 To allow this behavior, a @code{tweak-key} variable has to be set in
1714 each score @code{\layout} block, and the tweaks included in each score
1715 music, using the @code{\scoreTweak} music function.
1719 %% include the generated page layout file:
1720 \includePageLayoutFile
1725 %% Include this score tweaks:
1726 \scoreTweak "scoreA"
1727 { \clef french c''1 \break c''1 }
1729 \new Staff { \clef soprano g'1 g'1 }
1730 \new Staff { \clef mezzosoprano e'1 e'1 }
1731 \new Staff { \clef alto g1 g1 }
1732 \new Staff { \clef bass c1 c1 }
1735 piece = "Score with tweaks"
1737 %% Define how to name the tweaks for this score:
1738 \layout { #(define tweak-key "scoreA") }
1743 For the first pass, the @code{dump-tweaks} option should be set to
1744 generate the page layout file.
1747 lilypond -dbackend=null -d dump-tweaks <file>.ly
1753 Fragmentos de código:
1757 @node Vertical collision avoidance
1758 @subsection Vertical collision avoidance
1760 @funindex outside-staff-priority
1761 @funindex outside-staff-padding
1762 @funindex outside-staff-horizontal-padding
1764 Podemos decir intuitivamente que algunos objetos de la notación
1765 musical pertenecen al pentagrama y otros se sitúan fuera del
1766 pentagrama. Entre los objetos que pertenecen al exterior del
1767 pentagrama están las marcas de ensayo, las marcas textuales y las
1768 indicaciones de dinámica (en lo sucesivo, les llamaremos objetos fuera
1769 del pentagrama). La regla de LilyPond para la colocación vertical de
1770 los objetos fuera del pentagrama es ponerlos tan cerca del pentagrama
1771 como sea posible pero no tan próximos como para que choquen con otro
1774 LilyPond utiliza la propiedad @code{outside-staff-priority} para
1775 determinar si un grob es un objeto fuera del pentagrama: si
1776 @code{outside-staff-priority} es un número, el grob es un objeto fuera
1777 del pentagrama. Además, @code{outside-staff-priority} informa a
1778 LilyPond en qué orden se debe situar los objetos.
1780 En primer lugar, LilyPond sitúa todos los objetos que no pertenecen al
1781 exterior del pentagrama. Después ordena los objetos fuera del
1782 pentagrama de acuerdo a su prioridad @code{outside-staff-priority} (en
1783 orden creciente). LilyPond toma los objetos fuera del pentagrama uno
1784 a uno y los coloca de forma que no choquen con ningún objeto que ya
1785 haya sido colocado. Esto es, si dos grobs fuera del pentagrama
1786 compiten por el mismo espacio, el que tiene la prioridad
1787 @code{outside-staff-priority} más baja se colocará más próximo al
1790 @lilypond[quote,ragged-right,relative=2,fragment,verbatim]
1793 \once \override TextScript #'outside-staff-priority = #1
1794 c4_"Text"\pp % this time the text will be closer to the staff
1796 % by setting outside-staff-priority to a non-number,
1797 % we disable the automatic collision avoidance
1798 \once \override TextScript #'outside-staff-priority = ##f
1799 \once \override DynamicLineSpanner #'outside-staff-priority = ##f
1800 c4_"Text"\pp % now they will collide
1803 El relleno vertical entre un objeto fuera del pentagrama y los grobs
1804 posicionados previamente se puede controlar con
1805 @code{outside-staff-padding}.
1807 @lilypond[quote,ragged-right,relative=2,fragment,verbatim]
1808 \once \override TextScript #'outside-staff-padding = #0
1809 a'^"This text is placed very close to the note"
1810 \once \override TextScript #'outside-staff-padding = #3
1811 c^"This text is padded away from the previous text"
1812 c^"This text is placed close to the previous text"
1815 De forma predeterminada, los objetos fuera del pentagrama se colocan
1816 sólo para evitar una colisión horizontal con los grobs posicionados
1817 previamente. Esto puede llevar a situaciones en las que los objetos
1818 se colocan muy próximos entre sí en el sentido horizontal. El espacio
1819 vertical entre pentagramas se puede fijar también de manera que los
1820 objetos fuera del pentagrama se sitúen de forma intercalada. El
1821 establecimiento del relleno horizontal
1822 @code{outside-staff-horizontal-padding} ocasiona que un objeto se
1823 desplace verticalmente para que tal situación no ocurra.
1825 @lilypond[quote,ragged-right,relative=2,fragment,verbatim]
1826 % the markup is too close to the following note
1830 % setting outside-staff-horizontal-padding fixes this
1832 \once \override TextScript #'outside-staff-horizontal-padding = #1
1840 Fragmentos de código:
1844 @node Horizontal spacing
1845 @section Horizontal spacing
1847 @cindex horizontal, espaciado
1848 @cindex espaciado horizontal
1851 * Horizontal spacing overview::
1852 * New spacing area::
1853 * Changing horizontal spacing::
1855 * Proportional notation::
1859 @node Horizontal spacing overview
1860 @subsection Horizontal spacing overview
1862 El motor de espaciado traduce las diferencias en las duraciones a
1863 distancias ampliables (@q{muelles}) de distintas longitudes. Las
1864 duraciones más largas reciben un espacio mayor y las duraciones más
1865 cortas reciben menos. Las duraciones más breves reciben un espacio de
1866 tamaño fijo (que se controla mediante @code{shortest-duration-space}
1867 en el objeto @rinternals{SpacingSpanner}). Cuanto más larga es la
1868 duración, más espacio recibe: al doblar una duración se añade un
1869 espacio de tamaño fijo (este tamaño se controla mediante
1870 @code{spacing-increment}) a la nota.
1872 Por ejemplo, la pieza siguiente contiene numerosas blancas, negras y
1873 corcheas; la corchea va seguida de un ancho de cabeza de blanca (ACB).
1874 La negra va seguida de 2 ACB, la blanca por 3 ACB, etc.
1876 @lilypond[quote,fragment,verbatim,relative=1]
1877 c2 c4. c8 c4. c8 c4. c8 c8
1881 Normalmente, el valor de @code{spacing-increment} está establecido en
1882 1.2 espacios de pentagrama, lo que es aproximadamente el ancho de una
1883 cabeza, y @code{shortest-duration-space} está establecido en 2.0, lo
1884 que significa que la nota más breve recibe 2.4 espacios de pentagrama
1885 (2.0 multiplicado por el @code{spacing-increment}) de espacio
1886 horizontal. Este espacio se cuenta a partir del borde izquierdo del
1887 símbolo, de manera que las notas más breves van seguidas generalmente
1888 por un espacio de 1 ACB.
1890 Si siguiésemos el procedimiento anterior exactamente, entonces la
1891 adición de una sola fusa a una partitura que usa corcheas y
1892 semicorcheas, aumentaría enormemente la anchura de la partitura
1893 completa. La nota más breve ya no es la semicorchea, sino la fusa,
1894 añadiendo así 1 ACB a cada una de las notas. Para evitarlo, la
1895 duración más breve a efectos de espaciado no es la nota más breve de
1896 la partitura, sino la que ocurre con más frecuencia.
1898 La duración más breve que es más común se determina de la siguiente
1899 manera: en cada compás se determina la duración más breve. La menor
1900 duración más común se toma como base para el espaciado, habiendo
1901 estipulado que esta duración menor siempre debe ser igual o menor que
1902 una corchea. La duración más breve se imprime cuando se ejecuta
1903 @code{lilypond} con la opción @code{--verbose}.
1905 Estas duraciones también se pueden personalizar. Si establecemos la
1906 @code{common-shortest-duration} en @rinternals{SpacingSpanner},
1907 entonces éste establece la duración base para el espaciado. La
1908 duración máxima para esta base (normalmente una corchea), se fija a
1909 través de @code{base-shortest-duration}.
1911 @funindex common-shortest-duration
1912 @funindex base-shortest-duration
1913 @funindex stem-spacing-correction
1916 Las notas que son aún más breves que la nota común más breve van
1917 seguidas por un espacio proporcional a su duración en relación con la
1918 nota común más breve. Así pues, si fuésemos a añadir tan sólo algunas
1919 semicorcheas al ejemplo anterior, irían seguidas por medio ACB:
1921 @lilypond[quote,fragment,verbatim,relative=2]
1922 c2 c4. c8 c4. c16[ c] c4. c8 c8 c8 c4 c4 c4
1925 En la introducción (véase @rlearning{Engraving}), se explicó que las
1926 direcciones de las plicas influyen en el espaciado. Esto se controla
1927 con la propiedad @code{stem-spacing-correction} en el objeto
1928 @rinternals{NoteSpacing}. Estos se generan para cada uno de los
1929 contextos de @rinternals{Voice}. El objeto @code{StaffSpacing}
1930 (generado en el contexto de @rinternals{Staff}) contiene la misma
1931 propiedad para controlar el espaciado de las líneas de plica o
1932 divisorias. El ejemplo siguiente muestra estas correcciones, una vez
1933 con los valores predeterminados y otra con correcciones exageradas:
1935 @lilypond[quote,ragged-right]
1939 \override Staff.NoteSpacing #'stem-spacing-correction = #1.5
1940 \override Staff.StaffSpacing #'stem-spacing-correction = #1.5
1946 Está contemplada la notación proporcional; consulte @ref{Proportional
1951 Fragmentos de código:
1954 Referencia de funcionamiento interno:
1955 @rinternals{SpacingSpanner},
1956 @rinternals{NoteSpacing},
1957 @rinternals{StaffSpacing},
1958 @rinternals{NonMusicalPaperColumn}.
1963 No existe ningún mecanismo conveniente para sobreescribir el espaciado
1964 manualmente. Se puede usar el siguiente rodeo para insertar espacio
1965 adicional en una partitura, ajustando el valor del relleno en la
1969 \override Score.NonMusicalPaperColumn #'padding = #10
1972 No existe ningún rodeo para disminuir la magnitud de la separación.
1975 @node New spacing area
1976 @subsection New spacing area
1978 Se pueden iniciar secciones nuevas con diferentes parámetros de
1979 espaciado, con @code{newSpacingSection}. Esto es útil cuando hay
1980 secciones que tienen distinta noción de las notas largas y cortas.
1982 En el ejemplo siguiente, el cambio de compás introduce una sección
1983 nueva, y por ello las semicorcheas se separan de manera más amplia.
1985 @lilypond[relative,fragment,verbatim,quote]
1988 c8 c c4 c16[ c c8] c4
1994 La instrucción @code{\newSpacingSection} crea un nuevo objeto
1995 @code{SpacingSpanner}, y de ahí que se puedan usar nuevas
1996 instrucciones de sobreescritura @code{\override} en dicho punto.
2000 Fragmentos de código:
2003 Referencia de funcionamiento interno:
2004 @rinternals{SpacingSpanner}.
2007 @node Changing horizontal spacing
2008 @subsection Changing horizontal spacing
2010 Se puede alterar el espaciado horizontal con la propiedad
2011 @code{base-shortest-duration}. Aquí compararemos la misma música, una
2012 vez sin alterar la propiedad, y luego alterándola. Los valores
2013 mayores de @code{ly:make-moment} producen música más pequeña. Observe
2014 que @code{ly:make-moment} construye una duración, por lo que @code{1
2015 4} es una duración mayor que @code{1 16}.
2017 @lilypond[verbatim,line-width=12\cm]
2020 g4 e e2 | f4 d d2 | c4 d e f | g4 g g2 |
2021 g4 e e2 | f4 d d2 | c4 e g g | c,1 |
2022 d4 d d d | d4 e f2 | e4 e e e | e4 f g2 |
2023 g4 e e2 | f4 d d2 | c4 e g g | c,1 |
2028 @lilypond[verbatim,line-width=12\cm]
2031 g4 e e2 | f4 d d2 | c4 d e f | g4 g g2 |
2032 g4 e e2 | f4 d d2 | c4 e g g | c,1 |
2033 d4 d d d | d4 e f2 | e4 e e e | e4 f g2 |
2034 g4 e e2 | f4 d d2 | c4 e g g | c,1 |
2039 \override SpacingSpanner
2040 #'base-shortest-duration = #(ly:make-moment 1 16)
2049 De forma predeterminada, el espaciado en los grupos de valoración
2050 especial depende de varios factores ajenos a la duración (como
2051 alteraciones, cambios de clave, etc.). Para pasar por alto estos
2052 símbolos y forzar un espaciado de duraciones iguales uniforme, use
2053 @code{Score.SpacingSpanner #'uniform-stretching}. Esta propiedad sólo
2054 puede cambiarse al principio de la partitura:
2056 @lilypond[quote,ragged-right,relative=2,fragment,verbatim]
2058 \override SpacingSpanner #'uniform-stretching = ##t
2075 Cuando se establece @code{strict-note-spacing}, las notas se separan
2076 sin tener en cuenta las claves, líneas divisorias ni notas de adorno:
2078 @lilypond[quote,ragged-right,relative=2,fragment,verbatim]
2079 \override Score.SpacingSpanner #'strict-note-spacing = ##t
2080 \new Staff { c8[ c \clef alto c \grace { c16[ c] } c8 c c] c32[ c32] }
2085 Fragmentos de código:
2090 @subsection Line length
2092 @cindex saltos de página
2093 @cindex página, saltos de
2096 @funindex line-width
2097 @funindex ragged-right
2098 @funindex ragged-last
2100 @c Although line-width can be set in \layout, it should be set in paper
2101 @c block, to get page layout right.
2102 @c Setting indent in \paper block makes not much sense, but it works.
2104 @c Bit verbose and vague, use examples?
2105 Los ajustes más básicos que influyen en el espaciado son @code{indent}
2106 y @code{line-width}. Se definen en el bloque @code{\layout}.
2107 Controlan el sangrado de la primera línea de música y la longitud de
2110 Si se fija un valor verdadero para @code{ragged-right} en el bloque
2111 @code{\layout}, entonces los sistemas terminan en su longitud
2112 horizontal natural, en lugar de repartirse horizontalmente hasta
2113 llenar toda la línea. Esto es útil para fragmentos cortos, y para
2114 comprobar qué tan apretado es el espaciado natural.
2116 @cindex diseño de página
2117 @cindex página, disposición de la
2118 @cindex vertical, espaciado
2120 La opción @code{ragged-last} es similar a @code{ragged-right}, pero
2121 afecta sólo a la última línea de la pieza. No se efectúa ninguna
2122 restricción sobre dicha línea. El resultado es similar al formateo de
2123 los párrafos de texto. En un párrafo, la última línea sencillamente
2124 ocupa su longitud horizontal natural.
2125 @c Note that for text there are several options for the last line.
2126 @c While Knuth TeX uses natural length, lead typesetters use the same
2127 @c stretch as the previous line. eTeX uses \lastlinefit to
2128 @c interpolate between both these solutions.
2142 Fragmentos de código:
2146 @node Proportional notation
2147 @subsection Proportional notation
2149 LilyPond contempla la notación proporcional, un tipo de espaciado
2150 horizontal en el que cada nota consume una medida horizontal que
2151 equivale exactamente a su duración rítmica. Este tipo de espaciado
2152 proporcional es comparable al espaciado horizontal hecho sobre un
2153 papel milimetrado. Ciertas partituras del finales del s.XX y
2154 principios del s.XXI utilizan notación proporcional para clarificar
2155 relaciones rítmicas complejas o para facilitar la colocación de líneas
2156 cronométricas u otros gráficos directamente en la partitura.
2158 LilyPond contempla cinco ajustes distintos para la notación
2159 proporcional, que se pueden usar solos o combinados:
2162 @item @code{proportionalNotationDuration}
2163 @item @code{uniform-stretching}
2164 @item @code{strict-note-spacing}
2165 @item @code{\remove Separating_line_group_engraver}
2166 @item @code{\override PaperColumn #'used = ##t}
2169 En los ejemplos que siguen, exploramos el uso de estos cinco ajustes
2170 de la notación proporcional y examinamos la forma en que interactúan.
2172 Comenzamos con el siguiente ejemplo de un solo compás, que usa un
2173 espaciado clásico sin justificación por la derecha.
2175 @lilypond[quote,verbatim,ragged-right]
2177 \new RhythmicStaff {
2181 c'16 c'16 c'16 c'16 c'16
2187 Observe que la blanca que inicia el compás ocupa mucho menos de la
2188 mitad de todo el espacio horizontal del compás. De forma similar, las
2189 semicorcheas y el cinquillo de semicorcheas con que finaliza el compás
2190 ocupan en conjunto mucho más de la mitad de todo el espacio horizontal
2193 En el grabado clásico, este espaciado puede ser exactamente el que
2194 deseamos porque podemos tomar prestado el espacio horizontal de la
2195 blanca y conservar el espacio horizontal a lo largo del compás como un
2198 Por otro lado, si queremos insertar una línea de tiempo graduada o
2199 algún otro gráfico encima o debajo de la partitura, necesitamos la
2200 notación proporcional. Se activa la notación proporcional con el
2201 ajuste @code{proportionalNotationDuration}.
2203 @lilypond[quote,verbatim,ragged-right]
2205 proportionalNotationDuration = #(ly:make-moment 1 20)
2207 \new RhythmicStaff {
2211 c'16 c'16 c'16 c'16 c'16
2217 La blanca al principio del compás y las notas rápidas de la segunda
2218 mitad del compás ocupan ahora cantidades iguales de espacio
2219 horizontal. Podríamos colocar una línea de tiempo graduada o un
2220 gráfico encima o debajo de este ejemplo.
2222 El ajuste @code{proportionalNotationDuration} es un ajuste de contexto
2223 que reside en @code{Score}. Recordemos que los ajustes de contexto
2224 aparecen en uno de tres posibles lugares del archivo de entrada: en un
2225 bloque @code{\with}, en un bloque @code{\context}, o directamente
2226 entre la música precedido por la instrucción @code{\set}. Como con
2227 todos los ajustes de contexto, el usuario puede elegir en cuál de los
2228 tres lugares diferentes prefiere establecer el valor de
2229 @code{proportionalNotationDuration}.
2231 El ajuste @code{proportionalNotationDuration} acepta un solo
2232 argumento, que es la duración de referencia contra el que se aplica el
2233 espaciado de toda la música. La función Scheme de LilyPond
2234 @code{make-moment} acepta dos argumentos: un numerador y un
2235 denominador que, juntos, expresan una cierta fracción de redonda. La
2236 llamada @code{#(ly:make-moment 1 20)}, por tanto, produce una duración
2237 de referencia de una nota de un veinteavo de redonda (semicorcheas de
2238 cinquillo). Los valores @code{#(ly:make-moment 1 16)},
2239 @code{#(ly:make-moment 1 8)} y @code{#(ly:make-moment 3 97)} son
2242 ¿Cómo seleccionamos la duración correcta de referencia para pasarla a
2243 @code{proportionalNotationDuration}? Normalmente mediante un proceso
2244 de ensayo y error, comenzando con una duración cercana a la más rápida
2245 (o más breve) duración de la pieza. Las duraciones de referencia más
2246 pequeñas aplican un espaciado más suelto; las duraciones de referencia
2247 más largas aplican un espaciado más apretado.
2249 @lilypond[quote,verbatim,ragged-right]
2251 proportionalNotationDuration = #(ly:make-moment 1 8)
2253 \new RhythmicStaff {
2257 c'16 c'16 c'16 c'16 c'16
2263 proportionalNotationDuration = #(ly:make-moment 1 16)
2265 \new RhythmicStaff {
2269 c'16 c'16 c'16 c'16 c'16
2275 proportionalNotationDuration = #(ly:make-moment 1 32)
2277 \new RhythmicStaff {
2281 c'16 c'16 c'16 c'16 c'16
2287 Observe que una duración de referencia demasiado grande (como la
2288 corchea, en el ejemplo de arriba) produce un espaciado excesivamente
2289 apretado y puede ser causa de colisiones entre las cabezas de nota.
2290 Observe también que la notación proporcional en general ocupa más
2291 espacio horizontal que el espaciado clásico. El espaciado
2292 proporcional aporta claridad rítmica a expensas del espacio
2295 Ahora veremos cómo espaciar de forma óptima grupos de valoración
2296 especial que se superponen.
2298 Empezamos por examinar qué le ocurre a nuestro ejemplo original, con
2299 espaciado clásico, cuando añadimos un segundo pentagrama con un tipo
2300 diferente de grupo especial.
2302 @lilypond[quote,verbatim,ragged-right]
2304 \new RhythmicStaff {
2308 c'16 c'16 c'16 c'16 c'16
2311 \new RhythmicStaff {
2313 c'8 c'8 c'8 c'8 c'8 c'8 c'8 c'8 c'8
2319 El espaciado es defectuoso porque las notas regularmente espaciadas
2320 del pentagrama inferior no se amplían de manera uniforme. El grabado
2321 clásico incluye muy pocos tresillos complejos y así las reglas del
2322 grabado clásico pueden generar este tipo de resultado. El
2323 establecimiento de @code{proportionalNotationDuration} remedia esta
2324 situación considerablemente.
2326 @lilypond[quote,verbatim,ragged-right]
2328 proportionalNotationDuration = #(ly:make-moment 1 20)
2330 \new RhythmicStaff {
2334 c'16 c'16 c'16 c'16 c'16
2337 \new RhythmicStaff {
2339 c'8 c'8 c'8 c'8 c'8 c'8 c'8 c'8 c'8
2345 Pero si observamos con mucho cuidado podremos ver que las notas de la
2346 segunda mitad del 9-illo están espaciadas de forma ligeramente más
2347 ancha que las de la primera mitad del 9-illo. Para asegurar una
2348 ampliación uniforme, activamos @code{uniform-stretching}, que es una
2349 propiedad de @code{SpacingSpanner}.
2351 @lilypond[quote,verbatim,ragged-right]
2353 proportionalNotationDuration = #(ly:make-moment 1 20)
2354 \override SpacingSpanner #'uniform-stretching = ##t
2356 \new RhythmicStaff {
2360 c'16 c'16 c'16 c'16 c'16
2363 \new RhythmicStaff {
2365 c'8 c'8 c'8 c'8 c'8 c'8 c'8 c'8 c'8
2371 Nuestro ejemplo de dos pentagramas ahora está espaciado exactamente,
2372 nuestras relaciones rítmicas son visualmente claras, y podemos incluir
2373 una línea de tiempo graduada o un gráfico, si queremos.
2375 Observe que el paquete de notación proporcional de LilyPond espera que
2376 todas las partituras proporcionales establezcan el atributo
2377 @code{uniform-stretching} de @code{SpacingSpanner} al valor ##t. El
2378 establecimiento de @code{proportionalNotationDuration} sin ajustar
2379 también el atributo @code{uniform-stretching} de @code{SpacingSpanner}
2380 al valor ##t causará, por ejemplo, que los desplazamientos
2381 (@code{skips}) consuman una cantidad de espacio horizontal incorrecta.
2383 El @code{SpacingSpanner} es un grob abstracto que reside en el
2384 contexto de @code{Score}. Como con nuestros ajustes de
2385 @code{proportionalNotationDuration}, las sobreescrituras al
2386 @code{SpacingSpanner} sólo pueden ocurrir en uno de estos tres lugares
2387 dentro del archivo de entrada: en el bloque @code{\with}, en el bloque
2388 @code{\context} o directamente dentro de la escritura de notas.
2390 De manera predeterminada, sólo hay un @code{SpacingSpanner} por
2391 @code{Score}. Esto supone que, por omisión, @code{uniform-stretching}
2392 está activado para la partitura completa o desactivado para la
2393 partitura completa. Sin embargo, podemos sobreescribir este
2394 comportamiento y activar distintas posibilidades de espaciado en
2395 distintos lugares de la partitura. Lo hacemos con la instrucción
2396 @code{\newSpacingSection}. Consulte @ref{New spacing area} para más
2399 A continuación examinamos los efectos del grabador
2400 @code{Separating_line_group_engraver} y veremos por qué las partituras
2401 proporcionales con frecuencia eliminan este grabador. El ejemplo
2402 siguiente muestra que hay una pequeña cantidad de espacio
2403 @qq{preparatorio} justo antes de la primera nota de cada sistema.
2405 @lilypond[quote,verbatim,ragged-right]
2418 Esta cantidad de espacio preparatorio es la misma ya sea después de
2419 una indicación de compás, una armadura o una clave. El grabador
2420 @code{Separating_line_group_engraver} es responsable de este espacio.
2421 La eliminación de @code{Separating_line_group_engraver} reduce este
2424 @lilypond[quote,verbatim,ragged-right]
2430 \remove Separating_line_group_engraver
2438 Los elementos no musicales como la indicación de compás, la armadura,
2439 la clave y las alteraciones son problemáticos en notación
2440 proporcional. Ninguno de estos elementos tiene duración rítmica.
2441 Pero todos ellos consumen espacio horizontal. Las distintas
2442 partituras proporcionales abordan este problema de distinta manera.
2444 Sería posible evitar los problemas de espaciado con las armaduras,
2445 simplemente evitando tenerlas. Esta es una opción válida pues casi
2446 todas las partituras proporcionales son música contemporánea. Lo
2447 mismo puede valer para las indicaciones de compás, especialmente para
2448 las partituras que incluyen una línea de tiempo graduada u otro
2449 gráfico. Pero estas partituras son excepcionales y casi todas las
2450 partituras proporcionales incluyen al menos unas pocas indicaciones de
2451 compás. Las claves y las alteraciones son aún más esenciales.
2453 Así pues ¿qué estrategias existen para el espaciado de los elementos
2454 no musicales en un contexto proporcional? Una buena opción es la
2455 propiedad @code{strict-note-spacing} de @code{SpacingSpanner}.
2456 Compare las dos partituras siguientes:
2458 @lilypond[quote,verbatim,ragged-right]
2460 \set Score.proportionalNotationDuration = #(ly:make-moment 1 16)
2470 \set Score.proportionalNotationDuration = #(ly:make-moment 1 16)
2471 \override Score.SpacingSpanner #'strict-note-spacing = ##t
2481 Las dos partituras son proporcionales, pero el espaciado de la
2482 primera es muy suelto a causa del cambio de clave. Sin embargo, el
2483 espaciado de la segunda partitura se mantiene estricto, porque
2484 @code{strict-note-spacing} está activado. La activación de
2485 @code{strict-note-spacing} hace que el ancho de las indicaciones de
2486 compás, armaduras, cambios de clave y alteraciones no tomen parte en
2487 el algoritmo de espaciado.
2489 Además de los ajustes dados aquí, hay otros que aparecen con
2490 frecuencia en las partituras proporcionales. Entre ellos están:
2493 @item @code{\override SpacingSpanner #'strict-grace-spacing = ##t}
2494 @item @code{tupletFullLength = ##t}
2495 @item @code{\override Beam #'breakable = ##t}
2496 @item @code{\override Glissando #'breakable = ##t}
2497 @item @code{\override TextSpanner #'breakable = ##t}
2498 @item @code{\remove Forbid_line_break_engraver in the Voice context}
2501 Estos ajustes dan a las notas de adorno un espaciado estricto,
2502 extienden los corchetes de grupo especial para que marquen tanto los
2503 puntos de comienzo como de final, y permiten que los elementos de
2504 extensión se dividan entre los sistemas y las páginas. Consulte las
2505 partes respectivas del manual para ver estos ajustes relacionados.
2509 Referencia de la notación:
2510 @ref{New spacing area}.
2512 Fragmentos de código:
2516 @node Fitting music onto fewer pages
2517 @section Fitting music onto fewer pages
2519 En ocasiones, podemos terminar con uno o dos pentagramas en una
2520 segunda página (o tercera, o cuarta...). Es fastidioso, especialmente
2521 cuando vemos que las páginas anteriores parecen tener espacio de
2524 Al investigar los problemas de disposición, una herramienta de valor
2525 incalculable es @code{annotate-spacing}. Esta instrucción imprime los
2526 valores de un cierto número de variables de espaciado; para ver más
2527 detalles consulte la sección siguiente, @ref{Displaying spacing}.
2530 * Displaying spacing::
2531 * Changing spacing::
2535 @node Displaying spacing
2536 @subsection Displaying spacing
2538 @cindex espaciado, presentación del
2539 @funindex annotate-spacing
2541 Para presentar gráficamente las dimensiones de las variables de
2542 disposición vertical que pueden verse alteradas por el formato de la
2543 página, establezca @code{annotate-spacing} en el bloque @code{\paper}:
2545 @c need to have \book{} otherwise we get the separate systems. -hwn
2546 @lilypond[verbatim,quote]
2547 #(set-default-paper-size "a6" 'landscape)
2550 \paper { annotate-spacing = ##t }
2555 Todas las dimensiones de disposición se muestran en espacios de
2556 pentagrama, independientemente de las unidades especificadas en los
2557 bloques @code{\paper} o @code{\layout}. En el ejemplo anterior,
2558 @code{paper-height} tiene un valor de 59.75 @code{staff-spaces}
2559 (espacios de pentagrama), y el @code{staff-size} (tamaño del
2560 pentagrama) es de 20 puntos, el valor predeterminado. Observe que:
2562 @multitable {1 staff-space} {staff-size)/4 * (25.4/72.27) mm}
2565 @tab = (25.4/72.27) mm
2568 @tab = (@code{staff-size})/4 pts
2570 @tab = (@code{staff-size})/4 * (25.4/72.27) mm
2575 En este caso, un @code{staff-space} equivale aproximadamente a
2576 1.757mm. Así, la medida @code{paper-height} de 59.75
2577 @code{staff-spaces} equivale a 105 milímetros, la altura de una hoja
2578 @code{a6} en orientación apaisada. Las parejas (@var{a},@var{b}) son
2579 intervalos, donde @var{a} es el límite inferior y @var{b} es el límite
2580 superior del intervalo.
2584 @ref{Setting the staff size}.
2586 Fragmentos de código:
2590 @node Changing spacing
2591 @subsection Changing spacing
2593 La salida de @code{annotate-spacing} revela las dimensiones verticales
2594 con gran detalle. Para ver más detalles acerca de la modificación de
2595 los márgenes y otras variables de diseño de la página, consulte
2596 @ref{Page formatting}.
2598 Aparte de los márgenes, hay algunas otras opciones para ahorrar espacio:
2602 Forzar los sistemas para que se junten lo más posible entre sí (de
2603 forma que quepan la mayor cantidad de ellos en la página) y al mismo
2604 tiempo estén espaciados de forma que no exista un espacio vacío en la
2605 parte baja del papel.
2609 between-system-padding = #0.1
2610 between-system-space = #0.1
2611 ragged-last-bottom = ##f
2617 Forzar el número de sistemas. Puede ser de utilidad de dos formas.
2618 Si tan sólo se establece un valor, incluso el mismo valor que el
2619 número de sistemas que se están trazando de forma predeterminada, ello
2620 ocasionará a veces que se traten de introducir más sistemas en cada
2621 página, pues en este caso se omite un paso en que se produce una
2622 estimación, dando así un encaje mejor en cada página. Asimismo, el
2623 forzar una reducción neta en el número de sistemas puede producir el
2624 ahorro de una página adicional. Por ejemplo, si la disposición
2625 predeterminada tiene 11 sistemas, la asignación siguiente fuerza una
2626 disposición con 10 sistemas.
2635 Evitar (o reducir en número) los objetos que aumentan el tamaño
2636 vertical de un sistema. Por ejemplo, las repeticiones de primera y
2637 segunda vez (o repeticiones con finales alternativos) necesitan
2638 espacio adicional. Si estas repeticiones se reparten a lo largo de
2639 dos sistemas, ocupan más espacio que un sistema con las casillas de
2640 repetición y otro sistema sin ellas. Por ejemplo, las indicaciones
2641 dinámicas que se @q{salen} de un sistema se pueden acercar al
2644 @lilypond[verbatim,quote,relative=1]
2646 \override DynamicText #'extra-offset = #'( -2.2 . 2.0)
2651 Alterar el espaciado horizontal por medio de @code{SpacingSpanner}.
2652 Para ver más detalles, consulte @ref{Changing horizontal spacing}. El
2653 ejemplo siguiente ilustra el espaciado predeterminado:
2655 @lilypond[verbatim,quote]
2668 El ejemplo siguiente modifica @code{common-shortest-duration} de un
2669 valor de @code{1/4} (negra) a @code{1/2} (blanca). La negra es la
2670 nota más común y la más breve del ejemplo, por lo que al agrandar esta
2671 duración se produce un efecto de @q{apretujamiento}:
2673 @lilypond[verbatim,quote]
2685 \override SpacingSpanner
2686 #'common-shortest-duration = #(ly:make-moment 1 2)
2693 La propiedad @code{common-shortest-duration} no se puede modificar de
2694 manera dinámica, por lo que se debe situar siempre dentro de un
2695 bloque @code{\context} de forma que se aplique a la partitura
2702 Referencia de la notación:
2703 @ref{Page formatting},
2704 @ref{Changing horizontal spacing}.
2706 Fragmentos de código: