4.2.1 El bloc \layout
Així com el bloc \paper
conté ajustos relatius al format de
la pàgina per a tot el document, el bloc \layout
conté
ajustaments per a la disposició específica de les partitures. Per
establir les opcions de disposició de partitures de forma global,
escriviu-les en un bloc \layout
del nivell jeràrquic
superior. Per establir opcions de disposició per a una partitura
individual escriviu-les dins d’un bloc \layout
dins del
bloc \score
, després de la música. Entre els ajustaments
que poden aparèixer en un bloc \layout
es troben els
següents:
- la funció de l’Scheme
layout-set-staff-size
, - les modificacions de context dels blocs
\context
, i - les variables de
\paper
que afecten a la disposició de la partitura.
La funció layout-set-staff-size
s’estudia en la secció
següent, Establiment de la mida del pentagrama. Les
modificacions de context s’estudien en un capítol diferent; vegeu
Modificació dels connectors (plug-ins) de context i
Canvi dels paràmetres predeterminats dels contextos.
Les variables de \paper
que poden aparèixer dins d’un bloc
\layout
, i els valors predeterminats de les quals s’agafen
del bloc paper
, són:
-
line-width
,ragged-right
iragged-last
(vegeu Variables de\paper
per a l’amplada i els marges) -
indent
ishort-indent
(vegeu Variables de\paper
per a desplaçaments i sagnats) -
system-count
(vegeu Variables de\paper
per als salts de línia)
He aquí un exemple d’un bloc \layout
:
\layout { indent = 2\cm \context { \StaffGroup \override StaffGrouper.staff-staff-spacing.basic-distance = #8 } \context { \Voice \override TextScript.padding = #1 \override Glissando.thickness = #3 } }
Es poden escriure diversos blocs \layout
com expressions
del nivell superior. Això pot ser útil, per exemple, si hi ha
diferents ajustaments emmagatzemats a diversos fitxers i
s’inclouen opcionalment. Internament, quan s’avalua un bloc
\layout
, es fa una còpia de la configuració de
\layout
actual, i després s’apliquen els canvis definits en
el bloc; el resultat es desa com la nova configuració actual. Des
del punt de vista de l’usuari, els blocs \layout
es
combinen, però en situacions de conflicte (quan es canvia la
mateixa propietat a blocs diferents) les definicions més tardanes
prenen preferència.
Per exemple si aquest bloc:
\layout { \context { \Voice \override TextScript.color = #magenta \override Glissando.thickness = #1.5 } }
es col·loca després de l’exemple anterior, les sobreescriptures de
'padding
i de 'color
per a TextScript
es
combinen, però l’última sobreescriptura 'thickness
per a
Glissando
substitueix (o oculta) a l’anterior.
Els blocs \layout
es poden assignar a variables per a una
reutilització posterior, però la forma en la qual això funciona és
lleugera i significativament diferent del fet d’escriure-les
literalment.
Si es defineix una variable de la manera següent:
variable_de_Layout = \layout { \context { \Voice \override NoteHead.font-size = #4 } }
desarà la configuració actual de \layout
amb la
sobreescriptura afegida de NoteHead.font-size
, però aquesta
combinació no es desa com la nova configuració actual.
Tingueu en compte que la ‘configuració actual’ es llegeix quan
la variable es defineix i no quan s’usa, de manera que el
contingut de la variable depèn de la seva posició dins del codi font.
La variable es pot aleshores usar dins d’un altre bloc
\layout
, per exemple:
\layout { \variable_de_layout \context { \Voice \override NoteHead.color = #red } }
Un bloc \layout
que conté una variable, com a l’exemple
anterior, no copia la configuració actual, sinó en el seu
lloc usa el contingut \variable_de_layout
com la
configuració base per a les addicions posteriors. Això significa
que qualsevol canvi definit entre la definició i l’ús de la
variable, es perd.
Si la variable_de_layout
es defineix (o s’inclou amb
\include
) immediatament abans que s’utilitzi, el seu
contingut és senzillament la configuració en curs més les
sobreescritures que s’hagi definit dins d’ell. Així doncs, a
l’exemple anterior que mostra l’ús de
\variable_de_layout
l’últim bloc \layout
consistiría en:
TextScript.padding = #1 TextScript.color = #magenta Glissando.thickness = #1.5 NoteHead.font-size = #4 NoteHead.color = #red
més les sobreescriptures de indent
i de StaffGrouper
.
Però si la variable ja hagués estat definida abans del primer bloc
\layout
la configuració actual contindria ara sols
NoteHead.font-size= #4 % (escrita en la definició de la variable) NoteHead.color = #red % (afegida després de l'ús de la variable)
Si es planifica amb cura, les variables de \layout
poden
ser una eina valuosa per estructurar el disseny de la disposició
de les fonts, i també per reiniciar la configuració de
\layout
a un estat conegut.
Vegeu també
Referència de la notació: Canvi dels paràmetres predeterminats dels contextos.
Fragments de codi: Spacing.