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:
-
tocTitleMarkup
Utilizado para dar formato al título del índice general.
tocTitleMarkup = \markup \huge \column { \fill-line { \null "Índice general" \null } \null }
-
tocItemMarkup
Usado para dar formato a los elementos del índice general.
tocItemMarkup = \markup \fill-line { \fromproperty #'toc:text \fromproperty #'toc:page }
-
tocFormatMarkup
Cómo se formatean las entradas del nivel superior de la tabla (si existen varios niveles jerárquicos). Esto es un procedimiento en realidad, como se explica en Construcción de elementos de marcado en Scheme.
tocFormatMarkup = #make-bold-markup
-
tocIndentMarkup
Usado para definir cómo la jerarquía del esquema general se hace aparente. Este elemento de marcado se imprime ninguna, una o varias veces dependiendo del nivel de cada entrada.
tocIndentMarkup = \markup \hspace #4
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 }
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:
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
.