3.2.6 Índice general

Se puede insertar un índice general o tabla de contenidos utilizando la instrucción \markuplist \table-of-contents. Los elementos que deben aparecer en la tabla de contenidos se introducen con la instrucción \tocItem, que se puede usar en el nivel más alto de la jerarquía del código, o dentro de una expresión musical.

\markuplist \table-of-contents
\pageBreak

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

\tocItem \markup "Segunda partitura"
\score {
  {
    e'4 % ...
    \tocItem actI \markup "Act I"
    f'4 % ...
    \tocItem actI.sceneI \markup "Scene 1"
    g'4 % ...
    \tocItem actI.sceneI.recitativo \markup "Recit."
    a'4 % ...
  }
}

De manera opcional se puede asociar una etiqueta con un elemento en particular o con una lista jerárquica de etiquetas existentes, terminando con la etiqueta de ese elemento. Esta última posibilidad nos permite marcar el elemento como un ‘hijo’ de los elementos etiquetados precedentes, haciendo así aparente la estructura de la partitura en el índice general.

Los elementos de marcado que se usan para dar formato al índice general o tabla de contenidos se encuentran definidos dentro del bloque \paper. Hay tres elementos de marcado ‘predefinidos’ disponibles:

Cualquiera de estas variables puede modificarse.

He aquí un ejemplo que traduce el título del índice general al francés:

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

A continuación aparece un ejemplo que modifica el tamaño de fuente tipográfica de los elementos del índice general:

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

Observe la forma en que nos referimos al texto y al número de página del elemento de índice, dentro de la definición tocItemMarkup.

La instrucción \tocItemWithDotsMarkup se puede incluir dentro de tocItemMarkup para llenar la línea con puntos entre un elemento del índice general y su número de página correspondiente:

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

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

[image of music]

Además del mecanismo incorporado de construcción del índice general, las instrucciones predefinidas pueden definirse también para que construyan un índice general más personalizado con diferentes elementos de marcado. En el ejemplo siguiente se define un estilo nuevo para introducir los actos y escenas de una ópera en el índice general:

Una nueva variable de marcado (llamada tocActMarkup) se define en el bloque \paper:

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

A continuación se crea una función musical personalizada (tocAct), que usa la nueva definición de marcado tocActMarkup, y permite especificar una etiqueta para cada acto.

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

Usando estas definiciones personalizadas y modificando algunas de las definiciones existentes, el archivo fuente se podría escribir entonces de la manera siguiente:

[image of music]

El ejemplo anterior muestra también cómo usar la instrucción de marcado \fill-with-pattern dentro del contexto de un índice general o tabla de contenidos.

Véase también

Archivos de inicio: ly/toc-init.ly.

Instrucciones predefinidas

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


Referencia de la notación de GNU LilyPond v2.25.22 (development-branch).