Blog ENI : Toute la veille numérique !
🐠 -25€ dès 75€ 
+ 7 jours d'accès à la Bibliothèque Numérique ENI. Cliquez ici
Accès illimité 24h/24 à tous nos livres & vidéos ! 
Découvrez la Bibliothèque Numérique ENI. Cliquez ici
  1. Livres et vidéos
  2. LaTeX
  3. Insérer un index
Extrait - LaTeX Concevez des documents élaborés et structurés
Extraits du livre
LaTeX Concevez des documents élaborés et structurés
2 avis
Revenir à la page d'achat du livre

Insérer un index

Exploiter les index

Dans les ouvrages longs et bien structurés, il est quasiment indispensable de proposer aux lecteurs un index. L’index va afficher une liste de mots, de termes techniques ou scientifiques, de commandes informatiques, de noms propres… utilisés dans l’ouvrage. En face de chacune de ces entrées, le lecteur trouvera un ou plusieurs numéros de page indiquant où se trouve l’entrée concernée dans le livre. Ainsi, le lecteur pourra se rendre très facilement aux pages concernées par sa recherche.

Vous pourrez afficher des index simples ou imbriqués et des index avec des renvois. LaTeX permet d’exploiter ces index avec efficacité et rigueur.

Connaître la structure des index

Pour créer un index dans LaTeX, vous devez utiliser plusieurs éléments. Tout d’abord, vous ajouterez le package makeidx dans le préambule, puis, à sa suite, vous insérerez la commande \makeindex. Cette commande indique à LaTeX que le document inclut un index.

Dans le document, il faut insérer la commande \printindex là où vous souhaitez afficher l’index du document. Ensuite, vous utiliserez la commande \index{Terme à indexer} pour signaler chaque terme à indexer.

Ajouter le package makeidx

Pour insérer un index dans un document, il faut utiliser le package makeidx. Attention à la syntaxe particulière du nom de ce package. Puis vous saisissez la commande \makeindex, qui indique à LaTeX que le document inclut un index. Ces deux éléments s’insèrent bien sûr dans le préambule.

Voici un exemple pour une classe de document de type livre :

\documentclass[11pt,a4paper]{book} 
\usepackage[utf8]{inputenc} 
\usepackage[french]{babel} 
\usepackage[T1]{fontenc} 
\usepackage{lmodern} 
% Ajouter le package makeidx 
\usepackage{makeidx} 
\makeindex 

Marquer les termes à indexer

Maintenant, dans le document, vous devez marquer tous les termes qui doivent être indexés. Pour cela, utilisez la commande \index{Terme à indexer}. Entre les accolades de la commande, vous indiquez le terme à indexer. Assez souvent, mais ce n’est pas une règle absolue, le terme à indexer est composé d’un seul mot, mais il y a de nombreuses exceptions, comme pour des noms propres.

Dans cet exemple, c’est le mot commodo qui est indexé :

tellus ac cursus commodo\index{commodo}, tortor mauris condimentum 

Juste après le mot dans le texte courant, vous ajoutez la commande \index{...}

Notez bien que si vous mettez une espace entre le mot du texte courant et le terme à indexer, cela peut avoir une influence certaine dans la composition du paragraphe. De ce fait, il est plutôt conseillé de ne pas mettre d’espace.

Vous devez donc faire ceci pour tous les termes que vous souhaitez indexer. En fonction de l’éditeur LaTeX que vous utilisez, vous pouvez utiliser les fonctions de recherche et de remplacement pour vous aider dans cette tâche.

Vous pouvez rechercher le mot commodo et le remplacer par commodo\index{commodo}

Avec Texmaker, vous pouvez insérer la commande \index{•} dans la barre des outils, en cliquant sur le bouton ref :

images/C12-001.png

Insérer l’index dans le document

Pour insérer l’index dans le document, vous devez utiliser la commande \printindex. Vous  insérez cette commande dans le code du document, là où vous souhaitez que l’index soit affiché. Usuellement, l’index d’un ouvrage est affiché en fin de document, mais vous faites ce que vous voulez.

Dans cet exemple, l’index est inséré à la fin du document, juste avant sa fermeture :

...consectetur est at lobortis. 
 
\printindex 
\end{document} 

Compiler l’index du document

1. Les étapes de la compilation

Avant de compiler l’index de cet exemple, voici le code du document utilisé :

\documentclass[11pt,a4paper]{book} 
\usepackage[utf8]{inputenc} 
\usepackage[french]{babel} 
\usepackage[T1]{fontenc} 
\usepackage{lmodern} 
% Ajouter le package makeidx 
\usepackage{makeidx} 
\makeindex 
\begin{document} 
 
\chapter{Lorem Ipsum} 
Tellus ac cursus commodo\index{commodo}, tortor mauris 
condimentum nibh... 
 
Aenean eu leo quam. Pellentesque\index{Pellentesque} ornare 
sem lacinia... 
 
Vivamus\index{Vivamus} sagittis lacus vel augue.. 
 
Etiam\index{Etiam} porta sem malesuada magna mollis euismod... 
 
Morbi leo risus, porta ac consectetur ac, 
vestibulum\index{vestibulum} at eros. 
Praesent commodo\index{commodo} cursus magna... 
 
\printindex 
\end{document} 

Pour afficher l’index dans le rendu PDF, vous devez faire trois compilations. Cela peut sembler excessif, mais il faut que plusieurs fichiers soient générés. La première compilation génère le fichier .idx, qui recense toutes les entrées de l’index. C’est la commande \makeindex qui exécute cette action. Puis...

Personnaliser l’indexation

1. Des entrées différentes des termes indexés

Dans l’exemple initial, l’index est imparfait, car il affiche des entrées ayant parfois des majuscules en début de terme et d’autres fois des minuscules :

images/C12-002.png

Cela provient simplement du fait que la compilation reprend strictement les caractères indiqués entre les accolades de la commande index{•}. Pour harmoniser les libellés, vous pouvez indiquer le libellé à afficher dans l’index avec la commande \index{Terme à afficher} et laisser le mot à indexer dans le document.

Voici un exemple précis :

tellus ac cursus commodo\index{commodo}, tortor mauris 
condimentum nibh 

Dans cet exemple, c’est le mot commodo qui est indexé. Ce mot est directement indiqué entre les accolades de la commande index{•}. Si nous souhaitons avoir une majuscule en début de mot dans l’index, il suffit de l’indiquer dans la commande : index{Commodo}.

Voici la modification :

tellus ac cursus commodo\index{Commodo}, tortor mauris 
condimentum nibh 

Faites de même pour toutes les entrées voulues.

Voici l’affichage obtenu :

images/C12-015.png

Maintenant, libre à vous d’adopter cette méthode pour toutes les entrées d’index. Mais cela vous permettra d’avoir systématiquement une majuscule initiale, quelle que soit l’évolution du texte courant dans le document.

Cette méthode a un deuxième avantage très important, c’est de pouvoir indexer un mot totalement différent de son entrée dans l’index. Imaginons...

Connaître le problème des caractères accentués

Sachez qu’il peut exister une problématique dans l’affichage par ordre alphabétique des entrées ayant des caractères accentués. Voici un exemple très concret :

Il mange des pâtes\index{pâtes} et des patates\index{patates}. 

Nous avons deux entrées d’index : pâtes et patates. Voici l’affichage de l’index généré :

images/C12-023.png

L’ordre alphabétique d’affichage n’est pas correct.

Pour pallier ce problème, il faut indiquer une version avec les accents et une version sans les accents. Voici la syntaxe à utiliser :

Il mange des pâtes\index{pates@pâtes} et des 
patates\index{patates}. 

Dans la commande index{•}, le premier terme est celui qu’il faut utiliser dans l’affichage alphabétique de l’index, et le deuxième est le terme qu’il faut afficher dans l’index.

Voici l’affichage obtenu avec la correction de la syntaxe :

images/C12-024.png

Vous pourriez aussi rencontrer ce type de problème avec les majuscules des mots.

Insérer des liens hypertextes dans l’index

Lorsque le document LaTeX est rendu en PDF, il est très appréciable pour les lecteurs d’avoir des liens hypertextes sur les numéros des pages qui permettent d’accéder immédiatement au texte courant correspondant.

Pour cela, il suffit tout simplement de déclarer le package hyperref dans le préambule du document. Et c’est tout ! Le package va automatiquement détecter les numéros de pages des entrées dans l’index et la position des commandes index{•} correspondantes dans le document courant. Les liens seront donc aussitôt utilisables dans le document PDF.

Voici le préambule complet :

\documentclass[11pt,a4paper]{book} 
\usepackage[utf8]{inputenc} 
\usepackage[french]{babel} 
\usepackage[T1]{fontenc} 
\usepackage{lmodern} 
% Ajout du package hyperref 
\usepackage{hyperref} 
% Ajouter le package makeidx 
\usepackage{makeidx} 
\makeindex 

Le document ne change pas, il possède toujours toutes ces entrées d’index, mais, maintenant, il y a des liens hypertextes sur les numéros des pages.

Voici l’affichage obtenu dans le PDF :

images/new-012.png