La commande \addcontentsline{toc}{section}{nom de la section}
permet d'insérer des entrées dans la table des matières. Dans cette commande :
toc
), de la liste des figures (lof
), de la liste des tableaux (lot
) ;part
, chapter
, section
, subsection
, subsubsection
. Il peut valoir aussi figure
ou table
pour les listes de figures ou les listes de tableaux ;
Dans la pratique, cette commande est souvent utilisée pour insérer des titres de sectionnement lors de l'utilisation de commandes de sectionnement étoilées comme \section*
. En effet, ces commandes empêchent la numérotation du titre et ne génèrent pas d'entrée en table des matière. Voici un exemple de ce correctif :
\section*{Un titre non numéroté} \addtontentsline{toc}{section}{Un titre non numéroté}
Toutefois, il faut faire attention au numéro de page obtenu en table des matières (un correctif revenant alors à placer la commande \addcontentsline
après la commande \section*
si la section est mal référencée.) La question « Comment obtenir des titres de sectionnement non numérotés en table des matières ? » donne une solution bien plus robuste.
Les classes standards de (et bien d'autres) utilisent \section*
ou \chapter*
pour mettre en forme des parties auto-générées du document (les tables des matières, les listes de figures et de tableaux, la bibliographie et l'index). Comme vu ci-dessus, ces éléments ne sont donc pas numérotés (ce qui ne dérange pas la plupart des gens) mais n'apparaissent pas dans la table des matières.
Supposons que notre document soit basé sur des chapitres (classe report ou book, par exemple), la solution suivante pourrait être envisagée :
\bibliography{mabiblio} \addcontentsline{toc}{chapter}{Bibliographie}
Cependant, si la bibliographie s'étale sur plus d'une page, la numérotation en table des matières sera fausse (en référençant la dernière page de la bibliographie). Mettre la commande \addcontentsline
avant la commande \bibliography
ne résout pas pour autant le problème puisque la commande serait effectuée \emph{avant} la commande \bibliography
, donc avant le début du nouveau chapitre et, par conséquent, peut-être pas sur la bonne page. Pour corriger cela, il convient d'utiliser la suite de commande suivante :
\cleardoublepage \addcontentsline{toc}{chapter}{Bibliographie} \bibliography{mabiblio}
Notez que \cleardoublepage
fait ce qu'il faut, à savoir faire un saut de page permettant d'accéder à une page de début de chapitre, même si votre document n'est pas en mode recto-verso (dans ce cas, c'est un simple synonyme de \clearpage
). Toutefois, s'assurer que l'entrée fait référence au bon endroit reste délicat dans le cas d'une classe basée sur la commande \section
.
Si vous utilisez conjointement l'extension hyperref (gérant des liens hypertextes dans le document), un léger ajustement est nécessaire :
\cleardoublepage \phantomsection \addcontentsline{toc}{chapter}{Bibliographie} \bibliography{mabiblio}
La commande supplémentaire, \phantomsection
, donne à hyperref un point à référencer lors de la création du lien.
La solution courante consiste à utiliser l'extension tocbibind qui fournit de nombreuses fonctionnalités pour contrôler la manière dont ces entrées apparaissent dans la table des matières.
Les classes KOMA-script fournissent cette fonctionnalité sous la forme d'un ensemble d'options de classe (par exemple, bibtotoc
pour ajouter la bibliographie à la table des matières).