| [ << General input and output ] | [Part superior][Continguts][Índex][ ? ] | [ Spacing issues >> ] | ||
| [ < Reference to page numbers ] | [ Amunt : Titles and headers ] | [ Working with input files > ] | ||
3.2.6 Table of contents
A table of contents is included using the
\markuplist \table-of-contents command.  The elements which
should appear in the table of contents are entered with the
\tocItem command, which may be used either at top-level, or
inside a music expression.
\markuplist \table-of-contents
\pageBreak
\tocItem \markup "First score"
\score {
  {
    c'4  % ...
    \tocItem \markup "Some particular point in the first score"
    d'4  % ...
  }
}
\tocItem \markup "Second score"
\score {
  {
    e'4 % ...
  }
}
Markups used for formatting the table of contents are defined in the
\paper block.  There are two ‘pre-defined’ markups already
available;
- 
tocTitleMarkupUsed for formatting the title of the table of contents. tocTitleMarkup = \markup \huge \column { \fill-line { \null "Table of Contents" \null } \null }
- 
tocItemMarkupUsed for formatting the elements within the table of contents. tocItemMarkup = \markup \fill-line { \fromproperty #'toc:text \fromproperty #'toc:page }
Both of these variables can be changed.
Here is an example changing the table of contents’ title into French;
\paper {
  tocTitleMarkup = \markup \huge \column {
    \fill-line { \null "Table des matières" \null }
    \hspace #1
  }
Here is an example changing the font-size of the elements in the table of contents;
tocItemMarkup = \markup \large \fill-line {
  \fromproperty #'toc:text \fromproperty #'toc:page
}
Note how the element text and page numbers are referred to in the
tocItemMarkup definition.
The \tocItemWithDotsMarkup command can be included within the
tocItemMarkup to fill the line, between a table of contents item
and its corresponding page number, with dots;
\header { tagline = ##f }
\paper {
  tocItemMarkup = \tocItemWithDotsMarkup
}
\book {
  \markuplist \table-of-contents
  \tocItem \markup { Allegro }
  \tocItem \markup { Largo }
  \markup \null
}
Custom commands with their own markups can also be defined to build a more complex table of contents. In the following example, a new style is defined for entering act names in a table of contents of an opera;
A new markup variable (called tocActMarkup) is defined in the
\paper block;
\paper {
  tocActMarkup = \markup \large \column {
    \hspace #1
    \fill-line { \null \italic \fromproperty #'toc:text \null }
    \hspace #1
  }
}
A custom music function (tocAct) is then created – which uses
the new tocActMarkup markup definition.
tocAct =
  #(define-music-function (text) (markup?)
     (add-toc-item! 'tocActMarkup text))
A LilyPond input file, using these customer definitions, could look something like this;
Here is an example of the \fill-with-pattern command used within
the context of a table of contents;
\paper {
  tocItemMarkup = \markup { \fill-line {
    \override #'(line-width . 70)
    \fill-with-pattern #1.5 #CENTER . \fromproperty #'toc:text \fromproperty #'toc:page
    }
  }
}
Vegeu també
Installed Files: ‘ly/toc-init.ly’.
Instruccions predefinides
| [ << General input and output ] | [Part superior][Continguts][Índex][ ? ] | [ Spacing issues >> ] | ||
| [ < Reference to page numbers ] | [ Amunt : Titles and headers ] | [ Working with input files > ] | ||
 Altres idiomes: English, deutsch, español, français, italiano, 日本語.
 
 Quant a la selecció automàtica de la llengua.
![[image of music]](../5e/lily-19aec61e.png) 
 ![[image of music]](../ac/lily-d5d58000.png)