[ << Gestió de l'espai ] | [Part superior][Continguts][Índex] | [ Canvi dels valors predeterminats >> ] |
[ < Salts de línia ] | [ Amunt : Salts ] | [ Salts de pàgina manuals > ] |
4.3.2 Salts de pàgina
Aquesta secció descriu els diferents mètodes per crear salts de pàgina, i com modificar-los.
[ << Gestió de l'espai ] | [Part superior][Continguts][Índex] | [ Canvi dels valors predeterminats >> ] |
[ < Salts de pàgina ] | [ Amunt : Salts de pàgina ] | [ Salts de pàgina òptims > ] |
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.
[ << Gestió de l'espai ] | [Part superior][Continguts][Índex] | [ Canvi dels valors predeterminats >> ] |
[ < Salts de pàgina manuals ] | [ Amunt : Salts de pàgina ] | [ Salts de pàgina mínims > ] |
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.
[ << Gestió de l'espai ] | [Part superior][Continguts][Índex] | [ Canvi dels valors predeterminats >> ] |
[ < Salts de pàgina òptims ] | [ Amunt : Salts de pàgina ] | [ Salts de pàgina del tipus pàgina única > ] |
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.
[ << Gestió de l'espai ] | [Part superior][Continguts][Índex] | [ Canvi dels valors predeterminats >> ] |
[ < Salts de pàgina mínims ] | [ Amunt : Salts de pàgina ] | [ Salts de pàgina del tipus una-línia > ] |
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.
[ << Gestió de l'espai ] | [Part superior][Continguts][Índex] | [ Canvi dels valors predeterminats >> ] |
[ < Salts de pàgina del tipus una-línia ] | [ Amunt : Salts de pàgina ] | [ Pas de pàgina òptim > ] |
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.