Commandes d’index et de bibliographie

Les index et bibliographies ne sont pas terminés en une seule compilation. LaTeX écrit d’abord la matière brute (les entrées \index vont dans .idx, les clés \cite dans .aux) ; puis un programme séparé la trie et la met en forme ; enfin LaTeX tourne de nouveau pour intégrer le résultat au texte. Cette page couvre ces assistants en coulisse : les processeurs d’index makeindex / mendex / upmendex et les processeurs bibliographiques bibtex / pbibtex / upbibtex / biber.

Un programme séparé fait le travail

Écrire \index{...} ou \cite{...} dans le texte ne fait pas trier quoi que ce soit par LaTeX lui-même. La première compilation émet des données brutes (.idx, .aux) ; vous lancez ensuite le programme d’index ou de bibliographie dessus pour produire un fichier mis en forme (.ind, .bbl) ; puis vous compilez de nouveau pour l’intégrer. Gérer à la main cet ordre et le nombre de passes est fastidieux ; en pratique, on le confie donc à un outil de build comme latexmk.

makeindex / mendex / upmendex — construire l’index

makeindex est l’outil de base. Il lit le .idx écrit par \index, le trie et produit .ind. Vous contrôlez la forme de sortie avec -s style.ist. Ses traitements internes sont toutefois mono-octet, donc il ne trie pas le japonais dans le bon ordre de lecture.

mendex est la version adaptée au japonais : il classe les kanji selon leur lecture (yomi). Donnez une lecture avec la syntaxe reading@term, et il triera selon ce kana dans l’ordre japonais. upmendex est son successeur Unicode/multilingue : ses traitements internes sont en Unicode, et il trie le japonais, le latin, le grec, le cyrillique, etc. avec ICU (l’algorithme de collation Unicode). Il est compatible vers le haut avec les styles makeindex/mendex et constitue le choix standard pour les index en upLaTeX moderne ou LuaLaTeX-ja.

terminal
makeindex document.idx              # → document.ind
upmendex -s mystyle.ist document.idx # 多言語・スタイル指定 / multilingual, with a style

Un index minimal charge makeidx, déclare \makeindex dans le préambule, place \index{...} dans le corps, puis appelle \printindex à l’endroit où l’index doit apparaître. Le point clé est que \index n’imprime pas de texte visible sur la page ; il écrit du matériau pour le processeur d’index. Lorsque le tri et l’affichage doivent différer, utilisez sort-key@printed-term, par exemple latex@LaTeX.

latex
\documentclass{jsarticle}
\usepackage{makeidx}
\makeindex
\begin{document}
LaTeX\index{らてふ@LaTeX} で索引を作ります。
\printindex
\end{document}

bibtex / pbibtex / upbibtex / biber — construire la bibliographie

bibtex (Oren Patashnik, 1985) est l’outil classique. Il fait correspondre les clés \cite de .aux avec votre base .bib et produit .bbl selon un style .bst. Pour les champs japonais et leur tri, utilisez pbibtex (famille pTeX) ou upbibtex, compatible Unicode (famille upTeX).

biber est le backend du biblatex moderne. Écrit en Perl, il offre une prise en charge Unicode complète, un tri fondé sur l’algorithme de collation Unicode, des références croisées puissantes, la validation du modèle de données et d’autres fonctions au-delà du BibTeX traditionnel. Si votre document utilise biblatex, partez d’abord sur biber. L’option commune -min-crossrefs=N (2 par défaut) fixe le seuil pour crossref : une entrée référencée par au moins N autres devient une entrée bibliographique autonome ; sinon ses champs sont intégrés aux entrées qui la citent.

terminal
bibtex document     # 拡張子なし。document.aux を読む / no extension; reads document.aux
biber  document     # biblatex を使う場合 / when the document uses biblatex

Règle pratique : pour le traditionnel \bibliography + .bst, utilisez bibtex (ou up/pbibtex pour le japonais). Si vous voulez la voie multilingue et riche en fonctions via biblatex, utilisez biber. Lorsqu’un modèle de laboratoire ou de revue impose un .bst, suivez ce modèle au lieu de forcer une migration. Pour un nouveau projet où vous maîtrisez la chaîne de citation, biblatex + biber est plus solide pour Unicode et le contrôle fin.

Dans la famille BibTeX, le fichier .bst contrôle le style de sortie ; utilisez donc jplain, plainnat ou ce que la revue ou le laboratoire impose. Avec biblatex, les options LaTeX choisissent le style tandis que biber gère le traitement des données en arrière-plan. Dans les deux cas, les citations ne seront pas résolues si les clés de citation dans le corps ne correspondent pas aux clés de .bib. Construisez d’abord un exemple minimal avec une seule entrée, puis transférez toute la bibliographie ; cela limite les points d’échec.

Quand le flux échoue, demandez d’abord si LaTeX a écrit la matière brute : .idx pour un index, .aux et .bcf pour les bibliographies biblatex. Lisez ensuite le journal de makeindex, upmendex, bibtex ou biber. Enfin, relancez LaTeX et vérifiez que le .ind ou le .bbl généré a bien été intégré au corps. Déboguer dans cet ordre réduit vite le champ de la panne.

Les exécuter dans l’ordre

La séquence typique est « compilation → bibliographie/index → compilation → compilation ». Pour upLaTeX, par exemple, cela ressemble à ceci. Cela dit, plutôt que de la saisir à la main, le plus sûr est de laisser latexmk et les outils similaires déterminer l’ordre et le nombre de passes.

terminal
uplatex  document      # .aux / .idx を生成
upbibtex document      # 文献を整形 (.bbl)
upmendex document      # 索引を整形 (.ind)
uplatex  document      # 取り込み(番号確定のためもう一度流すことも)
uplatex  document