Exemple
Prenons un exemple simple :
% À compiler avec XeLaTeX
\documentclass{article}
\usepackage{fontspec}
\usepackage{polyglossia}
\setmainlanguage{french}
\setmainfont{Linux Libertine O}
\usepackage{setspace}
\onehalfspacing
\usepackage[xindy]{indextools}%On précise qu'on veut utiliser xindy
\makeindex[name=animal,title=Animaux,columnseprule]
% Personnaliser l'apparence de lettergroup
\newcommand{\lettergroup}[1]{%
{\centering\large---\emph{#1}---\par}%
}
\apptocmd{\subitem}{$\rightarrow$\,}{}{}
\begin{document}
On va parler de
chats sauvages\index[animal]{chat!sauvage} et domestiques\index[animal]{chat!domestique},
de tortues marines\index[animal]{tortue!marine} et terrestres\index[animal]{tortue!terrestre},
d'élèphant d'Asie\index[animal]{élèphant!d'Asie} et d'Afrique\index[animal]{élèphant!d'Afrique},
et soyons fou, d'élans de Sibérie\index[animal]{élan!de Sibérie} et d'Amérique\index[animal]{élan!d'Amérique}.
\newpage
On va parler sur la page suivante des même animaux. C'est à dire : de
chats sauvages\index[animal]{chat!sauvage} et domestiques\index[animal]{chat!domestique},
de tortues marines\index[animal]{tortue!marine} et terrestres\index[animal]{tortue!terrestre},
d'élèphant d'Asie\index[animal]{élèphant!d'Asie} et d'Afrique\index[animal]{élèphant!d'Afrique},
et soyons fou, d'élans de Sibérie\index[animal]{élan!de Sibérie} et d'Amérique\index[animal]{élan!d'Amérique}.
\newpage
Et pour la bonne cause, on va aussi parler de chats sauvages\index[animal]{chat!sauvage} qui se disputent avec les chiens errants\index[animal]{chien!errant}.
\printindex[animal]
\end{document}
En utilisant le fichier de configuration .xdy
des précédents tutoriels, on obtient l’index suivant.
Les empereurs sont classés par ordre alphabétique, ce qui est parfaitement normal, puisqu’on n’a pas demandé un autre tri.
Première méthode : l’arobase
La première méthode à laquelle on pense spontanément est l’utilisation du @
, pour indiquer pour chaque entrée un ordre de tri personnalisé.
Les empereurs julio-claudiens sont Auguste\index[emp]{001@Auguste}, Tibère\index[emp]{002@Tibère}, Caligula\index[emp]{003@Caligula}, Claude\index[emp]{004@Claude} et Néron\index[emp]{005@Néron}.
Ceci permet donc de trier les empereurs par ordre de règne. Et fonctionne parfaitement comme le montre l’exemple ci-dessous.
Deuxième méthode : le fichier .xdy
Seulement cette méthode implique d’indiquer systématiquement le numéro d’ordre de l’empereur lors de l’indexation. Ce qui, outre ralentir l’écriture, est source d’erreur. Quid si je frappe par erreur \index[emp]002@Caligula ?
Et bien j’aurai deux entrées « Caligula », donc une situé entre « Auguste » et « Tibère ». Certes ce genre d’erreur ne devrait pas arriver ... mais autant utiliser les potentialités de xindy
en indiquant dans le fichier .xdy
l’ordre des empereurs.
Pour ce faire mettre simple les lignes suivantes
(merge-rule "Auguste" "001" :string)
(merge-rule "Tibère" "002" :string)
(merge-rule "Caligula" "003" :string)
(merge-rule "Claude" "004" :string)
(merge-rule "Néron" "005" :string)
Ceci signifie simplement que l’entrée « Auguste » sera transformée en une entrée « 001 » avant que xindy
ne commence à analyser les règles de tri, que l’entrée « Tibère » sera transformée en « 002 » etc.
Notez deux choses importantes :
- la transformation ne concerne que la valeur utilisée pour le tri, pas la valeur utilisée à l’affichage
- la transformation est opérée avant que ne soit appliquée les règles de tri propre à une langue. Cela n’a aucune importance dans le cas d’espèce, mais pourrait être pertinent si vous vous vouliez vous servir de ce genre de règle pour unifier des présentation, comme nous le verrons dans un autre article.
Avec ce fichier .xdy
, mettre dans son fichier .tex
directement
Les empereurs julio-claudiens sont Auguste\index[emp]{Auguste}, Tibère\index[emp]{Tibère}, Caligula\index[emp]{Caligula}, Claude\index[emp]{Claude} et Néron\index[emp]{Néron}.
nous produit quand même un index trié par ordre de règne. Mais cette fois, on s’allège la rédaction du fichier .tex
.