====== Comment générer une table des matières? ======

<latex>\LaTeX</latex> fournit la commande ''\tableofcontents'', qui affiche la table des matières à l'endroit où elle est appelée. À chaque compilation, si la commande ''\tableofcontents'' est présente dans le document, 
  * <latex>\LaTeX</latex> crée un fichier ''.toc'' dans lequel il place tous les renseignements nécessaires (niveau de sectionnement (par exemple un chapitre, une section), numéro, titre, page) ;
  * le fichier ''.toc'' est par la suite inclus à l'endroit où est appelée la commande ''\tableofcontents''. 

En général, il est donc nécessaire de faire trois compilations pour avoir une table des matières à jour : 
  * la première créera le fichier ''.toc'' ;
  * la seconde l'inclura, et modifiera donc probablement les numéros de page selon la taille de cette table des matières dans le document. Un nouveau fichier ''.toc'' sera généré ;
  * la troisième inclura ce nouveau fichier avec les bons numéros de page.

Voici un exemple simple pour un utilisateur francophone : 
<WRAP column 45ex>
<code latex>
\documentclass{article}
\usepackage[french]{babel}
\usepackage[T1]{fontenc}
\begin{document}
\tableofcontents
\bigskip
Voici de grandes questions !
\section{Qui suis-je ?}
Bonne question.
\section{Où vais-je ?}
Décidément, très bonne question.
\subsection{Dans quel état j'erre ?}
Euh...
\end{document}
</code>
</WRAP>

<WRAP column 45ex>
<latexdoc>
\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[body={8cm,20cm}]{geometry}
\usepackage[french]{babel}
\pagestyle{empty}
\begin{document}
\tableofcontents
\contentsline {section}{\numberline {1}Qui suis-je ?}{1}%
\contentsline {section}{\numberline {2}Où vais-je ?}{1}%
\contentsline {subsection}{\numberline {2.1}Dans quel état j'erre ?}{1}%
\bigskip
Voici de grandes questions !
\section{Qui suis-je ?}
Bonne question.
\section{Où vais-je ?}
Décidément, très bonne question.
\subsection{Dans quel état j'erre ?}
Euh...
\end{document}
</latexdoc>
</WRAP>
<WRAP clear />

Cet exemple appelle deux commentaires :
  * la présence de l'extension [[ctanpkg>babel]] avec l'option ''french'' permettant de franciser le titre de la table des matières qui est, sinon, « Contents ». La question « [[https://www.latex-fr.net/3_composition/annexes/tables/changer_le_titre_de_la_table_des_matieres|Comment changer le titre de la table des matières ?]] » propose une autre solution plus flexible ;
  * la présence d'une commande d'espacement, ici ''\bigskip''. Sans cela le texte qui suit la table des matières serait accolée à cette dernière. Il s'agit là d'un conseil qui n'a, bien entendu, rien d'impératif.

Voici d'ailleurs le contenu du fichier ''.toc'' de cet exemple (hors une ligne qu'ajoute l'extension [[ctanpkg>babel]]) pour montrer ce que <latex>\LaTeX</latex> génère automatiquement :

<code latex>
\contentsline {section}{\numberline {1}Qui suis-je ?}{1}%
\contentsline {section}{\numberline {2}Où vais-je ?}{1}%
\contentsline {subsection}{\numberline {2.1}Dans quel état j'erre ?}{1}%
</code>


{{htmlmetatags>metatag-keywords=(LaTeX,tables des matières,table des matières)
metatag-og:title=(Comment générer une table des matières)
metatag-og:site_name=(FAQ LaTeX francophone)
}}