3.3.7 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 "Première partie"
\score {
  {
    c'4  % ...
    \tocItem \markup "Passage spécifique de la première partie"
    d'4  % ...
  }
}

\tocItem \markup "Seconde partie"
\score {
  {
    e'4 % ...
    \tocItem actI \markup "Acte I"
    f'4 % ...
    \tocItem actI.sceneI \markup "Scène 1"
    g'4 % ...
    \tocItem actI.sceneI.recitativo \markup "Récit."
    a'4 % ...
  }
}

Un libellé peut, facultativement, être associé à un élément particulier ou de façon hiérarchique dans une liste de libellés existants, terminant alors par le libellé de cet élément. Ce dernier cas permet de marquer l’élément comme « enfant » d’éléments précédemment libellés et ainsi laisser transparaître la structure de la partition dans la table des matières.

Les markups dévolus à la mise en forme de la table des matières se définissent dans le bloc \paper. LilyPond dispose de trois markups prédéfinis :

Toutes 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.

Grâce à la commande \tocItemWithDotsMarkup, 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]

Au-delà de ces mécanismes de mise en forme, il est posssible de définir 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 et scènes 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, tout en lui autorisant de définir un libellé pour chaque acte.

tocAct =
  #(define-music-function (label text) (symbol? markup?)
     (add-toc-item! 'tocActMarkup text label))

Dans un fichier LilyPond, l’utilisation de cette définition personnalisée, avec quelques adaptations aux réglages par défaut, pourrait ressembler à ceci :

[image of music]

Cet exemple illustre par ailleurs l’utilisation de la commande \fill-with-pattern dans le cadre d’une table des matières.

Commandes prédéfinies

\table-of-contents, \tocItem, tocItemMarkup, tocTitleMarkup, tocFormatMarkup, tocIndentMarkup.

Voir aussi

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


GNU LilyPond – Manuel de notation v2.25.21 (branche de développement).