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
\paperque 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-rightyragged-last(véase Variables de\paperpara la anchura y los márgenes) -
indentyshort-indent(véase Variables de\paperpara desplazamientos y sangrados) -
system-count(véase Variables de\paperpara 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.