4.2.1 Le bloc \layout
Alors que le bloc \paper
définit le formatage des pages pour
l’intégralité du document, le bloc \layout
gère la mise en
forme spécifique à la partition. La mise en forme de la musique peut
concerner toutes les partitions d’un même ouvrage, auquel cas un bloc
\layout
indépendant se placera en tête de fichier. Dans le cas
où la mise en forme concerne une partition en particulier, un bloc
\layout
se placera au sein du bloc \score
en question.
Sont susceptibles d’apparaître dans un bloc \layout
:
-
la fonction Scheme
layout-set-staff-size
, -
dans des blocs
\context
, les modifications apportées aux différents contextes, et -
les variables normalement attachées au bloc
\paper
qui affecteront la mise en forme de la partition.
La fonction layout-set-staff-size
fait l’objet de la rubrique
suivante, Définition de la taille de portée. La modification des
contextes est abordée dans d’autres chapitres – voir
Modification des greffons de contexte et
Modification des réglages par défaut d’un contexte.
Les variables du bloc \paper
que l’on peut retrouver dans un bloc
\layout
sont :
-
line-width
,ragged-right
etragged-last
(voir Variables de marge et de largeur) -
indent
etshort-indent
(voir Variables d’indentation et de décalage) -
system-count
(voir Variables de gestion des sauts de ligne)
Voici un exemple de 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 } }
Il est tout à fait possible que plusieurs blocs \layout
cohabitent en tant qu’expressions de niveau supérieur. Ceci se révèle
particulièrement utile lorsque différents réglages sont stockés dans des
fichiers séparés qui sont inclus au besoin. Lorsqu’un bloc
\layout
est évalué, une copie de la configuration du
\layout
actuel est réalisée en interne, augmentée des
aménagements apportés. Bien qu’on puisse considérer que le contenu des
différents blocs \layout
se cumule, c’est la dernière adaptation
qui aura préséance en cas de situation conflictuelle – cas typique
d’une même propriété modifiée dans différents blocs.
Par exemple, placer le bloc suivant
\layout { \context { \Voice \override TextScript.color = #magenta \override Glissando.thickness = #1.5 } }
après celui de l’exemple précédent aura pour effet de cumuler les
adaptations de padding
et color
pour l’objet
TextScript
, mais la dernière adaptation apportée à la propriété
thickness
de Glissando
remplace, ou masque, celle
précédemment établie.
Les blocs \layout
peuvent faire l’objet de variables, aux fins de
les utiliser ultérieurement. Ceci requiert toutefois une attention
particulière dans la mesure où cette manière de procéder n’est pas
équivalente à une définition complète et globale.
Lorsque nous définissons la variable suivante,
layoutVariable = \layout { \context { \Voice \override NoteHead.font-size = #4 } }
qui contient une configuration de \layout
avec l’adaptation
NoteHead.font-size
, cette combinaison n’est pas enregistrée en
tant que configuration courante. Notez bien que la « configuration
courante » est lue lorsque la variable est définie, non lorsqu’elle est
utilisée ; par voie de conséquence, le contenu de la variable dépend de
l’endroit où elle se trouve dans le code source.
Notre variable peut alors être utilisée au sein d’un autre bloc
\layout
, comme par exemple :
\layout { \layoutVariable \context { \Voice \override NoteHead.color = #red } }
Un bloc \layout
qui contient une variable comme ci-dessus ne
recopie pas la configuration actuelle ; il utilise en fait le contenu de
layoutVariable
en tant que configuration de base pour les
adaptations ultérieures, en conséquence de quoi toute modification
intervenant entre la définition et l’utilisation de la variable sera
perdue.
Si layoutVariable
est définie, ou rapatriée par un
\indude
, juste avant d’être utilisée, son contenu devient la
configuration actuelle augmentée des adaptations que la variable
contient. Considérant l’exemple d’utilisation de layoutVariable
ci-dessus, le bloc \layout
final contiendra donc :
TextScript.padding = #1 TextScript.color = #magenta Glissando.thickness = #1.5 NoteHead.font-size = #4 NoteHead.color = #red
ainsi que les adaptations de indent
et StaffGrouper
.
Cependant, si la variable avait été définie bien avant le premier bloc
\layout
, la configuration actuelle ne contiendrait que
NoteHead.font-size= #4 % (écrit dans la définition de la variable) NoteHead.color = #red % (ajouté après l'utilisation de la variable)
Une gestion attentive des variables de \layout
se révèle être un
outil précieux dans la mise en forme des sources et le retour à une
configuration donnée.
Voir aussi
Manuel de notation : Modification des réglages par défaut d’un contexte.
Morceaux choisis : Espacements.