14.1 Comment générer une table des matières ?
14.2 Comment générer plusieurs table des matières ?
14.3 Comment ajouter une entrée dans la table des matières ?
14.4 Comment changer le titre de la table des matières ?
14.5 Comment changer la profondeur de la table des matières ?
14.6 Comment gérer des chapitres de préface, d'introduction, et de conclusion non numérotés
?
14.7 Comment enlever la numérotation des pages de tdm ?
* LaTeX propose la commande \tableofcontents à appeler à
l'endroit où l'on veut insérer la table 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 CTAN dans
/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> ou 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:
+ les tables des matières (liste des figures/tables) par partie,
+ par chapitre (classe book et report) et,
+ par section (classe article).
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.
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ù :
1 est l'extension du fichier contenant la table des matières
généralement 1 vaut toc,
2 est un niveau définit dans la table des matières, ce peut être
chapter, section, ... et,
3 est le texte que l'on veut voir apparaître dans la table.
Exemple :
\bibliography{sdf}
\addcontentsline{toc}{chapter}{Bibliographie.}
%%%% fin exemple %%%%
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}.
Les sections sont numérotées si leur profondeur est inférieure à
secnumdepth.
Elles apparaîssent 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 %%%%
* 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 %%%%
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 %%%%