Referència de la notació del GNU LilyPond: 4.3.2 Salts de pàgina

### 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.22.2 (branca estable).