Accueil > LaTeX > Index > Un index des sources primaires (2)

Un index des sources primaires (2)

vendredi 14 janvier 2011, par Maïeul

Suite de mon précédent article sur la manière de faire un index des sources primaires en LaTex.

J’explique comment se servir du script Python que j’ai développé [1].

[Mise à jour : j’ai trouvé une solution bien meilleure. En conséquent, cette contribution est obsolète.]

Utilisation du script : installation des paquets Python

Il faut avoir Python installé sur son ordinateur. Il est livré en standard sous MacOs, et je pense dans la plupart des distributions Linux.

Pour Windows, c’est par là : http://www.python.org/download/windows/.

Il faut ensuite installer le paquet zbibtex.

Pour ce faire :
 récupérer le fichier .gz, le décompresser.
 avec la console de commande (le Terminal sous MacOs), se rendre dans le dossier correspondant.
 taper python setup.py install, voire sudo python setup.py install pour avoir les droits d’administrateur.

Bien !

Utilisation du script : organisation du fichier .bib

Le script indexera avec comme entrée principale l’auteur, et comme entrée secondaire le titre.

Pour l’auteur, il prendra la valeur du champ userb et, à défaut, celle du champ author. Pour le titre, il prend le champ indextitle et, à défaut, le champ title.

Il faut installer le script .py à côté du fichier LaTex source. Ce script ne fonctionne, évidemment, que si vous avez mis en œuvre la première étape, l’étape LaTex, décrite dans mon article précédent.

Par ailleurs les clefs de référence bibliographique ne doivent contenir que des caractères alphanumériques : pas de signe de ponctuation, de tirer ou autre. Sinon cela fait planter le script ...

Enfin votre fichier doit être encodé en unicode, et utilisé les accents unicodes, et non pas les pseudo accents LaTex [2].

Utilisation du script : personnalisation des variables

Ouvrez le fichier avec un éditeur de texte. Vous trouverez les lignes suivantes.

#### definition des constante
modification = [('biblio.bib','principal.sox','principal.sod'),('biblio.bib','principal.sex','principal.sed')]

Chaque série entre parenthèses correspond à un index différent. La première valeur correspond au fichier .bib. La seconde au fichier produit par la première compilation de LaTex. La troisième à celui utilisé par la seconde compilation, et produit par la compilation avec MakeIndex.

Ainsi, si votre fichier père s’appelle main.tex, que votre fichier de bibliographie s’appelle bibliographie.bib, et que pour la déclaration des index vous avez mis dans votre en-tête latex :

\usepackage{index}
\makeindex
\newindex{sources}{pmx}{pmd}{Index des sources}
\newindex{secondaires}{bix}{bid}{Index des études}

Il faudra que vous mettiez

#### definition des constante
modification = [('bibliographie.bib','main.pmx','main.pmd'),('bibliographie.bib','mainbix','main.bid')]

Ensuite, avec votre invite de commande, après la première compilation LaTex du fichier principal, faite :python index.py

Cela va lire les fichiers d’index, les modifier pour insérer une indexation correcte, puis les compiler avec MakeIndex. Inutile donc de compiler ensuite avec MakeIndex.

L’insertion sera de la forme :
\textsc{Nom}, Prénoms (particule), suffixe!titre
Important : en revanche, il sera nécessaire de passer par cette étape après chaque compilation LaTex du fichier principal. En effet, chaque compilation remplace le fichier auxiliaire.

Il vous reste ensuite à recompiler avec LaTex le fichier principal. Et voilà, vous obtiendrez un index des sources, trié par auteur puis par titre.


J’ai longtemps hésité : fallait-il classer dans la rubrique LaTex ou dans la rubrique Python ? Comme cela concernait un besoin LaTexien, j’ai choisi de mettre cela dans la rubrique LaTex.

Ce script est soumis à la même licence que l’ensemble du site, à savoir Creative Common, pas d’utilisation commerciale, paternité, partage des conditions initiales à l’identique.


[1Pour les Pythoniens, j’espère avoir mis assez de commentaires dans le fichier.

[2Dans BibDesk c’est une option à cocher dans les préférences

Un message, un commentaire ?

Qui êtes-vous ?
Votre message

Pour créer des paragraphes, laissez simplement des lignes vides.

Lien hypertexte

(Si votre message se réfère à un article publié sur le Web, ou à une page fournissant plus d’informations, vous pouvez indiquer ci-après le titre de la page et son adresse.)