Faire un index avec LaTeX est relativement simple. Il est conseillé d'y penser dès le début de la rédaction, de manière à le constituer au fur et à mesure. Nous allons pour cela, utiliser le package imakeidx.
Puis les commandes \makeindex
dans le préambule pour générer les entrées, \index
dans le corps du texte pour marquer une entrée d'index, \printindex
dans le corps du texte (souvent en fin de document) pour afficher l'index à l'endroit voulu.
%% préambule
\documentclass[12pt,a4paper]{report}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{imakeidx}
\makeindex
%% corps du document
\begin{document}
Mon document avec un mot ou expression à indexer\index{entrée d'index correspondante}.
\printindex
\end{document}
Le balisage des mots et expressions à indexer peut être problématique, dans la mesure où les caractères accentués perturbent l'ordre alphabétique. La commande \index
possède une option permettant d'y remédier : elle permet d'enregistrer pour l'index (et le classement) une forme non accentuée, tout en permettant l'affichage dans l'index de la forme correctement accentuée.
\index{forme non accentuee@forme accentuée}
Ces commandes acceptent les sous-entrées d'index (jusqu'à 3 niveaux). La subdivision sera incluse dans la commande \index
, chaque argument étant séparé par un point d'exclamation :
\index{entrée principale!sous-entrée!sous-sous-entrée}
Enfin, il est possible de faire des renvois :
\index{terme à indexer|see{terme auquel l'entrée renvoie}}
Exemples :
\index{Francois Ier@François Ier}
\index{Francois Ier@François Ier!Roi de France}
Ici, l'index affichera l'entrée "François Ier" et y subordonnera l'entrée "Roi de France".
\index{Sublime-Porte|see{Empire Ottoman}}
Il y aura dans l'index une entrée "Sublime-Porte", qui renverra à l'entrée "Empire Ottoman".
Dans certains cas, vous pouvez avoir besoin de gérer plusieurs index dans le même document (par exemple, un index des noms de lieux, de personnes, des notions, etc...). Pour cela, il faut utiliser l'option splitindex
du package imakeidx et identifier les entrées de l'index dans votre texte en spécifiant dans quel index l'entrée devra aller. Pour l'affichage de l'index, vous pourrez appeler chacun de vos index personnalisés séparément avec \printindex[name]
.
%% préambule
\documentclass[12pt,a4paper]{report}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[splitindex]{imakeidx}
\makeindex
\makeindex[name=lieux,title=Index des noms de lieux]
%% corps du document
\begin{document}
Guy de Monfort\index{Guy de Monfort} à Constantinople\index[lieux]{Constantinople}
\newpage
Iean de Froiuille\index{Iean de Froiuille} à Vérone\index[lieux]{Vérone}
\printindex
\printindex[lieux]
\end{document}
Bon à savoir :
Pour aller plus vite, vous pouvez redéfinir les commandes d'indexation dans votre préambule, de manière à avoir une commande spécifique pour chaque index différent :
\renewcommand{\index[lieux]}{\idxl}
Maintenant, vous avez une commande \idxl
qui vous permettra d'indexer spécifiquement les noms de lieux.