Referència de la notació del GNU LilyPond: 4.2.1 El bloc \layout

### 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` i `ragged-last` (vegeu Variables de `\paper` per a l’amplada i els marges)
- `indent` i `short-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.

#### LilyPond — Referència de la notació v2.24.4 (branca estable).