Previous Contents Next

Chapter 14   Table des matières

Tout savoir pour donner un plan complet de son document.

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

LATEX propose la commande \tableofcontents à appeler à l'endroit où l'on veut insérer la table des matières.

14.2   Comment générer plusieurs tables des matières ?

Le package 'french' propose la commande sommaire[n] qui permet d'inclure une table des matière de niveau de profondeur n.

Remarque :
dans ce cas \tableofcontents reste utilisable.
Le package 'shorttoc' ci-dessous, de J.P. Drucbert, définit la commande \shorttableofcontents{TITRE}{NIVEAU}.

Remarque :
dans ce cas \tableofcontents reste également utilisable.
%%%% debut macro %%%% 
%shorttoc.sty 
\ProvidesPackage{shorttoc}% 
[1995/01/04 v1.0 Short table of contents package (JPFD)] 
\def\@startshorttoc#1{\bgroup 
  
\makeatletter 
  
\@input{\jobname.#1}% 
  
\global\@nobreakfalse \egroup} 
  
\def\shorttableofcontents#1#2{\bgroup\c@tocdepth=#2\@restonecolfalse 
  
\if@twocolumn\@restonecoltrue\onecolumn\fi 
  
\@ifundefined{chapter}% 
  {
\section*{{#1} 
        
\@mkboth{\uppercase{#1}}{\uppercase{#1}}}}% 
  {
\chapter*{{#1} 
        
\@mkboth{\uppercase{#1}}{\uppercase{#1}}}}% 
  
\@startshorttoc{toc}\if@restonecol\twocolumn\fi\egroup} 
%%%% fin macro %%%%
Le package 'minitoc', disponible sur ftp://ftp.fdn.org/pub/CTAN/macros/latex/contrib/supported/minitoc/, permet de construire une minitable des matières au début de chaque chapitre sous les classes 'book' et 'report'. Pour l'utiliser, il faut appeler les commandes \dominitoc avant la commande \tableofcontents habituelle. La commande \faketableofcontents permet de ne garder que les tables des matières locales et remplace alors la commande \tableofcontents. La commande \minitoc doit être appelée après chaque commande de début de chapitre \chapter dans lequel on veut inclure une table locale. A chaque appel de minitoc correspond un fichier .mtc<n> où n est le numéro du chapitre.

Le compteur minitocdepth permet de fixer la profondeur des tables des matières désirées.

Exemple :
 
\documentclass{report} 
\usepackage{minitoc} 
\usepackage{french} 
\setcounter{minitocdepth}{1} 
\begin{document}

 

\dominitoc 
\tableofcontents

 

\chapter{Introduction.} 
\minitoc

 

\section{Quelques rappels.} 
   Texte.

 

   
\subsection{La gravité.}

 

      Texte sur la gravité.

 

   
\subsection{Loi de Newton.}

 

      Deux corps s'attirent en raison inverse du carré 
      de leur distance et proportionnellement à leur 
      masse.

 

\section{Nouveaux théorèmes.}

 

   Encore des résultats.

 

\section{Approfondissement.}

 

   Toujours plus loin.

 

pour ne faire apparaître que les titres de sections. 
\end{document} 
%%%% fin exemple %%%%
Le bon fonctionnement des numérotations peut nécessiter jusqu'à trois compilations enchaînées.

ATTENTION :
minitoc sait faire:
Par contre, il ne fait pas les tables des matières par section (et en dessous) pour les classes book et report, ni les tables des matières par sous-section (et en dessous) pour la classe article.

14.3   Comment ajouter une entrée dans la table des matières ?

Pour ajouter un titre de paragraphe qui n'apparaît pas par défaut dans la table des matières, il faut utiliser la commande \addcontentsline{1}{2}{3} où :

Exemple :
 
\bibliography{sdf} 
\addcontentsline{toc}{chapter}{Bibliographie.} 
%%%% fin exemple %%%%

14.4   Comment changer le titre de la table des matières ?

On peut utiliser la commande :

\renewcommand{\contentsname}{Contenu du document.}
Remarque :
suivant les packages utilisés, il faut placer cette définition avant ou après le \begin{document}.

14.5   Comment changer la profondeur de la table des matières ?

Les sections sont numérotées si leur profondeur est inférieure à secnumdepth.

Elles apparaissent dans la table des matières si leur profondeur est inférieure à tocdepth.

Il suffit de changer les valeurs de ces deux compteurs. Il peut alors être nécessaire d'enchaîner deux compilations LATEX.

Exemple :
 
\documentclass[a4paper]{article} 
\usepackage{french} 
\pagestyle{empty} 
% Profondeur de 
\subsubsection = 3 
\setcounter{tocdepth}{3}     % Dans la table des matieres 
\setcounter{secnumdepth}{3}  % Avec un numero.

 

\begin{document} 
\tableofcontents 
\vspace{.5cm} 
\hrule

 

\part{Aaa.} 
\section{aaa.} 
   
\subsection{bbb.} 
      
\subsubsection{ccc.} 
\end{document} 
%%%% fin exemple %%%%

14.6   Comment gérer des chapitres de préface, d'introduction, et de conclusion non numérotés ?

La classe book définit les commandes \frontmatter, \mainmatter et \backmatter qui permettent de faire cela.

Exemple :
 
\documentclass[a4paper,12pt,openany]{book} 
\usepackage{french} 
\def\TEXTE{Bla bla bla...} 
\begin{document} 
\frontmatter 
%
\begin{abstract}  Bla, bla... \end{abstract} 
\chapter{Préface} \TEXTE 
\chapter{Introduction} \TEXTE 
\mainmatter 
\chapter{Début} \TEXTE 
\chapter{Suite} \TEXTE 
\chapter{Fin}  \TEXTE 
\appendix 
\chapter{Résultats élémentaires} 
\chapter{Résultats compliqués} 
\backmatter 
\chapter{Conclusion}  \TEXTE 
\tableofcontents 
\end{document} 
%%%% fin exemple %%%%
L'autre solution consiste à définir ses propres commandes \introduction, \preface, etc, à partir des définitions de \chapter sans prendre en compte la numérotation.

On peut également utiliser les commandes étoilées et gérer soit même la table des matières et éventuellement les en-têtes et bas de page.

Exemple :
 
\chapter*{Intro} 
\addcontentsline{toc}{chapter}{Intro...} 
%%%% fin exemple %%%%

14.7   Comment enlever le numérotation des pages de tdm ?

Il suffit d'inclure les lignes suivantes dans le préambule du document :

%%%% debut macro %%%% 
\makeatletter 
\def\addcontentsline@toc#1#2#3{% 
   
\addtocontents{#1}{\protect\thispagestyle{empty}}% 
   
\addtocontents{#1}{\protect\contentsline{#2}{#3}{\thepage}}} 
\def\addcontentsline#1#2#3{% 
  
\expandafter\@ifundefined{addcontentsline@#1}% 
  {
\addtocontents{#1}{\protect\contentsline{#2}{#3}{\thepage}}} 
  {
\csname addcontentsline@#1\endcsname{#1}{#2}{#3}}} 
\makeatother 
%%%% fin macro %%%%

Previous Contents Next