3.2.6 Índex general

Es pot inserir un índex general o taula de continguts utilitzant l’ordre \markuplist \table-of-contents. Els elements que han d’aparèixer a la taula de continguts s’introdueixen amb l’ordre \tocItem, que es pot usar al nivell més alt de la jerarquia del codi, o dins d’una expressió musical.

\markuplist \table-of-contents
\pageBreak

\tocItem \markup "Primera partitura"
\score {
  {
    c'4  % ...
    \tocItem \markup "Un punto concret dins de la primera partitura"
    d'4  % ...
  }
}

\tocItem \markup "Segona partitura"
\score {
  {
    e'4 % ...
  }
}

Els elements de marcatge que s’usen per donar format a l’índex general o taula de continguts estan definits dins del bloc \paper. Hi ha dos elements de marcatge ‘predefinits’ disponibles:

Ambdues variables poden modificar-se.

Vet aquí un exemple que modifica el títol de l’índex general perquè aparegui en francès:

\paper {
  tocTitleMarkup = \markup \huge \column {
    \fill-line { \null "Table des matières" \null }
    \hspace #1
  }

A continuació apareix un exemple que modifica la mida del tipus de lletra dels elements de l´índex general:

tocItemMarkup = \markup \large \fill-line {
  \fromproperty #'toc:text \fromproperty #'toc:page
}

Observeu la forma en la qual ens referim al text i al número de pàgina de l’element d l’índex, dins de la definició tocItemMarkup.

L’ordre \tocItemWithDotsMarkup es pot incloure dins de tocItemMarkup per omplir la línia amb punts entre un element de l’índex general i el seu número de pàgina corresponent:.

\header { tagline = ##f }
\paper {
  tocItemMarkup = \tocItemWithDotsMarkup
}

\book {
  \markuplist \table-of-contents
  \tocItem \markup { Allegro }
  \tocItem \markup { Largo }
  \markup \null
}

[image of music]

Les ordres predefinides amb els seus propis marcatges poden definir-se també perquè construeixin un índex general més complex. A l’exemple següent es defineix un estil nou per introduir els noms dels actes d’una òpera a l’índex general:

Una nova variable de marcatge (anomenada tocActMarkup) es defineix al bloc \paper:

\paper {
  tocActMarkup = \markup \large \column {
    \hspace #1
    \fill-line { \null \italic \fromproperty #'toc:text \null }
    \hspace #1
  }
}

A continuació es crea una funció musical personalitzada (tocAct), que usa la nova definició de marcatge tocActMarkup.

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

Un fitxer d’entrada del LilyPond que usi aquestes definicions personalitzades tindria l’aspecte següent:

[image of music]

Vet aquí un exemple de l’ordre \fill-with-pattern usada dins del context d’un índex general:

\paper {
  tocItemMarkup = \markup { \fill-line {
    \override #'(line-width . 70)
    \fill-with-pattern #1.5 #CENTER . \fromproperty #'toc:text \fromproperty #'toc:page
    }
  }
}

Vegeu també

Fitxers d’inici: ly/toc-init.ly.

Instruccions predefinides

\table-of-contents, \tocItem.


Referència de la notació del GNU LilyPond v2.25.22 (development-branch).