3.2.2 Titrages personnalisés
Mise en forme personnalisée des champs de titrage | ||
Mise en forme personnalisée des blocs de titrage | ||
Mise en forme personnalisée des entête et pied de page |
Mise en forme personnalisée des champs de titrage
Toutes les commandes de mise en forme d’un \markup
permettent de
personnaliser le texte des entête, pied de page et éléments de titre
contenus dans un bloc \header
.
\score { { s1 } \header { piece = \markup { \fontsize #4 \bold "PRAELUDIUM I" } opus = \markup { \italic "(Excerpt)" } } }
Voir aussi
Manuel de notation : Mise en forme du texte.
Mise en forme personnalisée des blocs de titrage
L’utilisation de commandes \markup
au sein d’un bloc
\header
permet de modifier aisément l’apparence du texte,
mais n’influence en rien le positionnement précis des éléments de
titrage. L’accès au positionnement des champs de titrage est géré par
les deux variables suivantes, attachées au bloc \paper
:
-
bookTitleMarkup
-
scoreTitleMarkup
Le positionnement des titres, avec les valeurs par défaut de ces
variables \markup
, est illustré à la rubrique
Mise en forme par défaut des titrages.
Voici les réglages par défaut de scoreTitleMarkup
, tels que
définis dans le fichier ‘ly/titling-init.ly’ :
scoreTitleMarkup = \markup { \column { \on-the-fly #print-all-headers { \bookTitleMarkup \hspace #1 } \fill-line { \fromproperty #'header:piece \fromproperty #'header:opus } } }
Ceci aura donc pour effet de positionner les champs piece
et
opus
sur la même ligne, en opposition :
\score { { s1 } \header { piece = "PRAELUDIUM I" opus = "BWV 846" } }
Voici comment positionner le champ piece
, dont nous modifions
la taille et la graisse, au centre de cette ligne :
\book { \paper { indent = 0\mm scoreTitleMarkup = \markup { \fill-line { \null \fontsize #4 \bold \fromproperty #'header:piece \fromproperty #'header:opus } } } \header { tagline = ##f } \score { { s1 } \header { piece = "PRAELUDIUM I" opus = "BWV 846" } } }
Les champs normalement réservés au bloc de titrage principal seront
reportés au niveau inférieur dès lors que vous aurez activé
l’instruction print-all-headers
au sein du bloc \paper
.
Le principal inconvénient de cette fonction réside dans le fait que les
champs réservés au bloc \header
principal devront être supprimés
dans chacun des blocs \score
de votre fichier source – voir
Contenu des blocs de titrage.
Afin d’éviter ce désagrément, ajoutez le champ que vous désirez voir
apparaître à la définition de scoreTitleMarkup
. Nous allons,
dans l’exemple suivant, ajouter au scoreTitleMarkup
le champ
composer
, normalement associé au bookTitleMarkup
;
chaque \score
pourra mentionner un compositeur différent.
\book { \paper { indent = 0\mm scoreTitleMarkup = \markup { \fill-line { \null \fontsize #4 \bold \fromproperty #'header:piece \fromproperty #'header:composer } } } \header { tagline = ##f } \score { { s1 } \header { piece = "MENUET" composer = "Christian Petzold" } } \score { { s1 } \header { piece = "RONDEAU" composer = "François Couperin" } } }
Rien ne vous empêche de créer votre propre champ personnalisé, puis d’y faire référence dans la définition du markup.
\book { \paper { indent = 0\mm scoreTitleMarkup = \markup { \fill-line { \null \override #`(direction . ,UP) { \dir-column { \center-align \fontsize #-1 \bold \fromproperty #'header:mycustomtext %% User-defined field \center-align \fontsize #4 \bold \fromproperty #'header:piece } } \fromproperty #'header:opus } } } \header { tagline = ##f } \score { { s1 } \header { piece = "FUGA I" mycustomtext = "A 4 VOCI" %% User-defined field opus = "BWV 846" } } }
Voir aussi
Manuel de notation : Contenu des blocs de titrage.
Mise en forme personnalisée des entête et pied de page
L’utilisation de commandes \markup
au sein d’un bloc
\header
permet de modifier aisément l’apparence du texte,
mais n’influence en rien le positionnement précis des entête et pied
de page. L’accès au positionnement des champs concernés est géré par
les quatre variables suivantes, attachées au bloc \paper
:
-
oddHeaderMarkup
-
evenHeaderMarkup
-
oddFooterMarkup
-
evenFooterMarkup
L’instruction \on-the-fly
au sein d’un \markup
permet
d’ajouter, lorsque certaines conditions sont respectées, des éléments
au texte des entête et pied de page définis dans le bloc \paper
.
En voici la syntaxe :
variable
=\markup
{ ...\on-the-fly
#procédure markup ... }
La procédure est appelée à chaque fois que la commande
\markup
où elle apparaît est évaluée. La procédure
effectuera un test de conformité particulière et interprètera, autrement
dit imprimera l’argument markup si et seulement si cette
condition est remplie.
LilyPond dispose d’ores et déjà d’un certain nombre de procédures :
Nom de la procédure
Condition testée
print-page-number-check-first
il faut imprimer ce numéro de page.
create-page-number-stencil
’print-page-numbers est vrai.
print-all-headers
’print-all-headers est vrai.
first-page
c’est la première page du book.
(on-page nombre)
page number = nombre
last-page
c’est la dernière page du book.
not-first-page
ce n’est la première page du book.
part-first-page
c’est la première page de la partie.
part-last-page
c’est la dernière page de la partie.
not-single-page
cette partie fait plus d’une page.
L’exemple suivant illustre la manière de centrer son numéro au bas de
chaque page. Il nous faut tout d’abord annuler la définition de
oddHeaderMarkup
et evenHeaderMarkup
à l’aide d’un
markup \null
. Nous redéfinissons ensuite
oddFooterMarkup
pour qu’il contienne le numéro de page, centré.
Enfin, nous appliquons le même paramétrage au \oddFooterMarkup
.
\book { \paper { print-page-number = ##t print-first-page-number = ##t oddHeaderMarkup = \markup \null evenHeaderMarkup = \markup \null oddFooterMarkup = \markup { \fill-line { \on-the-fly #print-page-number-check-first \fromproperty #'page:page-number-string } } evenFooterMarkup = \oddFooterMarkup } \score { \new Staff { s1 \break s1 \break s1 } } }
Plusieurs conditions \on-the-fly
mentionnées l’une à la suite de
l’autre se cumulent. Ainsi, par exemple,
\on-the-fly #first-page
\on-the-fly #last-page
{ \markup ... \fromproperty #'header: ... }
teste si la sortie tient sur une page unique.
Voir aussi
Manuel de notation : Contenu des blocs de titrage, Mise en forme par défaut des titrages.
fichiers d’initialisation : ‘../ly/titling-init.ly’.
Autres langues : English, deutsch, español, italiano, 日本語.
About automatic language selection.