2002-11-13 12:15:42 +01:00
|
|
|
|
<?xml version="1.0" encoding="ISO-8859-1"?>
|
|
|
|
|
<!DOCTYPE html
|
|
|
|
|
PUBLIC "-//ENS/Tuteurs//DTD TML 1//EN"
|
|
|
|
|
"tuteurs://DTD/tml.dtd">
|
|
|
|
|
<html>
|
|
|
|
|
<head>
|
|
|
|
|
<title>Index</title>
|
|
|
|
|
</head>
|
|
|
|
|
<body>
|
|
|
|
|
|
|
|
|
|
<h1>Faire un index avec MakeIndex</h1>
|
|
|
|
|
|
2005-12-02 15:31:35 +01:00
|
|
|
|
<p>Vous disposez d'un fichier TeX qui contient votre ma<6D>trise, votre
|
2004-03-12 17:38:18 +01:00
|
|
|
|
autobiographie, ce que vous voulez. Pour faciliter la vie du lecteur
|
|
|
|
|
de votre document final, vous d<>sirez indexer les termes clefs de
|
|
|
|
|
votre texte. Le package MakeIndex vous permet de cr<63>er un index. Tout
|
|
|
|
|
au long de ce cours nous allons utiliser un petit texte d'exemple,
|
|
|
|
|
tir<EFBFBD> des <cite>M<>moires</cite> du duc de Luynes (vous pouvez le
|
|
|
|
|
t<EFBFBD>l<EFBFBD>charger<EFBFBD>: <a href="exemple.txt">exemple.txt</a>)<29>:</p>
|
|
|
|
|
|
|
|
|
|
<pre>
|
|
|
|
|
<EFBFBD> la mort de M. le duc de Bourgogne, lorsqu'il fut question d'aller
|
|
|
|
|
jeter de l'eau b<>nite, le feu Roi d<>cida que si les princes lorrains
|
|
|
|
|
s'y presenteroient, qu'eux ni les ducs n'en jetteroient<6E>; mais que si
|
|
|
|
|
MM. de Rohan et de Bouillon y <20>toient, les ducs jetteroient de l'eau
|
|
|
|
|
b<EFBFBD>nite avant eux<75>: ce qui arriva effectivement<6E>; mais MM. de Rohan et
|
|
|
|
|
de Bouillon, voyant les ducs passer avant eux, s'en all<6C>rent. Ce qui
|
|
|
|
|
avoit <20>t<EFBFBD> d<>cid<69> en faveur de MM. les ducs fut <20>crit sur le registre
|
|
|
|
|
de M. de Dreux<75>; mais deux ans apr<70>s, les repr<70>sentations de Mme de
|
|
|
|
|
Maintenon d<>termin<69>rent le Roi <20> faire un changement et <20> ordonner <20>
|
|
|
|
|
M. de Dreux que cet article seroit ray<61> sur le registre. Il fut mis en
|
|
|
|
|
marge que le Roi n'avoit jamais voulu d<>cider entre les ducs et MM. de
|
|
|
|
|
Rohan et de Bouillon. </pre>
|
2002-11-13 12:15:42 +01:00
|
|
|
|
|
|
|
|
|
<h2>Avant toute chose</h2>
|
|
|
|
|
|
|
|
|
|
<p>Commencez par indiquer dans le pr<70>ambule de votre document que vous
|
2004-03-12 17:38:18 +01:00
|
|
|
|
voulez le charger (attention, il faut bien <20>crire <code>makeidx</code>
|
|
|
|
|
et non <code>makeindex</code>)<29>:</p>
|
2002-11-13 12:15:42 +01:00
|
|
|
|
|
|
|
|
|
<pre>\usepackage{makeidx}</pre>
|
|
|
|
|
|
|
|
|
|
<p class="continue">Ensuite, dans la suite du pr<70>ambule, mettez la
|
|
|
|
|
commande</p>
|
|
|
|
|
|
|
|
|
|
<pre>\makeindex</pre>
|
|
|
|
|
|
|
|
|
|
<p class="continue">qui demande <20> MakeIndex de se mettre au travail.
|
|
|
|
|
Enfin, placez la commande</p>
|
|
|
|
|
|
|
|
|
|
<pre>\printindex</pre>
|
|
|
|
|
|
2004-03-12 17:38:18 +01:00
|
|
|
|
<p class="continue"><3E> l'endroit o<> vous d<>sirez placer l'index (<28> la
|
|
|
|
|
fin, normalement).</p>
|
2002-11-13 12:15:42 +01:00
|
|
|
|
|
|
|
|
|
<h2>Les bases</h2>
|
|
|
|
|
|
|
|
|
|
<p>Pour obtenir une entr<74>e dans l'index, il faut l'indiquer par la
|
2005-12-02 15:31:35 +01:00
|
|
|
|
commande <code>\index{<var>mon_entree</var>}</code>. Lors d'une premi<6D>re
|
2004-03-12 17:38:18 +01:00
|
|
|
|
compilation, LaTeX rep<65>rera tous les <code>\index</code> et <20>crira
|
|
|
|
|
pour chacun d'entre eux une entr<74>e dans <a
|
|
|
|
|
href="exemple.idx"><code>exemple.idx</code></a>. Ensuite il faudra
|
|
|
|
|
faire une deuxi<78>me compilation <20> l'aide de la commande
|
|
|
|
|
<code>makeindex</code><3E>:</p>
|
2002-11-13 12:15:42 +01:00
|
|
|
|
|
|
|
|
|
<pre>makeindex exemple.idx</pre>
|
|
|
|
|
|
|
|
|
|
<p class="continue">MakeIndex interpr<70>tera les entr<74>es de
|
|
|
|
|
<code>exemple.idx</code> et les formatera, g<>n<EFBFBD>rant deux nouveaux
|
2004-03-12 17:38:18 +01:00
|
|
|
|
fichier, <a href="exemple.ilg"><code>exemple.ilg</code></a> qui
|
|
|
|
|
contient les messages de compilation de MakeIndex, et <a
|
2002-11-13 12:15:42 +01:00
|
|
|
|
href="exemple.ind"><code>exemple.ind</code></a> qui contient l'index
|
2004-03-12 17:38:18 +01:00
|
|
|
|
format<EFBFBD>. Il faut ensuite une troisi<73>me compilation, avec latex, pour
|
|
|
|
|
que <code>exemple.ind</code> soit int<6E>gr<67> <20> <code>exemple.tex</code>
|
|
|
|
|
et produise l'index.</p>
|
|
|
|
|
|
|
|
|
|
<div class="encadre">
|
|
|
|
|
<strong>Important</strong><3E>: il faut pr<70>ciser <strong><3E> chaque
|
|
|
|
|
fois</strong> <20> <code>makeindex</code> ce que vous voulez indexer, il
|
|
|
|
|
ne le fait pas automatiquement.
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<p>
|
|
|
|
|
Pourquoi<EFBFBD>? Bien s<>r, vous pr<70>fereriez avoir <20> ne donner le mot <20>
|
|
|
|
|
indexer qu'une seule fois et laisser l'ordinateur faire le reste, mais
|
|
|
|
|
cette proc<6F>dure <em>manque de souplesse</em>. Admettons que vous
|
|
|
|
|
vouliez cr<63>er une entr<74>e d'index <20><>Louis XIV<49><56>. Un indexage
|
|
|
|
|
automatique vous permettrait bien s<>r de recenser toutes les
|
|
|
|
|
occurrences de <20><>Louis<69>XIV<49><56>.
|
|
|
|
|
</p>
|
|
|
|
|
|
|
|
|
|
<p class="continue">
|
|
|
|
|
Mais vous aimeriez sans doute aussi recenser les pages ou vous n'avez
|
|
|
|
|
pas <20>crit textuellement <20><>Louis XIV<49><56>, mais o<> vous en avez parl<72> sous
|
|
|
|
|
les p<>riphrases <20><>le roi de France<63><65>, <20><>le monarque<75><65>, voire un b<>te
|
|
|
|
|
<EFBFBD><EFBFBD>il<EFBFBD><EFBFBD>. Ce que vous permet l'apposition <20> la main de commandes
|
2002-11-13 12:15:42 +01:00
|
|
|
|
<code>\index{Louis XIV}</code> apr<70>s chaque mot ou expression que vous
|
2004-03-12 17:38:18 +01:00
|
|
|
|
voulez voir r<>f<EFBFBD>renc<6E>.</p>
|
2002-11-13 12:15:42 +01:00
|
|
|
|
|
|
|
|
|
<h3>R<>capitulatif</h3>
|
|
|
|
|
|
2004-03-12 17:38:18 +01:00
|
|
|
|
<p>Il faut en tout <strong>trois compilations</strong> pour que
|
|
|
|
|
l'index soit effectif<69>:</p>
|
|
|
|
|
|
2005-12-02 15:31:35 +01:00
|
|
|
|
<pre>latex exemple.tex
|
|
|
|
|
makeindex exemple.idx
|
|
|
|
|
latex exemple.tex</pre>
|
2002-11-13 12:15:42 +01:00
|
|
|
|
|
|
|
|
|
<h2>Sp<53>cifier les entr<74>es de l'index</h2>
|
|
|
|
|
|
|
|
|
|
<p>La proc<6F>dure de base est la suivante<74>: vous voulez indexer, dans le texte
|
|
|
|
|
d'exemple, les ducs et pairs. Vous placez donc, apr<70>s l'expression <20>
|
|
|
|
|
r<EFBFBD>f<EFBFBD>rencer, un <code>\index{}</code><3E>:</p>
|
|
|
|
|
|
2004-03-12 17:38:18 +01:00
|
|
|
|
<pre>
|
|
|
|
|
<EFBFBD> la mort de M. le duc de Bourgogne, lorsqu'il fut question d'aller
|
|
|
|
|
jeter de l'eau b<>nite, le feu Roi d<>cida que si les princes lorrains
|
|
|
|
|
s'y presenteroient, qu'eux ni les ducs\index{Ducs et pairs} n'en
|
|
|
|
|
jetteroient (...)
|
|
|
|
|
</pre>
|
|
|
|
|
|
2002-11-13 12:15:42 +01:00
|
|
|
|
<h3>Caract<63>res accentu<74>s</h3>
|
|
|
|
|
|
2004-03-12 17:38:18 +01:00
|
|
|
|
<p>
|
|
|
|
|
MakeIndex n'a pas <20>t<EFBFBD> con<6F>u pour les langues poss<73>dant des accents<74>:
|
|
|
|
|
d<EFBFBD>s qu'un mot contenant des caract<63>res accentu<74>s se trouvera dans
|
|
|
|
|
votre <code>\index{}</code>, il le classera au d<>but des mots
|
|
|
|
|
commen<EFBFBD>ant par cette m<>me lettre... Il vous faut donc indiquer
|
|
|
|
|
vous-m<>me <20> MakeIndex o<> classer la r<>f<EFBFBD>rence<63>: on utilise pour cela
|
2005-12-02 15:31:35 +01:00
|
|
|
|
une arobase (<code>@</code>) et le code
|
|
|
|
|
<code>\index{<var>sans_accents</var>@<var>avec_accents</var>}</code>.
|
|
|
|
|
Par exemple,
|
2004-03-12 17:38:18 +01:00
|
|
|
|
</p>
|
2002-11-13 12:15:42 +01:00
|
|
|
|
|
|
|
|
|
<pre>\index{Princes etrangers@Princes <20>trangers}</pre>
|
|
|
|
|
|
|
|
|
|
<p class="continue">veut dire que vous demandez <20> MakeIndex de classer
|
|
|
|
|
<EFBFBD><EFBFBD>Princes <20>trangers<72><73> comme s'il n'y avait pas d'accent dans
|
|
|
|
|
l'expression.</p>
|
|
|
|
|
|
|
|
|
|
<p><strong><3E> noter<65>:</strong> Vous pouvez utiliser cette technique pour
|
|
|
|
|
classer par exemple des membres d'une m<>me famille dans l'ordre
|
|
|
|
|
chronologique, et non pas par ordre alphab<61>tique de leur pr<70>nom<6F>:</p>
|
|
|
|
|
|
|
|
|
|
<pre>
|
|
|
|
|
\index{Guise1@Guise, Henri de Lorraine, duc de}
|
|
|
|
|
\index{Guise2@Guise, Charles de Lorraine, duc de}
|
|
|
|
|
</pre>
|
|
|
|
|
|
|
|
|
|
<p class="continue">Vous pouvez <20>galement l'utiliser pour formater <20>
|
|
|
|
|
votre go<67>t l'aspect d'une entr<74>e d'index. Ainsi,</p>
|
|
|
|
|
|
|
|
|
|
<pre>\index{Bourgogne@\textsc{Bourgogne}, Louis de France, duc de}</pre>
|
|
|
|
|
|
|
|
|
|
<p class="continue">vous permet d'avoir le nom de famille en petites
|
|
|
|
|
majuscules. Vous pouvez <20>videmment remplacer <code>\textsc{}</code> par
|
|
|
|
|
n'importe quel type de fonte (italique, gras, pench<63>...).</p>
|
|
|
|
|
|
|
|
|
|
<h3>Entr<74>es et sous-entr<74>es</h3>
|
|
|
|
|
|
|
|
|
|
<p>Pour produire une sous-entr<74>e, vous devez d'abord indiquer l'entr<74>e
|
|
|
|
|
principale puis la sous-entr<74>e, s<>par<61>e par un point d'exclamation.
|
|
|
|
|
Ainsi, si l'on reprend notre exemple, vous voulez faire du mot
|
|
|
|
|
<EFBFBD><EFBFBD>registres<EFBFBD><EFBFBD> une sous-entr<74>e de <20><>service des C<>r<EFBFBD>monies<65><73><EFBFBD>:</p>
|
|
|
|
|
|
|
|
|
|
<pre>\index{Ceremonies@C<>r<EFBFBD>monies, service de!registres}</pre>
|
|
|
|
|
|
|
|
|
|
<p>Vous pouvez faire des sous-sous-entr<74>es. MakeIndex et LaTeX ne
|
|
|
|
|
supportent que trois niveaux d'indexation<6F>: vous ne pouvez pas avoir de
|
|
|
|
|
sous-sous-sous-entr<74>es.</p>
|
|
|
|
|
|
|
|
|
|
<h3>R<>f<EFBFBD>rences crois<69>es</h3>
|
|
|
|
|
|
|
|
|
|
<p>MakeIndex vous permet de faire des r<>f<EFBFBD>rences crois<69>es, qui ne renvoient
|
|
|
|
|
pas <20> une page, mais <20> une autre entr<74>e. Ainsi, dans notre exemple, on
|
|
|
|
|
veut que le lecteur qui cherche une entr<74>e <20> Bouillon soit renvoy<6F> <20>
|
|
|
|
|
<EFBFBD><EFBFBD>princes <20>trangers<72><73><EFBFBD>:</p>
|
|
|
|
|
|
|
|
|
|
<pre> \index{Bouillon|see{Princes <20>trangers}}</pre>
|
|
|
|
|
|
|
|
|
|
<p class="continue">vous donnera<72>:</p>
|
|
|
|
|
|
|
|
|
|
<pre>Bouillon, voir Princes <20>trangers</pre>
|
|
|
|
|
|
|
|
|
|
<p>La traduction de <code>|see{}</code> d<>pend du package de Babel que
|
|
|
|
|
vous utilisez.</p>
|
|
|
|
|
|
|
|
|
|
<h2>Formatage de l'index</h2>
|
|
|
|
|
|
|
|
|
|
<p>Par d<>faut, l'index ressemble <20> ceci (c'est le r<>sultat de
|
|
|
|
|
<a href="exemple.tex"><code>exemple.tex</code></a>)<29>:</p>
|
|
|
|
|
|
|
|
|
|
<div class="illustration"><img src="index.jpg" alt="Un index"/></div>
|
|
|
|
|
|
|
|
|
|
<p>Le texte s'<27>tend sur deux colonnes. Si vous voulez modifier le
|
|
|
|
|
formatage de l'index, il vous faudra cr<63>er un fichier <code>.ist</code>
|
|
|
|
|
(<code>perso.ist</code>, par exemple) contenant vos personnalisations.
|
|
|
|
|
Pour utiliser ce fichier <code>.ist</code>, il faut le donner en option <20>
|
|
|
|
|
MakeIndex pendant la deuxi<78>me compilation<6F>:</p>
|
|
|
|
|
|
|
|
|
|
<pre>makeindex -s perso.ist exemple.idx</pre>
|
|
|
|
|
|
|
|
|
|
<h3>Ajouter une lettre entre chaque groupe</h3>
|
|
|
|
|
|
|
|
|
|
<p>Il faut ins<6E>rer dans votre perso.ist les lignes suivantes<65>:</p>
|
|
|
|
|
|
|
|
|
|
<pre>
|
|
|
|
|
heading_prefix "{\\bfseries\\hfil "
|
|
|
|
|
heading_suffix "\\hfil}\\nopagebreak\n"
|
|
|
|
|
headings_flag 1
|
|
|
|
|
</pre>
|
|
|
|
|
|
|
|
|
|
<div class="illustration"><img src="myhead.jpg" alt="C'est joli" /></div>
|
|
|
|
|
|
|
|
|
|
<h3>Ajouter des lignes de points</h3>
|
|
|
|
|
|
|
|
|
|
<p>Il faut ins<6E>rer dans votre perso.ist les lignes suivantes<65>:</p>
|
|
|
|
|
|
|
|
|
|
<pre>
|
|
|
|
|
delim_0 "\\dotfill"
|
|
|
|
|
delim_1 "\\dotfill"
|
|
|
|
|
delim_2 "\\dotfill"
|
|
|
|
|
</pre>
|
|
|
|
|
|
|
|
|
|
<div class="illustration"><img src="mylist.jpg" alt="Encore plus joli" /></div>
|
|
|
|
|
|
|
|
|
|
|
2004-03-12 17:38:18 +01:00
|
|
|
|
<div class="metainformation"> Auteurs<72>: Marie-Lan Nguyen (2000) et
|
|
|
|
|
Fran<61>ois-Xavier Coudert (2002).
|
2005-12-02 15:42:52 +01:00
|
|
|
|
Derni<EFBFBD>re modification : le <date value="$Date: 2005-12-02 14:42:52 $" />.
|
2004-03-12 17:38:18 +01:00
|
|
|
|
</div>
|
2002-11-13 12:15:42 +01:00
|
|
|
|
</body> </html>
|