Le problème
Soit l’exemple complet minimum suivant :
\documentclass[a4paper, notitlepage, 11pt]{article}
\usepackage[xindy]{indextools}
\usepackage{bibleref-french}
\renewcommand{\biblerefindex}[0]{\index[bible]}
\makeindex[name=bible, title=Index des sources bibliques]
\begin{document}
Une ref biblique: \ibibleverse{Lc}(3:12)
\newpage
\printindex[bible]
\end{document}
Première compilation XeLaTeX : production d’un PDF sans index.
Compilation avec xindy
texindy -L french -I xelatex bible.idx
Seconde compilation avec XeLaTeX : un index vide. Ha ! Quid ?
Analyse du problème
Ouvrons le fichier .ind
. On voit effectivement qu’il ne contient que l’introduction de l’index :
\begin{theindex}
\providecommand*\lettergroupDefault[1]{}
\providecommand*\lettergroup[1]{%
\par\textbf{#1}\par
\nopagebreak
}
\end{theindex}
Le problème se situe donc au niveau de texindy
. Regardons donc les messages de compilation. Une ligne nous renseigne sur la cause du problème :
WARNING : unknown attribute `textrm’ ! (ignored)
Rappelons que pour xindy
un attribut correspond à ce qui est mis après un |
lors de l’indexation.
En ouvrant le fichier .idx
produit lors de la compilation, on constate effectivement la présence d’un |textrm
.
\indexentry{Lc\relax \relax @\BRbooktitlestyle {Luc}!003:012@\BRchapterstyle {3}\BRchvsep \BRversestyle {12}|textrm}{1}
À la différence de makeindex
, tout attribut doit être déclaré explicitement dans un fichier .xdy
.
En l’occurrence, le |textrm
ne me paraît pas particulièrement utile. Donc plutôt que de le déclarer dans un .xdy
, nous allons plutôt demander à bibleref
de ne pas l’insérer.
Pour cela, une seule ligne suffit, à mettre dans le préambule :
\renewcommand{\bvidxpgformat}{}
Résultat final
Après cela, recompilons avec XeLaTeX, puis avec texindy
, puis à nouveau XeLaTeX.
L’index est effectivement inséré.
Évidemment, dans le cadre d’un index biblique, il n’est pas utile d’avoir des sectionnement de l’index par lettres. Mais je renvoie à mon article sur la personnalisation de l’apparence des index.