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 :

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
}

[image of music]

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 :

[image of music]

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

\table-of-contents, \tocItem.

Voir aussi

Fichiers d’initialisation : ‘../ly/toc-init.ly’.


Autres langues : English, català, deutsch, español, italiano, 日本語.
About automatic language selection.

LilyPond — Manuel de notation v2.21.0 (branche de développement).