[ < ] [ > ]   [ << ] [ Subir ] [ >> ]         [Arriba] [Índice general] [Índice] [ ? ]

4.3 Saltos

@translationof Breaks


[ < ] [ > ]   [ << ] [ Subir ] [ >> ]         [Arriba] [Índice general] [Índice] [ ? ]

4.3.1 Saltos de línea

@translationof Line breaking

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.

Para forzar manualmente un salto de línea sobre la línea divisoria, utilice la instrucción \break:

 
\relative c'' {
  c4 c c c | \break
  c4 c c c |
}

[image of music]

De forma predeterminada se ignora cualquier instrucción \break insertada en la mitad de un compás, y se imprime un mensaje de advertencia durante la compilación del archivo de entrada de LilyPond. Para forzar un salto de línea en medio de un compás, añada una línea divisoria invisible con ‘\bar ""’:

 
\relative c'' {
  c4 c c
  \bar ""
  \break
  c |
  c4 c c c |
}

[image of music]

También se ignora cualquier instrucción \break que se produzca en la línea divisoria si el compás anterior termina en medio de una nota, como cuando un grupo de valoración especial comienza en un compás y termina en otro distinto. En este caso, elimine el grabador Forbid_line_break_engraver del contexto Voice y use una construcción de música simultánea insertando el break en el lugar adecuado dentro de la segunda voz:

 
\new Voice \with {
  \remove "Forbid_line_break_engraver"
} \relative {
  <<
    { c''2. \tuplet 3/2 { c4 c c } c2. | }
    { s1 | \break s1 | }
  >>
}

[image of music]

De forma similar, el funcionamiento predeterminado es que los saltos de línea resulten ignorados cuando hay barras de corchea que cruzan la línea divisoria. Utilice la instrucción \override Beam.breakable = ##t para forzar esto:

 
\relative c'' {
  \override Beam.breakable = ##t
  c2. c8[ c | \break
  c8 c] c2. |
}

[image of music]

La instrucción \noBreak, evita que se produzca un salto de línea en la barra divisoria en que se inserta.

Dentro de una partitura, se evitan los saltos de línea automáticos dento de la música que se encuentra entre las instrucciones \autoLineBreaksOff y \autoLineBreaksOn. Si también se quieren evitar los saltos de página automáticos, deben usarse las instrucciones \autoBreaksOff y \autoBreaksOn. Los saltos manuales no están afectados por estas instrucciones. Observe que el hecho de inhibir los saltos de línea automáticos puede hacer que la música se extienda sobre el margen derecho cuandoquiera que no cabe completamente dentro de una sola línea.

Los saltos automáticos de línea (no de página) se pueden habilitar sobre líneas divisorias individuales mediante el uso de \once \autoLineBreaksOn en una barra. La instrucción identifica un salto de línea permitido, en lugar de uno prohibido.

Los ajustes más básicos que influyen sobre el espaciado de las líneas son indent y line-width. Se establecen dentro del bloque \layout. Controlan el sangrado de la primera línea de música, y la longitud de las líneas.

Si se establece ragged-right a verdadero en el bloque \layout, los sistemas terminan en su longitud horizontal natural, en lugar de distribuirse horizontalmente para llenar toda la línea. Esto es de utilidad para fragmentos cortos, y para efectuar una comprobación de lo apretado que es el espaciado natural.

La opción ragged-last es similar a ragged-right, pero afecta sólo a la última línea de la pieza.

 
\layout {
  indent = 0\mm
  line-width = 150\mm
  ragged-last = ##t
}

Para saltos de línea a intervalos regulares utilice \break separado mediante desplazamientos con \skip y repetidos con \repeat. Por ejemplo, esto haría que los 28 compases siguientes (suponiendo un compás de 4/4) se dividan cada cuatro compases, y sólo en dichos lugares:

 
<<
  \repeat unfold 7 {
    s1 \noBreak s1 \noBreak
    s1 \noBreak s1 \break
  }
  { la música real… }
>>

Instrucciones predefinidas

\break, \noBreak, \autoBreaksOff, \autoBreaksOn, \autoLineBreaksOff, \autoLineBreaksOn.

Fragmentos de código seleccionados

Using an extra voice for breaks

Often it is easier to manage line and page-breaking information by keeping it separate from the music by introducing an extra voice containing only skips along with the \break, pageBreak and other layout information.

This pattern becomes especially helpful when overriding line-break-system-details and the other useful but long properties of NonMusicalPaperColumnGrob.

 
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 }
    }
  >>
}

[image of music]

Véase también

Referencia de la notación: Variables de \paper para los saltos de línea, @ref{The layout block}.

Fragmentos de código: (snippets)Spacing sección ‘Spacing’ en Fragmentos de código.

Referencia de funcionamiento interno: (internals)LineBreakEvent sección ‘LineBreakEvent’ en Referencia de Funcionamiento Interno.

Advertencias y problemas conocidos

Si se escribe \autoLineBreaksOff o \autoBreaksOff antes de cualquier contenido musical, aparecerán mensajes de error. Escriba siempre estas instrucciones después de algo de música.


[ < ] [ > ]   [ << ] [ Subir ] [ >> ]         [Arriba] [Índice general] [Índice] [ ? ]

4.3.2 Saltos de página

@translationof Page breaking

Esta sección describe los distintos métodos para crear saltos de página, y cómo modificarlos.


[ < ] [ > ]   [ << ] [ Subir ] [ >> ]         [Arriba] [Índice general] [Índice] [ ? ]

Saltos de página manuales

@translationof Manual page breaking

Se puede sobreescribir el mecanismo predeterminado de salto de página insertando instrucciones \pageBreak o \noPageBreak. Estas instrucciones son análogas a \break y \noBreak. Se deben insertar en una línea divisoria. Estas instrucciones fuerzan y prohíben, respectivamente, la eventualidad de un salto de página en dicha línea divisoria. Por supuesto, la instrucción \pageBreak también fuerza un salto de línea.

Las instrucciones \pageBreak y \noPageBreak también se pueden insertar en el nivel más alto, entre las partituras y los elementos de marcado situados en el nivel superior.

Dentro de una partitura, no se producen saltos de página automáticos en el interior de la música que se encuentra entre las instrucciones \autoPageBreaksOff y \autoPageBreaksOn. Los saltos de página manuales no reultan afectados por estas instrucciones.

Hay ajustes análogos a ragged-right y ragged-last que tienen el mismo efecto sobre el espaciado vertical. Si ragged-bottom se establece a #t los sistemas no se justifican verticalmente. Cuando el valor de ragged-last-bottom se fija a #t, como lo está de forma predeterminada, se permite una separación al final de la última página (o la última página de cada uno de las partes de libro \bookpart). Véase Variables de espaciado de \paper verticales fijas.

Los saltos de página se calculan por medio de la función page-breaking. LilyPond ofrece varios algoritmos para el cómputo de los saltos de página, entre ellos ly:optimal-breaking, ly:page-turn-breaking y ly:minimal-breaking. El predeterminado es ly:optimal-breaking, pero el valor se puede cambiar en el bloque \paper:

 
\paper {
  page-breaking = #ly:page-turn-breaking
}

Cuando un libro tiene muchas partituras y páginas, puede ser difícil resolver el problema de los saltos de página, necesitando mucha memoria y prolongados tiempos de procesamiento. Para facilitar el proceso de división en páginas, se usan los bloques \bookpart para dividir el libro en varias partes: los saltos de página se producen de manera independiente en cada parte. También se pueden usar diferentes funciones de división en páginas para las distintas partes del libro.

 
\bookpart {
  \header {
    subtitle = "Prefacio"
  }
  \paper {
     %% En una parte que consiste en texto principalmente,
     %% puede ser preferible ly:minimal-breaking
     page-breaking = #ly:minimal-breaking
  }
  \markup { … }
  …
}
\bookpart {
  %% En esta parte, consistente en música, se usa la función
  %% óptima predeterminada de saltos de página.
  \header {
    subtitle = "Primer movimiento"
  }
  \score { … }
  …
}

Instrucciones predefinidas

\pageBreak, \noPageBreak, \autoPageBreaksOn, \autoPageBreaksOff.

Véase también

Referencia de la notación: Variables de \paper para los saltos de página.

Fragmentos de código: (snippets)Spacing sección ‘Spacing’ en Fragmentos de código.

Advertencias y problemas conocidos

El prefijo \once no es efectivo con \autoPageBreaksOn y \autoPageBreaksOff. Si se ha desactivado la división automática de páginas y después se vuelve a activar para permitir un salto, debe continuar activada durante algunos compases (cuyo número exacto dependerá de la partitura) antes de volverse a desactivar, pues en caso contrario podría perderse la oportunidad de que el salto se produzca.


[ < ] [ > ]   [ << ] [ Subir ] [ >> ]         [Arriba] [Índice general] [Índice] [ ? ]

Saltos de página óptimos

@translationof Optimal page breaking

La función ly:optimal-breaking es el método predeterminado de LilyPond para determinar los saltos de página. Intenta hallar una división de páginas que haga mínimos el apretujamiento y la distensión, tanto horizontal como verticalmente. A diferencia de ly:page-turn-breaking, no tiene un concepto de los pasos de página.

Véase también

Fragmentos de código: (snippets)Spacing sección ‘Spacing’ en Fragmentos de código.


[ < ] [ > ]   [ << ] [ Subir ] [ >> ]         [Arriba] [Índice general] [Índice] [ ? ]

Saltos de página mínimos

@translationof Minimal page breaking

La función ly:minimal-breaking efectúa unos cálculos mínimos para determinar los saltos de página: completa una página con tantos sistemas como sea posible antes de continuar con la siguiente. Así, puede preferirse para partituras con muchas páginas, donde las otras funciones de salto de página pueden resultar demasiado lentas o ávidas de memoria, o con una gran cantidad de textos. Se habilita utilizando:

 
\paper {
  page-breaking = #ly:minimal-breaking
}

Véase también

Snippets: (snippets)Spacing sección ‘Spacing’ en Fragmentos de código.


[ < ] [ > ]   [ << ] [ Subir ] [ >> ]         [Arriba] [Índice general] [Índice] [ ? ]

Saltos de página del tipo página única

@translationof One-page page breaking

La función ly:one-page-breaking (saltos de página única) es un algoritmo de saltos de página de proósito especial que ajusta automáticamente la altura de la página para que quepa toda la música en una sola página. La variable paper-height del bloque paper se ignora, pero los otros ajustes funcionan de la manera acostumbrada. Concretamente, el espaciado entre el último sistema (o elemento de marcado de nivel superior) y el pie de página se puede personalizar con last-bottom-spacing dentro del bloque paper. La anchura de la página se queda sin alterar por omisión, pero se puede fijar con la variable paper-width del bloque paper.

Advertencias y problemas conocidos

ly:one-page-breaking no es compatible, de momento, con \bookpart.


[ < ] [ > ]   [ << ] [ Subir ] [ >> ]         [Arriba] [Índice general] [Índice] [ ? ]

Saltos de página del tipo una-línea

@translationof One-line page breaking

La función ly:one-line-breaking es un algoritmo de saltos de página para uso especial que pone cada partitura en una página y en una sola línea. Esta función de salto de página no compone los títulos ni los márgenes; solamente se imprime la partitura.

El ancho de la página se ajusta de forma que la partitura más larga quepa en una línea. Concretamente, las variables paper-width, line-width y indent del bloque \paper se ignoran, aunque left-margin y right-margin aún se respetan. La altura de la página se deja sin cambios.


[ < ] [ > ]   [ << ] [ Subir ] [ >> ]         [Arriba] [Índice general] [Índice] [ ? ]

Saltos de página del tipo una-línea-altura-automática

@translationof One-line-auto-height page breaking

La función ly:one-line-auto-height-breaking funciona igual que ly:one-line-breaking excepro que la altura de la página se modifica automáticamente para hacerse corresponder con la altura de la música. De forma específica, la variable paper-height del bloque \paper se ajusta de tal manera que abarca los extremos superior e inferior de la partitura más alta más los márgenes superior e inferior top-margin y bottom-margin.

Observe que el ajuste top-system-spacing afecta a la posición vertical de la música. Fíjelo al valor ##f dentro de un bloque paper para disponer la música sencillamente entre los márgenes superior e inferior.


[ < ] [ > ]   [ << ] [ Subir ] [ >> ]         [Arriba] [Índice general] [Índice] [ ? ]

Paso de página óptimo

@translationof Optimal page turning

Con frecuencia es necesario encontrar una configuración de división de páginas de manera que haya un silencio al final de una página de cada dos. De esta forma, el músico puede pasar la página sin perder notas. La función ly:page-turn-breaking trata de encontrar una división de páginas que haga mínimos el apretujamiento y el estiramiento, pero con la restricción añadida de que sólo se permite 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 \paper, como se explicó en 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 especificar manualmente cada uno de los pasos de página potenciales, insertando \allowPageTurn en nuestro archivo de entrada en los lugares adecuados.

Si esto es demasiado tedioso, podemos añadir un grabador Page_turn_engraver a un contexto Staff o Voice. El grabador Page_turn_engraver analizará el contexto en busca de secciones sin notas (observe que no busca silencios, sino la ausencia de notas. Se hace así para que la polifonía en un solo pentagrama con silencios en una de las voces no arruine la labor del grabador Page_turn_engraver). Cuando encuentra una sección sin notas suficientemente larga, el grabador Page_turn_engraver inserta un \allowPageTurn en la última barra de compás de dicha sección, a no ser que haya una barra ‘especial’ de compás (como una doble barra), en cuyo caso se insertará el \allowPageTurn en la última barra ‘especial’ de compás de la sección.

El grabador Page_turn_engraver lee la propiedad de contexto minimumPageTurnLength para determinar qué longitud debe tener una sección sin notas antes de que se considere la posibilidad de un paso de página. El valor predeterminado para minimumPageTurnLength es (ly:make-moment 1/1). Si quiere inhabilitar las vueltas de página, fíjelo a algún valor ‘muy grande’.

 
\new Staff \with { \consists "Page_turn_engraver" }
{
  a4 b c d |
  R1 | % aquí se permite un salto de página
  a4 b c d |
  \set Staff.minimumPageTurnLength = #(ly:make-moment 5/2)
  R1 | % aquí no se permite un salto de página
  a4 b r2 |
  R1*2 | % aquí se permite un salto de página
  a1
}

Al usar repeticiones de primera y segunda vez, el grabador Page_turn_engraver solo permite un pase de página durante la repetición si hay suficiente tiempo al principio y al final de la repetición para volver a pasar la página hacia atrás. Si la repetición es demasiado corta, se puede usar el grabador Page_turn_engraver para inhabilitar los pasos de página mediante el establecimiento de un valor adecuado para la propiedad de contexto minimumRepeatLengthForPageTurn. En este caso el grabador Page_turn_engraver sólo permitirá los pases de página en las repeticiones cuya duración sea mayor que el valor especificado.

Las instrucciones de paso de página, \pageTurn, \noPageTurn y \allowPageTurn, se pueden usar también en el nivel más elevado del código, dentro de elementos de marcado del nivel superior y entre las partituras.

Instrucciones predefinidas

\pageTurn, \noPageTurn, \allowPageTurn.

Véase también

Referencia de la notación: Variables de \paper para los saltos de línea.

Fragmentos de código: (snippets)Spacing sección ‘Spacing’ en Fragmentos de código.

Advertencias y problemas conocidos

Utilice un solo grabador Page_turn_engraver en cada partitura. Si hay más de uno, se interferirán entre sí.

Véase también

Notation Reference: @ref{Vertical spacing}.

Fragmentos de código: (snippets)Spacing sección ‘Spacing’ en Fragmentos de código.


[ < ] [ > ]   [ << ] [ Subir ] [ >> ]

Este documento ha sido generado por gub el el 13 julio 2020 utilizando texi2html 1.82.

Otros idiomas: English, català, deutsch, français, italiano, 日本語.
Acerca de la selección automática del idioma.