3.2.6 Table des matières
La commande \markuplist \table-of-contents
vous permettra de
générer une table des matières. Les éléments qui la composeront sont
créés par la commande \tocItem
, insérée indépendamment ou au sein
d’une expression musicale.
\markuplist \table-of-contents \pageBreak \tocItem \markup "Premier mouvement" \score { { c'4 % @dots{} \tocItem \markup "Passage spécifique du premier mouvement" d'4 % @dots{} } } \tocItem \markup "Second mouvement" \score { { e'4 % @dots{} } }
Les markups dévolus à la mise en forme de la table des matières
se définissent dans le bloc \paper
. LilyPond dispose de deux
markups prédéfinis :
-
tocTitleMarkup
Utilisé pour mettre en forme le titre de la table des matières.
tocTitleMarkup = \markup \huge \column { \fill-line { \null "Table of Contents" \null } \null }
-
tocItemMarkup
Utilisé pour mettre en forme les éléments au sein de la table des matières.
tocItemMarkup = \markup \fill-line { \fromproperty #'toc:text \fromproperty #'toc:page }
Ces variables sont adaptables.
Voici comment, par exemple, franciser le titre :
\paper { tocTitleMarkup = \markup \huge \column { \fill-line { \null "Table des matières" \null } \hspace #1 }
L’exemple suivant illustre la manière de modifier la taille des éléments de la table des matières :
tocItemMarkup = \markup \large \fill-line { \fromproperty #'toc:text \fromproperty #'toc:page }
Notez bien la manière de référencer le libellé et le numéro de page dans
la définition de tocItemMarkup
.
L’élément et son numéro de page peuvent se rejoindre par une ligne pointillée :
\header { tagline = ##f } \paper { tocItemMarkup = \tocItemWithDotsMarkup } \book { \markuplist \table-of-contents \tocItem \markup { Allegro } \tocItem \markup { Largo } \markup \null }
N’hésitez pas à définir vous-même d’autres commandes et markups afin de construire une table plus élaborée. Dans l’exemple qui suit, nous créons un nouveau style d’élément dans le but de mentionner les actes dans la table des matières d’un opéra :
Commençons par définir une nouvelle variable de type markup
–
appelée tocActMarkup
– au sein du bloc \paper
.
\paper { tocActMarkup = \markup \large \column { \hspace #1 \fill-line { \null \italic \fromproperty #'toc:text \null } \hspace #1 } }
Créons ensuite une fonction musicale (tocAct
) utilisant la
nouvelle définition de markup tocActMarkup
.
tocAct = #(define-music-function (text) (markup?) (add-toc-item! 'tocActMarkup text))
Dans un fichier LilyPond, l’utilisation de cette définition personnalisée pourrait ressembler à ceci :
Voici comment utiliser la commande \fill-with-pattern
dans le
cadre d’une table des matières :
tocItemMarkup = \markup { \fill-line { \override #'(line-width . 70) \fill-with-pattern #1.5 #CENTER . \fromproperty #'toc:text \fromproperty #'toc:page } }
Commandes prédéfinies
Voir aussi
Fichiers d’initialisation : ‘../ly/toc-init.ly’.
Autres langues : English, català, deutsch, español, italiano, 日本語.
About automatic language selection.