4.2.1 El bloque \layout
Así como el bloque \paper
contiene ajustes relativos al
formateo de la página para todo el documento, el bloque
\layout
contiene ajustes para la disposición específica de
las partituras. Para fijar las opciones de disposición de
partituras de forma global, escríbalas en un bloque \layout
del nivel jerárquico superior. Para fijar opciones de disposición
para una partitura individual escríbalas dentro de un bloque
\layout
dentro del bloque \score
, después de la
música. Entre los ajustes que pueden aparecer en un bloque
\layout
se encuentran los siguientes:
- la función de Scheme
layout-set-staff-size
, - las modificaciones de contexto de los bloques
\context
, y - las variables de
\paper
que afectan a la disposición de la partitura.
La función layout-set-staff-size
se estudia en la sección
siguiente, Establecer el tamaño del pentagrama. Las
modificaciones de contexto se estudian en un capítulo distinto;
véase Modificar los complementos (plug-ins) de contexto y
Cambiar los valores por omisión de los contextos.
Las variables de \paper
que pueden aparecer dentro de un
bloque \layout
, y cuyos valores predeterminados se toman
del bloque paper
, son:
-
line-width
,ragged-right
yragged-last
(véase Variables de\paper
para la anchura y los márgenes) -
indent
yshort-indent
(véase Variables de\paper
para desplazamientos y sangrados) -
system-count
(véase Variables de\paper
para los saltos de línea)
He aquí un ejemplo de un bloque \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 } }
Se pueden escribir varios bloques \layout
como expresiones
del nivel superior. Esto puede ser útil, por ejemplo, si hay
distintos ajustes almacenados en diversos archivos y se incluyen
opcionalmente. Internamente, cuando se evalúa un bloque
\layout
, se hace una copia de la configuración de
\layout
actual, y después se aplican los cambios definidos
en el bloque; el resultado se guarda como la nueva configuración
actual. Desde el punto de vista del usuario, los bloques
\layout
se combinan, pero en situaciones de conflicto
(cuando se cambia la misma propiedad en diferentes bloques) las
definiciones más tardías toman precedencia.
Por ejemplo: si este bloque:
\layout { \context { \Voice \override TextScript.color = #magenta \override Glissando.thickness = #1.5 } }
se coloca después del del ejemplo anterior, las sobreescrituras de
'padding
y de 'color
para TextScript
se
combinan, pero la última sobreescritura 'thickness
para
Glissando
sustituye (u oculta) a la anterior.
Los bloques \layout
se pueden asignar a variables para una
reutilización posterior, pero la forma en que esto funciona es
ligera y significativamente diferente del hecho de escribirlas
literalmente.
Si se define una variable de la siguiente manera:
variable_de_Layout = \layout { \context { \Voice \override NoteHead.font-size = #4 } }
guardará la configuración actual de \layout
con la
sobreescritura añadida de NoteHead.font-size
, pero esta
combinación no se guarda como la nueva configuración
actual. Tenga en cuenta que la ‘configuración actual’ se lee
cuando la variable se define y no cuando se usa, de manera que el
contenido de la variable depende de su posición dentro del código
fuente.
La variable se puede entonces usar dentro de otro bloque
\layout
, por ejemplo:
\layout { \variable_de_layout \context { \Voice \override NoteHead.color = #red } }
Un bloque \layout
que contiene una variable, como en el
ejemplo anterior, no copia la configuración actual, sino
que en lugar de ello usa el contenido de
\variable_de_layout
como la configuración base para las
adiciones posteriores. Esto significa que cualquier cambio
definido entre la definición y el uso de la variable, se pierde.
Si la variable_de_layout
se define (o se incluye con
\include
) inmediatamente antes de que se utilice, su
contenido es sencillamente la configuración en curso más las
sobreescrituras que se hayan definido dentro de él. Así pues, en
el ejemplo anterior que muestra el uso de
\variable_de_layout
el último bloque \layout
consistiría en:
TextScript.padding = #1 TextScript.color = #magenta Glissando.thickness = #1.5 NoteHead.font-size = #4 NoteHead.color = #red
más las sobreescrituras de indent
y de StaffGrouper
.
Pero si la variable ya hubiera sido definida antes del primer
bloque \layout
la configuración actual contendría ahora
solamente
NoteHead.font-size= #4 % (escrita en la definición de la variable) NoteHead.color = #red % (añadida después del uso de la variable)
Si se planifica cuidadosamente, las variables de \layout
pueden ser una herramienta valiosa para estructurar el diseño de
la disposición de las fuentes, y también para reiniciar la
configuración de \layout
a un estado conocido.
Véase también
Referencia de la notación: Cambiar los valores por omisión de los contextos.
Fragmentos de código: Spacing.