4.3.2 Salts de pàgina

Aquesta secció descriu els diferents mètodes per crear salts de pàgina, i com modificar-los.


Salts de pàgina manuals

Es pot sobreescriure el mecanisme predeterminat de salt de pàgina inserint ordres \pageBreak o \noPageBreak. Aquestes ordres són anàlogues a \break i \noBreak. S’han d’inserir en una línia divisòria. Aquestes ordres forcen i prohibeixen, respectivament, l’eventualitat d’un salt de pàgina d’aquesta línia divisòria. Per suposat, l’ordre \pageBreak també força un salt de línia.

Les ordres \pageBreak i \noPageBreak també es poden inserir al nivell més alt, entre les partitures i els elements de marcatge situats al nivell superior.

Dins d’una partitura, no es produeixen salts de pàgina automàtics a l’interior de la música que est troba entre les ordres \autoPageBreaksOff i \autoPageBreaksOn. Els salts de pàgina manuals no es veuen afectats per aquestes ordres.

Hi ha ajustament anàlegs a ragged-right i ragged-last que tenen el mateix efecte sobre l’espaiat vertical. Si ragged-bottom s’estableix a #t els sistemes no es justifiquen verticalment. Quan el valor de ragged-last-bottom es fixa a #t, como ho està de forma predeterminada, es permet una separació al final de l’última pàgina (o l’última pàgina de cada una de les parts de llibre \bookpart). Vegeu Variables fixes d’espaiat vertical de \paper.

Els salts de pàgina es calculen per mitjà de la funció page-breaking. El LilyPond ofereix algoritmes per al còmput dels salts de pàgina, entre ells ly:optimal-breaking, ly:page-turn-breaking i ly:minimal-breaking. El predeterminat és ly:optimal-breaking, però el valor es pot canviar al bloc \paper:

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

Quan un llibre té moltes partitures i pàgines, pot ser difícil resoldre el problema dels salts de pàgina, fent falta molta memòria i temps llargs de processament. Per facilitar el procés de divisió de pàgines, s’usen els blocs \bookpart per dividir el llibre en diverses parts: els salts de pàgina es produeixen de manera independent a cada part. També es poden usar diferents funcions de divisió en pàgines per a les diferents part del llibre.

\bookpart {
  \header {
    subtitle = "Prefaci"
  }
  \paper {
     %% En una part consisteix en text principalment,
     %% pot ser preferible ly:minimal-breaking
     page-breaking = #ly:minimal-breaking
  }
  \markup { … }
  …
}
\bookpart {
  %% En aquesta part, consistent en música, s'usa la funció
  %% òptima predeterminada de salts de pàgina.
  \header {
    subtitle = "Primer moviment"
  }
  \score { … }
  …
}

Instruccions predefinides

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

Vegeu també

Referència de la notació: Variables de \paper per als salts de pàgina.

Fragments de codi: Spacing.

Advertiments i problemes coneguts

El prefix \once no és efectiu amb \autoPageBreaksOn i \autoPageBreaksOff. Si s’ha desactivat la divisió automàtica de pàgines i després es torna a activar per permetre un salt, ha de continuar activada durant alguns compassos (el nombre exacte dels quals dependrà de la partitura) abans de tornar-se a desactivar, perquè en cas contrari podria perdre’s l’oportunitat que es produeixi el salt.


Salts de pàgina òptims

La funció ly:optimal-breaking és el mètode predeterminat del LilyPond per determinar els salts de pàgina. Intenta trobar una divisió de pàgines que minimitzi l’atapeïment i la distensió, tant horitzontalment com vertical. A diferència de ly:page-turn-breaking, no inclou un concepte dels passos de pàgina.

Vegeu també

Fragments de codi: Spacing.


Saltos de página mínimos

La funció ly:minimal-breaking efectua uns càlculs mínims per determinar els salts de pàgina: completa una pàgina amb tants sistemes com sigui possible abans de continuar amb la següent. Així, pot preferir-se per a partitures amb moltes pàgines, on les altres funcions de salt de pàgina poden resultar massa lentes o àvides de memòria, o amb una gran quantitat de textos. S’habilita utilitzant:

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

Vegeu també

Fragments de codi: Spacing.


Salts de pàgina del tipus pàgina única

La funció ly:one-page-breaking (salts de pàgina única) és un algoritme de salts de pàgina de propòsit especial que ajusta automàticament l’alçada de la pàgina perquè càpiga tota la música en una sola pàgina. La variable paper-height del bloc paper s’ignora, però els altres ajustaments funcionen de la manera acostumada. Concretament, l’espaiat entre l’últim sistema (o element de marcatge de nivell superior) i el peu de pàgina es pot personalitzar amb last-bottom-spacing dins del bloc paper. L’amplada de la pàgina es queda sense alterar per omissió, però es pot fixar amb la variable paper-width del bloc paper.

Advertiments i problemes coneguts

ly:one-page-breaking no és compatible, de moment, amb \bookpart.


Salts de pàgina del tipus una-línia

La funció ly:one-line-breaking és un algoritme de salts de pàgina per ús especial que posa cada partitura en una pàgina i una sola línia. Aquesta funció de salt de pàgina no composa els títols ni els marges; sols s’imprimeix la partitura.

L’amplada de la pàgina s’ajusta de forma que la partitura més llarga càpiga en una línia. Concretament, les variables paper-width, line-width i indent del bloc \paper s’ignoren, tot i que left-margin i right-margin encara es respecten. L’alçada de la pàgina es deixa sense canvis.


Salts de pàgina del tipus una-línia-alçada-automàtica

La funció ly:one-line-auto-height-breaking funciona igual que ly:one-line-breaking excepte que l’alçada de la pàgina es modifica autoàticament per fer-se correspondre amb l’alçada de la música. De forma específica, la variable paper-height del bloc \paper s’ajusta de tal manera que abasta els extrems superior i inferior de la partitura més alta més els marges superior i inferior top-margin i bottom-margin.

Observeu que l’ajustament top-system-spacing afecta a la posició vertical de la música. Establiu-lo al valor ##f dins d’un bloc paper para disposar la música senzillament entre els marges superior i inferior.


Pas de pàgina òptim

Freqüentment cal trobar una configuració de divisió de pàgines de manera que hi hagi un silenci al final d’una pàgina de cada dos. D’aquesta forma, el músic pot passar la pàgina sense perdre notes. La funció ly:page-turn-breaking intenta trobar una divisió de pàgines que faci mínims l’atapeïment i l’estirament, però amb la restricció afegida que sols es permet introduir voltes de pàgina als llocs especificats.

Hi ha dues etapes en l’ús d’aquesta funció de divisió de pàgines. En primer lloc hem d’habilitar-lo en el bloc \paper, com es va explicar a Salts de pàgina. Aleshores hem de dir-li a la funció on ens agradaria permetre els salts de pàgina.

Hi ha dues formes d’aconseguir la segona tasca. Primer, podem especificar manualment cada un dels passos de pàgina potencials, inserint \allowPageTurn al nostre fitxer d’entrada als llocs adequats.

Si això és massa tediós, podem afegir un gravador Page_turn_engraver a un context Staff o Voice. El gravador Page_turn_engraver analitzarà el context en cerca de seccions sense notes (observeu que no busca silencis, sinó l’absència de notes. Es fa així perquè la polifonia en un sol pentagrama amb silencis en una de les veus no arruïni la tasca del gravador Page_turn_engraver). Quan troba una secció sense notes suficientment llarg, el gravador Page_turn_engraver insereix un \allowPageTurn a l’última barra de compàs d’aquesta secció, a no ser que hi hagi una barra ‘especial’ de compàs (com una doble barra), cosa que farà que insereixi el \allowPageTurn en la última barra ‘especial’ de compàs de la secció.

El gravador Page_turn_engraver llegeix la propietat de context minimumPageTurnLength per determinar quina longitud ha de tenir una secció sense notes abans que es consideri la possibilitat d’un pas de pagina. El valor predeterminat per a minimumPageTurnLength és (ly:make-moment 1/1). Si voleu deshabilitar les voltes de pàgina, establiu-lo a algun valor ‘molt gran’.

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

En usar repeticions de primera i segona vegada, el gravador Page_turn_engraver sols permet un pas de pàgina durant la repetició si hi ha prou temps al principi i al final de la repetició per tornar a passar la pàgina cap a darrere. Si la repetició es massa curta, es pot usar el gravador Page_turn_engraver per deshabilitar els passos de pàgina mitjançant l’establiment d’un valor adequat per a la propietat de context minimumRepeatLengthForPageTurn. En aquest cas el gravador Page_turn_engraver sols permetrà els passos de pàgina a les repeticions la durada de les quals sigui més gran que el valor especificat.

Les ordres de pas de pàgina, \pageTurn, \noPageTurn i \allowPageTurn, es poden usar també al nivell més elevat del codi, dins d’elements de marcatge del nivell superior i entre les partitures.

Instruccions predefinides

\pageTurn, \noPageTurn, \allowPageTurn.

Vegeu també

Referència de la notació: Variables de \paper per als salts de línia.

Fragments de codi: Spacing.

Advertiments i problemes coneguts

Utilitzeu un sols gravador Page_turn_engraver en cada partitura. Si hi ha més d’un, s’interferiran entre sí.

Vegeu també

Referència de la notació: Espaiat vertical.

Fragments de codi: Spacing.


LilyPond — Referència de la notació v2.24.4 (branca estable).