Guida alla Notazione di LilyPond: 3.2.6 Indice

### 3.2.6 Indice

L’indice si include col comando `\markuplist \table-of-contents`. Gli elementi che devono apparire nell’indice si inseriscono col comando `\tocItem`, che può essere usato nel livello superiore o all’interno di un’espressione musicale.

    \markuplist \table-of-contents
    \pageBreak

    \tocItem \markup "Primo brano"
    \score {
      {
        c'4  % ...
        \tocItem \markup "Un punto preciso nel primo brano"
        d'4  % ...
      }
    }

    \tocItem \markup "Secondo brano"
    \score {
      {
        e'4 % ...
      }
    }

I testi markup usati per formattare l’indice sono definiti nel blocco `\paper`. Ce ne sono due predefiniti:

- `tocTitleMarkup`

  Usato per formattare il titolo dell’indice.

      tocTitleMarkup = \markup \huge \column {
        \fill-line { \null "Indice" \null }
        \null
      }

- `tocItemMarkup`

  Usato per formattare gli elementi dell’indice.

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

Queste variabili possono essere entrambe modificate.

Ecco un esempio che mostra come cambiare il titolo dell’indice in francese:

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

Ecco un esempio che mostra come cambiare il corpo dei caratteri nell’indice:

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

Nota il modo in cui sono citati il testo e il numero di pagina dell’elemento dell’indice nella definizione di `tocItemMarkup`.

Includendo il comando `\tocItemWithDotsMarkup` dentro `tocItemMarkup` lo spazio tra un elemento dell’indice e la sua pagina corrispondente sarà riempito con dei punti:

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

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

Si possono anche definire comandi personalizzati con markup specifici per creare un indice più complesso. Nell’esempio seguente, viene definito un nuovo stile per inserire i nomi degli atti nell’indice di un’opera.

Una nuova variabile di markup (chiamata `tocActMarkup`) viene definita nel blocco `\paper`:

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

Viene quindi aggiunta una funzione musicale personalizzata (`tocAct`), che usa la nuova definizione di markup `tocActMarkup`:

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

Un file di input di LilyPond, che usi queste definizioni personalizzate, potrebbe avere il seguente output:

Ecco un esempio del comando `\fill-with-pattern` usato nel contesto di un indice:

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

#### Vedi anche

File installati: ‘`ly/toc-init.ly`’.

#### Comandi predefiniti

`\table-of-contents`, `\tocItem`.

#### LilyPond — Guida alla Notazione v2.22.2 (ramo stabile).