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ó 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:

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.


Referència de la notació del GNU LilyPond v2.25.21 (branca de desenvolupament).