372 lines
15 KiB
HTML
372 lines
15 KiB
HTML
<?xml version="1.0" encoding="UTF-8"?>
|
||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||
<head>
|
||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
|
||
<title>Index</title>
|
||
<link rel="stylesheet" href="../../tuteurs.css" type="text/css" />
|
||
</head>
|
||
<body>
|
||
<div class="navigation">
|
||
<h1>Tuteurs informatique<br /><a href="../../meta/contact.html">Nous contacter</a></h1>
|
||
<hr />
|
||
<ul class="menu">
|
||
<li>
|
||
<a href="../../meta/charte_graphique.html">Utiliser ce site</a>
|
||
</li>
|
||
<li>
|
||
<a href="../../actualite.html">Actu et stages</a>
|
||
</li>
|
||
<li>
|
||
<a href="../../docs/">Docs à imprimer</a>
|
||
</li>
|
||
<li>
|
||
<a href="../../meta/plan_site.html">Plan du site</a>
|
||
</li>
|
||
<li>
|
||
<a href="../../search.html">Rechercher</a>
|
||
</li>
|
||
</ul>
|
||
<hr />
|
||
<ul class="arbre">
|
||
<li>
|
||
<a href="../../">Les tuteurs</a>
|
||
<ul class="arbre">
|
||
<li>
|
||
<a href="../">Logiciels</a>
|
||
<ul class="arbre">
|
||
<li>
|
||
<a href="./">LaTeX</a>
|
||
<ul class="arbre">
|
||
<li>
|
||
<a href="aide.html">Doc et aide</a>
|
||
</li>
|
||
<li>
|
||
<a href="astuces.html">Astuces</a>
|
||
</li>
|
||
<li>
|
||
<a href="beamer.html">Présentations</a>
|
||
</li>
|
||
<li>
|
||
<a href="bibtex.html">Bibliographie</a>
|
||
</li>
|
||
<li>
|
||
<a href="exemple.html">Exemple</a>
|
||
</li>
|
||
<li>
|
||
<a href="export.html">Exporter</a>
|
||
</li>
|
||
<li>
|
||
<a href="figures.html">Figures</a>
|
||
</li>
|
||
<li>
|
||
<a href="footnote.html">Notes de bas de page</a>
|
||
</li>
|
||
<li>
|
||
<a href="graphisme.html">Graphisme</a>
|
||
</li>
|
||
<li>
|
||
<a href="grec.html">Grec ancien</a>
|
||
</li>
|
||
<li>
|
||
<a href="langues.html">Langues exotiques</a>
|
||
</li>
|
||
<li>
|
||
<a href="latex.html">Comment faire ?</a>
|
||
</li>
|
||
<li>
|
||
<a href="lettre.html">Lettres</a>
|
||
</li>
|
||
<li>
|
||
<a href="macros.html">Macros élémentaires</a>
|
||
</li>
|
||
<li>
|
||
<a href="makeindex.html" class="actuel">Index</a>
|
||
</li>
|
||
<li>
|
||
<a href="manuel.html">Les bases</a>
|
||
</li>
|
||
<li>
|
||
<a href="maths.html">Maths</a>
|
||
</li>
|
||
<li>
|
||
<a href="nouveau_package.html">Écrire un package</a>
|
||
</li>
|
||
<li>
|
||
<a href="polices.html">Polices</a>
|
||
</li>
|
||
<li>
|
||
<a href="polices_liste.html">Polices : liste</a>
|
||
</li>
|
||
<li>
|
||
<a href="references.html">Références</a>
|
||
</li>
|
||
<li>
|
||
<a href="tableaux.html">Tableaux</a>
|
||
</li>
|
||
<li>
|
||
<a href="xdvi.html">xdvi</a>
|
||
</li>
|
||
<li>
|
||
<a href="xetex.html">XeTeX</a>
|
||
</li>
|
||
</ul>
|
||
</li>
|
||
</ul>
|
||
</li>
|
||
</ul>
|
||
</li>
|
||
</ul>
|
||
<hr />
|
||
<ul class="menu">
|
||
<li>
|
||
<a href="http://www.eleves.ens.fr/">Serveur des élèves</a>
|
||
</li>
|
||
<li>
|
||
<a href="http://www.ens.fr/">ENS</a>
|
||
</li>
|
||
<li>
|
||
<a href="http://www.spi.ens.fr/">SPI</a>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
<div class="corps">
|
||
<h1>Faire un index avec MakeIndex</h1>
|
||
<div class="sommaire">
|
||
<ul>
|
||
<li>
|
||
<a href="#s1">Avant toute chose</a>
|
||
</li>
|
||
<li>
|
||
<a href="#s2">Les bases</a>
|
||
<ul>
|
||
<li>
|
||
<a href="#s2_1">Récapitulatif</a>
|
||
</li>
|
||
</ul>
|
||
</li>
|
||
<li>
|
||
<a href="#s3">Spécifier les entrées de l'index</a>
|
||
<ul>
|
||
<li>
|
||
<a href="#s3_1">Caractères accentués</a>
|
||
</li>
|
||
<li>
|
||
<a href="#s3_2">Entrées et sous-entrées</a>
|
||
</li>
|
||
<li>
|
||
<a href="#s3_3">Références croisées</a>
|
||
</li>
|
||
</ul>
|
||
</li>
|
||
<li>
|
||
<a href="#s4">Formatage de l'index</a>
|
||
<ul>
|
||
<li>
|
||
<a href="#s4_1">Ajouter une lettre entre chaque groupe</a>
|
||
</li>
|
||
<li>
|
||
<a href="#s4_2">Ajouter des lignes de points</a>
|
||
</li>
|
||
<li>
|
||
<a href="#s4_3">Autres formatages</a>
|
||
</li>
|
||
</ul>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
<p>Vous disposez d'un fichier TeX qui contient votre maîtrise, votre
|
||
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éer un index. Tout
|
||
au long de ce cours nous allons utiliser un petit texte d'exemple,
|
||
tiré des <cite>Mémoires</cite> du duc de Luynes (vous pouvez le
|
||
télécharger : <a href="exemple.txt">exemple.txt</a>) :</p>
|
||
<pre>
|
||
À 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 ; mais que si
|
||
MM. de Rohan et de Bouillon y étoient, les ducs jetteroient de l'eau
|
||
bénite avant eux : ce qui arriva effectivement ; mais MM. de Rohan et
|
||
de Bouillon, voyant les ducs passer avant eux, s'en allèrent. Ce qui
|
||
avoit été décidé en faveur de MM. les ducs fut écrit sur le registre
|
||
de M. de Dreux ; mais deux ans après, les représentations de Mme de
|
||
Maintenon déterminèrent le Roi à faire un changement et à ordonner à
|
||
M. de Dreux que cet article seroit rayé 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>
|
||
<h2>
|
||
<a name="s1" id="s1">Avant toute chose</a>
|
||
</h2>
|
||
<p>Commencez par indiquer dans le préambule de votre document que vous
|
||
voulez le charger (attention, il faut bien écrire <code>makeidx</code>
|
||
et non <code>makeindex</code>) :</p>
|
||
<pre>\usepackage{makeidx}</pre>
|
||
<p class="continue">Ensuite, dans la suite du préambule, mettez la
|
||
commande</p>
|
||
<pre>\makeindex</pre>
|
||
<p class="continue">qui demande à MakeIndex de se mettre au travail.
|
||
Enfin, placez la commande</p>
|
||
<pre>\printindex</pre>
|
||
<p class="continue">à l'endroit où vous désirez placer l'index (à la
|
||
fin, normalement).</p>
|
||
<h2>
|
||
<a name="s2" id="s2">Les bases</a>
|
||
</h2>
|
||
<p>Pour obtenir une entrée dans l'index, il faut l'indiquer par la
|
||
commande <code>\index{<var>mon_entree</var>}</code>. Lors d'une première
|
||
compilation, LaTeX repérera tous les <code>\index</code> et écrira
|
||
pour chacun d'entre eux une entrée dans <a href="exemple.idx"><code>exemple.idx</code></a>. Ensuite il faudra
|
||
faire une deuxième compilation à l'aide de la commande
|
||
<code>makeindex</code> :</p>
|
||
<pre>makeindex exemple.idx</pre>
|
||
<p class="continue">MakeIndex interprétera les entrées de
|
||
<code>exemple.idx</code> et les formatera, générant deux nouveaux
|
||
fichier, <a href="exemple.ilg"><code>exemple.ilg</code></a> qui
|
||
contient les messages de compilation de MakeIndex, et <a href="exemple.ind"><code>exemple.ind</code></a> qui contient l'index
|
||
formaté. Il faut ensuite une troisième compilation, avec latex, pour
|
||
que <code>exemple.ind</code> soit intégré à <code>exemple.tex</code>
|
||
et produise l'index.</p>
|
||
<div class="encadre"><strong>Important</strong> : il faut préciser <strong>à chaque
|
||
fois</strong> à <code>makeindex</code> ce que vous voulez indexer, il
|
||
ne le fait pas automatiquement.
|
||
</div>
|
||
<p>
|
||
Pourquoi ? Bien sûr, vous préfereriez avoir à ne donner le mot à
|
||
indexer qu'une seule fois et laisser l'ordinateur faire le reste, mais
|
||
cette procédure <em>manque de souplesse</em>. Admettons que vous
|
||
vouliez créer une entrée d'index « Louis XIV ». Un indexage
|
||
automatique vous permettrait bien sûr de recenser toutes les
|
||
occurrences de « Louis XIV ».
|
||
</p>
|
||
<p class="continue">
|
||
Mais vous aimeriez sans doute aussi recenser les pages ou vous n'avez
|
||
pas écrit textuellement « Louis XIV », mais où vous en avez parlé sous
|
||
les périphrases « le roi de France », « le monarque », voire un bête
|
||
« il ». Ce que vous permet l'apposition à la main de commandes
|
||
<code>\index{Louis XIV}</code> après chaque mot ou expression que vous
|
||
voulez voir référencé.</p>
|
||
<h3>
|
||
<a name="s2_1" id="s2_1">Récapitulatif</a>
|
||
</h3>
|
||
<p>Il faut en tout <strong>trois compilations</strong> pour que
|
||
l'index soit effectif :</p>
|
||
<pre>latex exemple.tex
|
||
makeindex exemple.idx
|
||
latex exemple.tex</pre>
|
||
<h2>
|
||
<a name="s3" id="s3">Spécifier les entrées de l'index</a>
|
||
</h2>
|
||
<p>La procédure de base est la suivante : vous voulez indexer, dans le texte
|
||
d'exemple, les ducs et pairs. Vous placez donc, après l'expression à
|
||
référencer, un <code>\index{}</code> :</p>
|
||
<pre>
|
||
À 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>
|
||
<h3>
|
||
<a name="s3_1" id="s3_1">Caractères accentués</a>
|
||
</h3>
|
||
<p>
|
||
MakeIndex n'a pas été conçu pour les langues possédant des accents :
|
||
dès qu'un mot contenant des caractères accentués se trouvera dans
|
||
votre <code>\index{}</code>, il le classera au début des mots
|
||
commençant par cette même lettre... Il vous faut donc indiquer
|
||
vous-même à MakeIndex où classer la référence : on utilise pour cela
|
||
une arobase (<code>@</code>) et le code
|
||
<code>\index{<var>sans_accents</var>@<var>avec_accents</var>}</code>.
|
||
Par exemple,
|
||
</p>
|
||
<pre>\index{Princes etrangers@Princes étrangers}</pre>
|
||
<p class="continue">veut dire que vous demandez à MakeIndex de classer
|
||
« Princes étrangers » comme s'il n'y avait pas d'accent dans
|
||
l'expression.</p>
|
||
<p><strong>À noter :</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étique de leur prénom :</p>
|
||
<pre>
|
||
\index{Guise1@Guise, Henri de Lorraine, duc de}
|
||
\index{Guise2@Guise, Charles de Lorraine, duc de}
|
||
</pre>
|
||
<p class="continue">Vous pouvez également l'utiliser pour formater à
|
||
votre goût l'aspect d'une entré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 évidemment remplacer <code>\textsc{}</code> par
|
||
n'importe quel type de fonte (italique, gras, penché...).</p>
|
||
<h3>
|
||
<a name="s3_2" id="s3_2">Entrées et sous-entrées</a>
|
||
</h3>
|
||
<p>Pour produire une sous-entrée, vous devez d'abord indiquer l'entrée
|
||
principale puis la sous-entrée, séparée par un point d'exclamation.
|
||
Ainsi, si l'on reprend notre exemple, vous voulez faire du mot
|
||
« registres » une sous-entrée de « service des Cérémonies » :</p>
|
||
<pre>\index{Ceremonies@Cérémonies, service de!registres}</pre>
|
||
<p>Vous pouvez faire des sous-sous-entrées. MakeIndex et LaTeX ne
|
||
supportent que trois niveaux d'indexation : vous ne pouvez pas avoir de
|
||
sous-sous-sous-entrées.</p>
|
||
<h3>
|
||
<a name="s3_3" id="s3_3">Références croisées</a>
|
||
</h3>
|
||
<p>MakeIndex vous permet de faire des références croisées, qui ne renvoient
|
||
pas à une page, mais à une autre entrée. Ainsi, dans notre exemple, on
|
||
veut que le lecteur qui cherche une entrée à Bouillon soit renvoyé à
|
||
« princes étrangers » :</p>
|
||
<pre> \index{Bouillon|see{Princes étrangers}}</pre>
|
||
<p class="continue">vous donnera :</p>
|
||
<pre>Bouillon, voir Princes étrangers</pre>
|
||
<p>La traduction de <code>|see{}</code> dépend du package de Babel que
|
||
vous utilisez.</p>
|
||
<h2>
|
||
<a name="s4" id="s4">Formatage de l'index</a>
|
||
</h2>
|
||
<p>Par défaut, l'index ressemble à ceci (c'est le résultat de
|
||
<a href="exemple.tex"><code>exemple.tex</code></a>) :</p>
|
||
<div class="illustration">
|
||
<img src="index.jpg" alt="Un index" />
|
||
</div>
|
||
<p>Le texte s'étend sur deux colonnes. Si vous voulez modifier le
|
||
formatage de l'index, il vous faudra cré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 à
|
||
MakeIndex pendant la deuxième compilation :</p>
|
||
<pre>makeindex -s perso.ist exemple.idx</pre>
|
||
<h3>
|
||
<a name="s4_1" id="s4_1">Ajouter une lettre entre chaque groupe</a>
|
||
</h3>
|
||
<p>Il faut insérer dans votre perso.ist les lignes suivantes :</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>
|
||
<a name="s4_2" id="s4_2">Ajouter des lignes de points</a>
|
||
</h3>
|
||
<p>Il faut insérer dans votre perso.ist les lignes suivantes :</p>
|
||
<pre>
|
||
delim_0 "\\dotfill"
|
||
delim_1 "\\dotfill"
|
||
delim_2 "\\dotfill"
|
||
</pre>
|
||
<div class="illustration">
|
||
<img src="mylist.jpg" alt="Encore plus joli" />
|
||
</div>
|
||
<h3>
|
||
<a name="s4_3" id="s4_3">Autres formatages</a>
|
||
</h3>
|
||
<p>Voir le manuel de makindex pour la référence complète : sur un système compatible où LaTeX est installé, il suffit de taper</p>
|
||
<pre>man makeindex</pre>
|
||
<p>Sinon certains sites référencent les pages de manuel, essayer par exemple <a href="http://linux.die.net/man/1/makeindex">le site linux.die.net</a></p>
|
||
<div class="metainformation"> Auteurs : Marie-Lan Nguyen (2000) et
|
||
François-Xavier Coudert (2002).
|
||
Dernière modification : 2010-06-21 par Ismael Bouya.
|
||
</div>
|
||
</div>
|
||
</body>
|
||
</html>
|