Parties pré/postliminaires

Table des matières etc.
Synopsis, l’un parmi ceux qui suivent :

\tableofcontents
\listoffigures
\listoftables

Produit une table des matières, ou une liste des figures, ou une liste des tableaux. Placez la commande à l’endroit même où vous voulez que la table ou liste apparaisse. Vous n’avez pas à la renseigner ; par exemple, typiquement les entrées de la table des matières sont automatiquement générées à partir des commandes de rubricage \chapter, etc.
L’exemple ci-dessous illustre la première commande, \tableofcontents. LaTeX produit une table des matières sur la première page du livre.

\documentclass{book}
% \setcounter{tocdepth}{1}
\begin{document}
\tableofcontents\newpage
  ...
\chapter{...}
  ...
\section{...}
  ...
\subsection{...}
  ...
\end{document}

En décommentant la deuxième ligne on peut limiter la table à ne lister que les rubriques issues de \chapter et \section, mais pas celle issue de \subsection, parce que la commande \section a pour niveau 1. Voir Sectioning, pour les numéros de niveaux des rubriques. Pour plus ample information sur tocdepth voir Sectioning/tocdepth.
Un autre exemple de l’utilisation de \tableofcontents est dans Larger book template.
Si vous désirez un saut de page après la table des matières, insérez une commande \newpage après la commande \tableofcontents, comme ci-dessus.
Pour fabriquer la table des matières, LaTeX stocke l’information dans un fichier auxiliaire nommé fichier-racine.toc (voir Splitting the input). Par exemple, le fichier LaTeX test.tex ci-dessous :

\documentclass{article}
\begin{document}
\tableofcontents\newpage
\section{Premièrement}
\subsection{Deuxièmement}
  ...

écrit la ligne suivante dans test.toc :

\contentsline {section}{\numberline {1}Premièrement}{2}
\contentsline {subsection}{\numberline {1.1}Deuxièmement}{2}

L’indication section ou subsection donne le type de rubrique. Le crochet \numberline vous permet de changer la façon dont l’information apparaît au sein de la table des matières. Son unique argument, 1 ou 1.1, est le numéro de la rubrique alors que le reste du deuxième argument de \contentsline, Premièrement ou Deuxièmement, est le titre. Finalement, le troisième argument, 2, est le numéro de la page à laquelle les rubriques débutent.
Une conséquence de cette stratégie de stockage de fichier auxiliaire est que pour obtenir correctement la page de table des matières vous devez exécuter LaTeX deux fois, une fois pour stocker l’information et une fois pour l’obtenir. En particulier, la première fois que vous exécutez LaTeX sur un nouveau document, la page de table des matières est vide hormis le titre ‘Table des matières’. Il suffit de l’exécuter de nouveau.
Les commandes \listoffigures et \listoftables produisent une liste des figures et une liste des tables. Elles fonctionnent de la même façon que les commandes pour la table des matières ; notamment elles fonctionnent avec l’information stockée dans des fichiers .lof et .lot.
Pour modifier le titre de la page de table des matières, inspirez vous la la première ligne de l’exemple suivant :

\renewcommand{\contentsname}{Table des matières}
\renewcommand{\listfigurename}{Tracé de courbes}
\renewcommand{\listtablename}{Tableaux}

De même, les deux autres lignes s’occupent des deux autres. Des paquetages d’internationalisation tels que babel ou polyglossia modifient les titres en fonction de la langue de base sélectionnée.
Le CTAN a beaucoup de paquetages traitant de la table des matières et des listes de figures et de tableaux. L’un d’eux bien commode pour ajuster certains aspects du traitement par défaut, tels que l’espacement, est tocloft. Et tocbibbind permet d’ajouter automatiquement la bibliographie, les indexes, etc. à la table des matières.

\@dottedtocline
Synopsis :

\@dottedtocline{numnivrubrique}{renfoncement}{largeurnum}{texte}{numpage}

Utilisée en interne par LaTeX pour formater une ligne d’article dans la table des matières, table des figures ou table des tableaux. Les auteurs ne saisissent pas directement des commandes \@dottedtocline.
Cette commande est typiquement utilisée par \l@section, \l@subsection, etc., pour formater le contenu de ces tables. Par exemple, le fichier article.cls contient ces définitions :

\newcommand*\l@section{\@dottedtocline{1}{1.5em}{2.3em}}
\newcommand*\l@subsection{\@dottedtocline{2}{3.8em}{3.2em}}
\newcommand*\l@subsubsection{\@dottedtocline{3}{7.0em}{4.1em}}

Dans cet exemple, on dirait \@dottedcline ne prend que trois argument. Mais en remontant le code on s’aperçoit qu’elle prend également les deux arguments finaux texte et numéro-page du synopsis d’appel de \contentsline (voir \contentsline).
Entre la boîte du texte de titre de rubrique et la marge de droite, ces commandes \@dottedtocline insèrent des points de suite, c.-à-d. une ligne en pointillés uniformément espacés. L’espace inter-point est donné par la commande \@dotsep. Par défaut c’est 4.5 (exprimé en unités de longueur mathématique, ou mu, soit 1/18em. On peut le modifier avec \renewcommand, comme dans \renewcommand{\@dotsep}{3.5}.
Dans la classe standarde book, LaTeX n’utilise pas de points de suite pour articles de la table correspondant aux rubriques de niveau \part ou \chapter, et dans la classe article, il n’en utilise pas pour les articles de niveau \section.

\addcontentsline
Synopsis :

\addcontentsline{ext}{unit}{texte}

Ajoute un article dans le fichier auxiliaire dont l’extension de nom est ext.
L’exemple suivant a pour effet d’ajouter une ligne ‘Appendices’ à la table des matières :

\addcontentsline{toc}{section}{\protect\textbf{Appendices}}

elle apparaîtra au même niveau de renfoncement que les rubriques, sera en caractères gras, et recevra le numéro de page correspondant au point où la commande apparaît dans le fichier d’entrée.
La commande \addcontentsline écrit de l’information dans le fichier nom-racine.ext, où nom-racine est le nom du fichier racine (voir Splitting the input). Il écrit cette information comme le texte de la commande \contentsline{unit}{texte}{numéro}, où numéro est la valeur courante du compteur unit (voir \contentsline). Le cas le plus fréquent est la table des matières et dans ce cas numéro est la valeur du compteur unit dans la première page produite où la commande \addcontentsline correspondante fut utilisée.
Cette commande est invoquées par les commandes de rubricage \chapter, etc. (voir Sectioning), et aussi par \caption au sein d’un environnement flottant (voir Floats). Mais elle est aussi directement utilisées par des auteurs. Par exemple, un auteur écrivant un livre dont le style est d’avoir une préface non numérotée pourrait utiliser \chapter*. Mais cette commande ne produit pas d’article dans la table des matières, on peut alors l’entrer manuellement ainsi :

\chapter*{Preface}
\addcontentsline{toc}{chapter}{\protect\numberline{}Préface}

Dans le fichier nom-racine.toc LaTeX insère alors la ligne \contentsline {chapter}{\numberline {}Préface}{3} ; notez que le numéro de page ‘3’ est généré automatiquement par le système, et non saisi manuellement.
Tous les arguments de \addcontentsline sont obligatoires.
ext 	Typiquement c’est l’une des trois chaînes suivantes : toc pour la table des matières (« table of contents » en langue anglaise), lof pour la liste des figures (« list of figures »), ou lot pour la liste des tableaux (« list of tables »). L’extension de nom de fichier du fichier dans lequel l’information doit être écrite.
unit 	Une chaîne dépendant de la valeur de l’argument ext, typiquement l’une des suivantes :
toc 	Pour la table des matières, c’est le nom d’une unité sectionnelle : part, chapter, section, subsection, subsubsection, etc.
lof 	Pour la liste des figures : figure.
lot 	Pour la liste des tableaux : table.
texte 	Le texte de l’entrée. On doit précéder de \protect toute commande fragile (voir \protect) y figurant.
La commande \addcontentsline a une interaction avec \include (voir \include & \includeonly). Si vous les utilisez au même niveau comme dans \addcontentsline{...}{...}{...}\include{...}, alors les lignes dans la table des matières risquent de sortir dans un ordre erroné. La solution est de déplacer \addcontentsline dans le fichier qu’on inclut.
Si vous utiliser une unit que LaTeX ne reconnaît pas, comme la coquille dans l’exemple suivant

\addcontentsline{toc}{setcion}{\protect\textbf{Appendices}}

alors vous n’obtiendrez pas une erreur mais le formatage de la table des matières sera incohérent.

\addtocontents
Synopsis :

\addtocontents{ext}{texte}

Ajoute texte, qui peut être du texte ou des commandes de formatage, directement au fichier auxiliaire dont le nom a l’extension .ext. Cela est utilisé d’ordinaire pour la table des matières, mais aussi pour la liste des figures ou celle des tableaux.
L’exemple suivant place un peu d’espace vertical dans la table des matières après l’en-tête ‘Table des matières’ :

\tableofcontents\newpage
\addtocontents{toc}{\protect\vspace*{3ex}}

L’exemple suivant place le mot ‘page’, en caractères gras, au dessus de la colonne des numéros de page après l’en-tête.

\tableofcontents
\addtocontents{toc}{~\hfill\textbf{page}\par}
\chapter{...}

L’exemple ci-dessous ajoute une ligne annonçant l’œuvre d’un nouvel auteur :

\addtocontents{toc}{%
  \protect\vspace{2ex}
  \textbf{Chapitres de N. Autre Auteur}\par}

La différence entre \addtocontents et \addcontentsline est que cette dernière commande est strictement réservée aux lignes, comme le cas d’une ligne donnant le numéro de page pour le début d’un nouveau sous-ensemble des chapitres. Comme les exemples ci-dessus le démontrent, \addtocontents permet de la matière telle que de l’espacement.
La commande \addtocontents a deux arguments, tous deux obligatoires.
ext 	Typiquement l’un parmi : toc pour la table des matières, lof por la liste des figures, ou lot pour la liste des tableaux. L’extension de nom de fichier du fichier dans lequel l’information est à écrire.
texte 	Le texte, et possiblement les commandes, à écrire.
Les commandes de rubricage telles que \chapter utilisent la commande \addcontentsline pour stocker l’information. Cette commande crée des lignes dans le fichier auxiliaire en .toc qui contient les commandes \contentsline (voir \addcontentsline). Contrairement à elle, la commande \addtocontents place directement la matière dans ce fichier.
La commande \addtocontents interagit avec \include (voir \include & \includeonly). Si vous les utilisez au même niveau, comme dans \addtocontents{...}{...}\include{...} alors les lignes de la table des matières risquent de sortir dans le mauvais ordre. La solution est de déplacer \addtocontents pour la mettre dans le fichier à inclure.

\contentsline
Synopsis :

\contentsline{unit}{texte}{numéro-page}

Utilisé en interne par LaTeX pour composer un article dans une table des matières, table des figures, ou table des tableaux (voir Table of contents etc.). Les auteurs ne saisissent pas directement les commandes \contentsline.
En général l’ajout de matière à ces tables est fait automatiquement par les commandes \chapter, \section, etc. pour la table des matières, ou par la commande \caption au sein d’un environnement \figure ou \table (voir figure et voir table). Ainsi, en supposant que le fichier racine est these.tex, et qu’il contient la déclaration \tableofcontents, la commande \chapter{Chapitre premier} produit quelque chose de ce genre dans le fichier these.toc :

\contentsline {chapter}{\numberline {1}Chapitre premier}{3}

Si le fichier contient la déclaration \listoffigures alors un environnement figure comprenant \caption{Essai} produira quelque chose de ce genre dans these.lof.

\contentsline {figure}{\numberline {1.1}{\ignorespaces Essai}}{6}

x Pour ajouter manuellement de la matière, utilisez \addcontentsline{typefic}{unit}{\texte}, où typefic est toc, lof, ou lot (voir \addcontentsline).
Pour manipuler la façon dont la matière de la commande \contentline est composé, voir le paquetage tocloft.
Notez que le paquetage hyperref change la définition de \contentsline (et de \addcontentsline) pour ajouter plus d’arguments, fabriquer des hyperliens. C’est la source de l’erreur Argument of \contentsline has an extra } quand on ajoute/supprime l’utilisation d’hyperref et qu’une compilation a déjà été faite. Pour réparer cette erreur, détruisez les fichiers .toc, .lof ou .lot, et exécutez de nouveau LaTeX.

\nofiles
Synopsis :

\nofiles

Empêche LaTeX d’écrire quelque fichier auxiliaire que ce soit. Les seules sorties seront les fichiers .log et .pdf (ou .dvi). Cette commande ne peut être placée que dans le préambule.
À cause de la commande \nofiles dans cet exemple aucun fichier .toc n’est produit.

\documentclass{book}
\nofiles
\begin{document}
\tableofcontents\newpage
\chapter{...}
  ...

LaTeX n’efface pas les fichiers auxiliaires existants, de sorte que si vous insérer la commande \nofiles après avoir compilé le fichier et obtenu un fichier .toc alors la page de table des matières contiendra l’ancienne information.

\numberline
Synopsis :

\numberline{\numéro}

Compose son argument fer à gauche dans une boîte. Cela est utilisé au sein d’une commande \contentsline pour composer les numéros de rubrique (voir \contentsline).
Par exemple, cette ligne dans un fichier .toc a pour effet que le 1.1 est composé fer à gauche :

\contentsline {subsection}{\numberline {1.1}Motivation}{2}

Par défaut, LaTeX compose tout numéro de rubrique au sein d’une boîte de longueur \@tempdima. Cette longueur est réglée par les commandes \l@section, \l@subsection, etc. Pour Mettre les numéros de rubrique dans des boîtes de longueur naturelle utiliser le code \renewcommand{\numberline}[1]{#1~} avant \tableofcontents.
Cette commande est fragile, aussi vous pourriez avoir besoin de la précéder d’un \protect (voir \protect). Un exemple est l’utilisation de \protect dans la commande suivante :

\addcontentsline{toc}{section}{\protect\numberline {}Sommaire}

de sorte à obtenir le \numberline dans la commande \contentsline dans le fichier .toc ainsi : \contentsline {section}{\numberline {}Sommaire}{6} (le numéro de page ‘6’ est ajouté automatiquement par LaTeX ; voir \addcontentsline).

Glossaires
La commande \makeglossary active la création des glossaires.
La commande \glossary{texte} écrit un article de glossaire pour texte dans un fichier auxiliaire nommé avec l’extension .glo.
Plus précisément, ce qui est écrit est la commande \glossaryentry{texte}{numpage}, où numpage est la valeur courante de \thepage.
Le paquetage glossary disponible sur le CTAN fournit une prise en charge de glossaires plus élaborée.

Index
Si vous dites à LaTeX les termes que vous voulez voir apparaître dans un index, alors il peut produire cet index, classé alphabétiquement et en maintenant automatiquement les numéros de page. Ce qui suit illustre les bases.

\documentclass{article}
\usepackage{makeidx}    % Fournit les commandes d'indexation
  \makeindex
% \usepackage{showidx}  % Affiche les notes en marge des articles
                        % de l'index
  ...
\begin{document}
  ...
Le théorème de Wilson\index{Théorème de Wilson} dit qu'un nombre $n>1$
est premier si et seulement si la factorielle de $n-1$ est congurente à
$-1$ modulo~$n$.\index{congruence!et théorème de Wilson}
  ...
\printindex
\end{document}

Comme illustré ci-dessus, on déclare des articles d’index avec la commande \index (voir \index). Quand vous exécutez LaTeX, le \index inscrit son information, telle que ‘Théorème de Wilson’, et le numéro de page, dans un fichier auxiliaire dont le nom finit en .idx. Ensuite, pour classer par ordre alphabétique, et pour d’autre manipulations, on exécute un program externe, typiquement makeindex (voir makeindex), ce qui écrit un fichier dont le nom finit en .ind. Finalement, \printindex ramène cette information manipulée dans la sortie (voir \printindex).
Ainsi, si le code de l’exemple plus haut est dans le fichier numth.tex alors exécuter ‘pdflatex numth’ sauvegarde l’information de l’article d’index et son numéro de page dans numth.idx. Et ensuite exécuter ‘makeindex numth’ classe par ordre alphabétique et sauvegarde les résultats dans numth.ind. Finalement, exécuter de nouveau ‘pdflatex numth’ affiche l’index désiré, à l’endroit où la commande \printindex est dans le code source.
Il, y a beaucoup d’options pour contrôler la sortie. Un exemple est que le point d’exclamation dans \index{congruence!et théorème de Wilson} produit un article principal pour ‘congruence’ avec un sous-article pour ‘et théorème de Wilson’. Pour plus d’information, voir makeindex.
Les commandes \makeindex et \printindex sont indépendantes. Ne pas mettre le \makeindex arrête que LaTeX sauvegarde les articles d’index dans le fichier auxiliaire. Ne pas mettre le \printindex a pour effet que LaTeX n’affiche pas l’index dans la sortie.
Nombre de paquetages existent concernant l’indexation. Le paquetage showidx a pour effet que chaque article d’index est affiché dans la marge sur la page où le \index apparaît. Ceci peut être utile pour préparer l’index. Le paquetage multind, avec d’autres, prend en charge les indexes multiples. Voir aussi l’article de la FAQ TeX sur ce sujet, https://www.texfaq.org/FAQ-multind, et le sujet CTAN, https://ctan.org/topic/index-multi.

Produire l’index manuellement
Les documents qui sont brefs et statiques peuvent avoir un index produit manuellement. L’exemple ci-dessous produit une page séparée intitulée ‘Index’, en format à deux-colonnes.

\begin{theindex}
\item acorn squash, 1
\subitem maple baked, 2
\indexspace
\item bacon, 3
\subitem maple baked, 4
\end{theindex}

Notez que l’auteur doit saisir les numéros de page, ce qui est rébarbatif et résulte en des numéros inexacts si le document change. C’est pourquoi dans la plupart des cas des méthodes automatisées telles que makeindex sont préférables. Voir Indexes.
Toutefois nous couvrons ces commandes pour être exhaustif, et parce que les méthodes automatisées sont basées sur elles. Comme l’exemple l’illustre, un article principal utilise \item, un sous-article \subitem, et le niveau le plus bas utilise \subsubitem. Les lignes à blanc entre les articles sont sans effet. L’exemple ci-dessus inclut \indexspace pour produire un espace vertical dans la sortie que certains styles utilisent avant le premier article commençant avec une nouvelle lettre.

\index
Synopsis :

\index{chaîne-article-index}

Déclare un article dans l’index. Cette commande est fragile (voir \protect).
Par exemple, comme décrit dans Indexes, une façon d’obtenir un index du code ci-dessous est de compiler le document avec pdflatex test, puis de traiter les articles de l’index avec makeindex test, et ensuite de compiler de nouveau avec pdflatex test.

% fichier test.tex
  ...
W~Ackermann (1896--1962).\index{Ackermann}
  ...
fonction d'Ackermann\index{Ackermann!fonction}
  ...
taux de croissance\index{Ackermann!fonction!taux de croissance}

Les trois articles obtiendront un numéro de page, comme dans ‘Ackermann, 22’. LaTeX formate le deuxième comme un sous-article du premier, sur la ligne du dessous et renfoncé, et le troisième comme un sous-article du deuxième. On ne peut pas imbriquer les articles au delà du troisième niveau de sous-articles. (Si vous ajoutez \index{Ackermann!fonction!taux de croissance!comparaison} alors makeindex dit ‘Scanning input file test.idx....done (4 entries accepted, 1 rejected)’ et le quatrième niveau est silencieusement absent de l’index).
Si vous saisissez un deuxième \index avec la même chaîne-article-index alors vous obtiendrez un unique article d’index avec deux numéros de page (à moins qu’il se trouve que les deux soient sur la même page). Ainsi, ajouter comme pour Ackermann.\index{Ackermann} plus loin dans le même document que ci-dessus donnera un article d’index du genre de ‘Ackermann, 22, 151’. Notez aussi que vous pouvez saisir les articles d’index dans un ordre quelconque, ainsi par exemple \index{Ackermann!fonction} peut arriver avant \index{Ackermann}.
Obtenez une plage de page en sortie, du genre de ‘Hilbert, 23--27’, comme avec le code ci-dessous :

W~Ackermann (1896--1962).\index{Ackermann}
  ...
D~Hilbert (1862--1943)\index{Ackermann!Hilbert|(}
  ...
désapprouvait son mariage.\index{Ackermann!Hilbert|)}

Si le début et la fin de la plage de pages sont égaux alors le système ne donne qu’un seul numéro de page, et non une plage.
Si vous indexez des sous-articles mais sans article principal, comme dans \index{Jones!programme} et \index{Jones!résultats}, alors la sortie est l’article ‘Jones’ sans virgule ni numéro de page, suivi de deux sous-articles, du genre de ‘programme, 50’ et ‘résultats, 51’.
On génère un article d’index qui dit ‘Voir’ en utilisant un caractère barre verticale : \index{Ackermann!function|see{fonction de P\'eter}}. On peut également obtenir ‘voir aussi’ avec seealso. (Le texte ‘voir’ est défini par \seename, et ‘voir ausi’ par \alsoname lorsqu’on charge un paquetage d’internationalisation tel que babel or polyglossia, et que la langue sélectionnée est le français, sinon par défaut c’est ‘see’ et ‘see also’, on peut aussi les redéfinir directement avec quelque chose du genre de \renewcommand{\seename}{cf.} \renewcommand{\alsoname}{ibid.}).
La production du mot ‘voir’ fait partie d’une fonctionnalité plus générale. Après la barre verticale vous pouvez mettre le nom cmd d’une commande \cmd à un argument, comme dans \index{group|textit} (notez l’absence de controblique sur la commande \textit) et le système appliquera cette commande au numéro de page dans l’article d’index, donnant ici quelque chose du genre de \textit{7}. Vous pouvez aussi définir vos propres commandes comme dans \newcommand{\pagecours}[1]{{\color{blue}#1}} et ensuite \index{Ackermann!function|pagecours} donnera un numéro de page en bleu (voir Color). Voici in autre exemple, moins pratique :

\newcommand\pageindex[1]{#1, \thepage}
  ... Epimenides.\index{self-reference|pageindex}

qui crée une article citant le numéro de page dans le listing de l’index.
Les deux fonctions décrites plus haut peuvent être combinées, comme dans :

\index{Ackermann!fonction|(pagecours}
  ...
\index{Ackermann!fonction|)}

ce qui en sortie produit un article d’index du genre de ‘fonction, 23--27’ où la plage de numéros de page est en bleu.
Considérez un article d’index tel que ‘β-testeur’. Le saisir telle que $\beta$-testeur aura pour effet qu’il sera classé selon le signe dollar. Vous pouvez le saisir en utilisant une arobe, comme dans \index{bêta-testeur@$\beta$-testeur}. Lorsque vous spécifiez un article avec une arobe qui sépare deux chaînes, pos@texte, alors pos donne la position alphabétique de l’article alors que texte produit le texte de l’article. Un autre exemple est que \index{Saint Michael's College@SMC} produit un article d’index ‘SMC’ classé dans un autre endroit que son épellation donnerait naturellement.
Pour mettre le caractère !, @, | ou " dans un article d’index, échappez le en le précédant d’un guillemet anglais double, ". (Le guillemet double est ignoré pour le classement alphabétique).
Nombre de paquetages sur le CTAN apportent des fonctionnalités supplémentaires allant au-delà de celles fournies par makeidx. L’un deux est index qui permet d’avoir des index multiples et contient une commande \index*{index-entry-string} qui imprime la chaîne-article-index en plus de l’indexer.
La commande \index écrit l’information d’indexation dans le fichier nom-racine.idx. Plus spécifiquement, elle écrit le texte de la commande \indexentry{chaîne-article-index}{num-page}, où num-page est la valeur du compteur \thepage. Il peut arriver, lorsque la commande \printindex perd les pédales, que vous ayez à détruire ce fichier pour repartir de bases saines.
Si vous oubliez l’accolade fermante sur une commande \index alors vous obtiendrez un message du genre de :

Runaway argument?  {Ackermann!function
!  Paragraph ended before \@wrindex was complete.

makeindex
Synopsis, l’un parmi :

makeindex nomfic
makeindex -s fichier-style nomfic
makeindex options nomfic0 ...

Trie l’information d’index dans le fichier auxiliaire, et fait d’autres traitements dessus. C’est un programme en ligne de commande. Il prend en entrée un ou plusieurs fichiers bruts d’index, les fichiers nomfic.idx, et produit en sortie le ficher d’index fini, le fichier nomfic.ind qui est l’entrée de \printindex (voir \printindex).
La première forme de la commande suffit pour beaucoup d’usages. La deuxième permet de formater l’index en utilisant un fichier de style d’index, un fichier .isty. La troisième forme est la plus générale ; voir la documentation complète sur le CTAN.
Ci-dessous on donne un exemple d’un fichier .isty simple :

% book.isty 
%   $ makeindex -s book.isty -p odd book.idx
% creates the index as book.ind, starting on an odd page. 
preamble
"\\pagestyle{empty}
\\small
\\begin{theindex}
\\thispagestyle{empty}"

postamble
"\n
\\end{theindex}"

La présente description ne couvre que certaines des possibilités du fichier-style. Pour une liste complète voir la documentation sur le CTAN.
Un fichier de style consiste en une liste de couples : spécificateur et attribut. Ils peuvent apparaître dans le fichier dans un ordre quelconque. Tous les attributs sont des chaînes, sauf mention du contraire. Les chaînes sont entourées de guillemets anglais doubles, ", et la longueur maximale d’une chaîne est de 144 caractères. Le \n représente un saut de ligne et le \t une tabulation. Les controbliques sont échappées avec une autre controblique, comme cela : \\. Si une ligne commence avec un signe pourcent, %, alors c’est un commentaire.
preamble 	Préambule du fichier d’index de sortie. Définit le contexte dans lequel l’index est formaté. Vaut par défaut : "\\begin{theindex}\n".
postamble 	Postambule du fichier d’index de sortie. Vaut par défaut : "\n\n\\end{theindex}\n".
group_skip 	 Traditionnellement les articles d’index sont répartis en groupes, typiquement un groupe pour les articles commençant pas la lettre ‘a’, etc. Ce spécificateur donne ce qui est inséré quand un nouveau groupe commence. Vaut par défaut : "\n\n \\indexspace\n" (\indexspace est une commande qui insère une longueur élastique, par défaut 10pt plus5pt minus3pt).
lethead_flag 	Un entier. Il commande ce qui est inséré pour un nouveau groupe ou une nouvelle lettre. Lorsqu’il vaut 0 (ce qui est le réglage par défaut) alors rien d’autre que group_skip n’est inséré avant le groupe. S’il est positif, alors pour une nouvelle lettre les attributs lethead_prefix et lethead_suffix sont insérés, avec cette lettre en capitale entre eux. S’il est négatif, alors ce qui est inséré est la lettre en bas de casse. Vaut par défaut 0.
lethead_prefix 	Si un nouveau groupe commence avec une lettre différente alors c’est le préfixe inséré devant l’en-tête présentant la nouvelle lettre. Vaut par défaut : ""
lethead_suffix 	Si un nouveau groupe commence avec une lettre différente alors c’est le suffixe inséré après l’en-tête présentant la nouvelle lettre. Vaut par défaut : ""
item_0 	C’est ce qui est mis entre deux articles de niveau 0. Vaut par défaut : "\n \\item ".
item_1 	Mis entre deux articles de niveau 1. Vaut par défaut : "\n \\subitem ".
item_2 	Mis entre deux articles de niveau 2. Vaut par défaut : "\n \\subsubitem ".
item_01 	C’est ce qui est mis entre un article de niveau 0 et un article de niveau 1. Vaut par défaut : "\n \\subitem ".
item_x1 	C’est ce qui est mis entre un article de niveau 0 et un article de niveau 1 dans le cas où l’article de niveau 0 n’a pas de numéro de page (comme dans \index{aaa|see{bbb}}). Vaut par défaut : "\n \\subitem ".
item_12 	C’est ce qui est mis entre un article de niveau 1 et un article de niveau 2. Vaut par défaut : "\n \\subsubitem ".
item_x2 	C’est ce qui est mis entre un article de niveau 1 et un article de niveau 2 si l’article de niveau 1 n’a pas de numéro de page. Vaut par défaut : "\n \\subsubitem ".
delim_0 	Délimiteur mis entre une clef de niveau 0 et son premier numéro de page. Vaut par défaut : une virgule suivie d’un blanc, ", ".
delim_1 	Délimiteur mis entre une clef de niveau 1 et son premier numéro de page. Vaut par défaut : une virgule suivie d’un blanc, ", ".
delim_2 	Délimiteur mis entre une clef de niveau 2 et son premier numéro de page. Vaut par défaut : une virgule suivie d’un blanc, ", ".
delim_n 	Délimiteur mis entre deux numéros de page de la même clef (quel que soit le niveau) . Vaut par défaut : une virgule suivie d’un blanc, ", ".
delim_r 	Délimiteur mis entre le numéro de début et le numéro de fin d’une plage de numéros de page deux numéros de page. Vaut par défaut : "--".
line_max 	Un entier. Longueur maximale d’une ligne d’article d’index dans la sortie au delà de quoi la ligne est repliée. Vaut par défaut : 72.
indent_space 	Ce qui est inséré au début d’une ligne repliée. Vaut par défaut : "\t\t".
indent_length 	Un nombre. La longueur d’un renfoncement de ligne repliée. La valeur par défaut d’indent_space est de deux tabulations, et chaque tabulation compte pour huit espaces de sorte que la valeur par défaut est 16.
page_precedence 	Un document peut avoir différents types de numérotations des pages. Par exemple, un livre peut avoir des matières préliminaires dont les pages sont numérotées en chiffres romains bas de casse alors que les pages de la matière principale sont en chiffres arabes. Cette chaîne spécifie l’ordre dans lequel ils apparaissent dans l’index. La commande makeindex prend en charge cinq types différents de numérotation : romain bas de casse r, numérique ou arabe n, alphabétique bas de casse a, romain capital R, et alphabétique capital A. Vaut par défaut : "rnaRA".
Il y a plusieurs autres programmes faisant le même travail que makeindex. L’un d’eux est xindy (https://ctan.org/pkg/xindy), qui fait de l’internationalisation et peut traiter des documents balisés en utilisant LaTeX et plusieurs autres langages. Il est écrit en Lisp, hautement configurable, à la fois en termes de balise et en termes d’ordre d’assemblage du texte, comme décrit dans sa documentation.
Un programme d’indexation plus récent prenant en charge l’Unicode est xindex, écrit en Lua (https://ctan.org/pkg/xindex).

\printindex
Synopsis :

\printindex

Place l’index dans la sortie.
Pour obtenir un index vous devez en premier inclure \usepackage{makeidx} dans le préambule du document et compiler le document, et ensuite exécuter la commande système makeindex, puis de nouveau compiler le document. Voir Indexes, pour plus de détails et un exemple d’usage de \printindex.