Premier pas avec xindy

mardi 14 avril 2015, mise à jour mercredi 15 avril 2015, par Maïeul
Suivre la vie du site RSS 2.0 Forum

Après avoir présenté rapidement ce qu’était xindy et pourquoi je recommande son utilisation, faisons les premiers pas avec xindy.

Pour le moment nous nous contenterons d’index un un document en français, avec deux index.

Préréquis

Je suppose que vous utilisez XeLaTeX et non pas LaTeX ou pdfLaTeX [1].

Je suppose également que xindy est installé sur votre ordinateur :

  • Si vous utilisez TeXLive2014 ou MacTeX 2014, c’est déjà le cas.
  • Si vous utilisez MikTeX, il existe un tutoriel pour l’installation. Je n’ai pas encore testé, donc tout retour est le bienvenu.

Enfin, je suppose que vous savez comment exécuter LaTeX et ses auxiliaires en lignes de commandes. Si vous ne savez pas :

Fichier d’exemple minimal

Nous prendrons le fichier suivant [2] :

% À compiler avec XeLaTeX
\documentclass{article}
\usepackage{fontspec}
\setmainfont{Linux Libertine O}
\usepackage{setspace}
\onehalfspacing
\usepackage[xindy]{indextools}%On précise qu'on veut utiliser xindy
\makeindex[name=animal,title=Animaux]
\makeindex[name=plante,title=Plantes]
\begin{document}

On va parler de 
chats\index[animal]{chat},
de tortues\index[animal]{tortue},
d'élèphant\index[animal]{élèphant},
et soyons fou, d'élans\index[animal]{élan}.

\newpage

Ces animaux aiment bien les carottes\index[plante]{carotte},
  les anémones\index[plante]{anémone},
  les anthémis\index[plante]{anthémis},
  et les courgette\index[plante]{courgettes}.

\newpage
\printindex[animal]
\printindex[plante]
\end{document}

Première compilation XeLaTeX

Compilez le document avec XeLaTeX. Vous obtenez deux pages, mais pas d’index. En revanche, vous obtenez le message suivant dans les messages de compilation

Package indextools Warning : Remember to run xelatex again after calling (indextools) texindy animal.idx'. Package indextools Warning: Remember to run xelatex again after calling (indextools)texindy plante.idx’.

Tout est dit : alors que indextools peut exécuter makeindex automatiquement, ce n’est pas le cas pour xindy [3].

Qu’importe, nous allons le faire maintenant.

Deux exécutions de texindy

On constate que deux fichiers .idx ont été produits : animal.idx et plante.idx. Nous allons donc les transformer en appelant texindy, le xindy préconfiguré pour LaTeX.

En ligne de commande donc, frapper (le $ représente l’invite de commande) :

$ texindy -L french -I xelatex animal.idx
$ texindy -L french -I xelatex plante.idx

Explication de code :

  • texindy le programme que l’on appelle.
  • -L french utilisez les règles de classement alphabétique du français. Chaque langue à ses propres règles de classement [4], c’est pourquoi il est nécessaire de préciser la langue. Et si vous utilisez plusieurs langues dans votre index ? On y viendra plus tard.
  • -I xelatex indique que nous chargeons les règles propres à xelatex, autrement dit que nos fichiers .idx sont encodés en UTF8. Après chaque retour chariot, vous obtiendrez normalement des messages de compilation xindy.

Vous devriez désormais avoir deux fichiers ; animal.ind et plante.ind. Si oui, nous pouvons passer à la deuxième compilation XeLaTeX

Deuxième compilation XeLaTeX

Maintenant, recompilez votre fichier .tex avec XeLaTeX.

Vous devriez obtenir le fichier ci-dessous.

Premiers index avec xindy

On trouve bien les deux index, triée selon l’ordre alphabétique, avec les lettres accentuées bien placées.

On constate cependant une différence avec une compilation classique avec makeindex : les mots sont regroupés par lettres initiales, avec l’initiale affichée en début de chaque groupe. Nous verrons plus tard comment modifier l’apparence de cette initiale, voire la supprimer, lorsque nous aborderons la personnalisation de l’apparence de l’index.

Automatiser les compilations : latexmk

Par rapport à l’utilisation d’indextools + imakeidx nous avons perdu un peu au change : il faut procéder à une compilation supplémentaire de XeLaTeX, et en plus il faut compiler chaque fichier .idx.

En générale la deuxième, voire la troisième, compilation XeLaTeX est nécessaire, notamment si on a une bibliographie, des renvois internes et une tables des matières. Cependant, il serait plus simple d’avoir un outil qui nous fasse toutes ces compilation d’un coup.

Cet outil, c’est latexmk, dont j’ai déjà parlé.

Il nous suffit donc de mettre dans le fichier de configuration latexmkrc ou .latexmkrc :

$pdflatex = "xelatex %S";
$pdf_mode = "1";
$makeindex = "texindy -L french -I xelatex %S";

Pour qu’en ligne de commande un :

$ latexmk fichier.tex

fasse toutes les compilations.

Notes

[1Pour ceux qui ne savent pas pourquoi je conseille XeLaTeX, lisez l’introduction de mon livre.

[2Je suppose que vous avez la police Linux Libertine installé sur votre ordinateur. Si ce n’est pas le cas, vous pouvez commenter la ligne correspondante, cela ne change rien au problème, c’est juste plus esthétique.

[3En fait c’est possible mais en appelant XeLaTeX avec certains options spécifiques. Peut importe, nous allons apprendre ici à utiliser latexmk pour simplifier.

[4Par exemple : en français on classe d’abord sans tenir compte des accents, puis on les intègre dans un second classement ; en espagnol la ligature « ll » est classée comme une lettre à part, entre « l » et « m ».

Vos commentaires

  • Le 15 avril 2015 à 04:19, par alfa8my En réponse à : Premier pas avec xindy

    C’est super, mais attention aux fautes d’orthographe et de grammaire ! C’est « éléphant », pas « élèphant », et « courgettes » ! Sans parler du corps du texte…

  • Le 15 avril 2015 à 09:48, par Maïeul En réponse à : Premier pas avec xindy

    pour ou « éléphant » je n’entend pas en général la différence entre le « é » et le « è », et j’étais donc persuadé que les 2 orthographes existaient. Dont actes.

    Pour le reste j’écrit ce blog et fais ces tests sur mon temps personnel, cela me prend déjà pas mal de temps, qui plus est en soirée. Vous m’excuserez de préférez me concentrer sur le fond que sur la forme d’une orthographe, qui n’a jamais été ma tasse de thé, et qui du reste relève bien souvent plus de l’arbitraire que de la simple logique.

Qui êtes-vous ?

Pour afficher votre trombine avec votre message, enregistrez-la d’abord sur gravatar.com (gratuit et indolore) et n’oubliez pas d’indiquer votre adresse e-mail ici.

Ajoutez votre commentaire ici

Ce champ accepte les raccourcis SPIP {{gras}} {italique} -*liste [texte->url] <quote> <code> et le code HTML <q> <del> <ins>. Pour créer des paragraphes, laissez simplement des lignes vides.

Acheter XeLaTeX appliqué aux sciences humaines

À propos

Titulaire d’un doctorat en théologie et d’un doctorat en histoire, sous la direction conjointe de Frédéric Amsler et d’Élisabeth_Malamut, je commence à partir du 1er août 2017 un travail d’édition critique des Actes de Barnabé.

Dans le cadre de la rédaction de mon mémoire de master puis de ma thèse de doctorat, j’ai été emmené à utiliser LaTeX, et j’ai donc décider de partager mes techniques. En effet, au cours de mes premiers apprentissages, j’ai découvert que les ressources indiquant les outils pour l’utilisation de LaTeX en sciences humaines étaient rares. Ceci m’a conduit à maintenir ou créer plusieurs packages LaTeX et à donner plusieurs formations.

J’ai reçu en 2018 le prix DANTE e.V pour mon travail autour de LaTeX, en particulier autour de reledmac et reledpar.

Par ailleurs, je suis membre actif de la communauté SPIP, au sein de laquelle j’administre le site Spip-Contrib. Je propose sur ce site quelques notes sur SPIP, en général à destination de webmestre.

Il m’arrive également de faire un petit peu de Python, de temps en temps.

Enfin, je tiens un blog de réflexions politiques et religieuses.

Maïeul