Je réalise un index avec indextools et xindy qui doit renvoyer à des numéros de page ainsi qu'à un compteur personnalisé. J'utilise pour cela le code suivant, compilé avec XeLaTeX : Ouvrir dans l'éditeur Overleaf
\documentclass{article} \usepackage{fontspec} \usepackage[xindy]{indextools} \makeindex[title=Index des objets] \usepackage[hyperindex=false]{hyperref} \newcounter{myitem} \setcounter{myitem}{0} \makeatletter \newcommand{\myindex}[1]{% \index{#1}% \indtl@wrindexentry{\jobname}{#1|textit}{\themyitem}% } \makeatother \newcommand{\printitem}[1]{% \refstepcounter{myitem}\themyitem. #1\label{itm:\themyitem}\myindex{#1}.\par } \begin{document} \printitem{Un item} \printitem{Un autre item} \printitem{Encore un item} \printindex \end{document} et le fichier xdy suivant (modifié d'après https://geekographie.maieul.net/172 pour que les entrées avec l'attribut textit ne renvoient pas au page mais à l'item marqué d'un label) : Ouvrir dans l'éditeur Overleaf
(markup-locclass-list :open "\dotfill ") (define-attributes ("emph")) (markup-locref :open "\hyperpage{" :close "}" :attr "default") (markup-locref :open "\textbf{\hyperpage{" :close "}}" :attr "textbf") (markup-locref :open "\textit{\ref{itm:" :close "}}" :attr "textit") (markup-locref :open "\emph{\hyperpage{" :close "}}" :attr "emph") Cela fonctionne globalement bien, sauf lorsque le numéro de page et mon compteur sont égaux. Il y a alors dans le fichier .idx : Ouvrir dans l'éditeur Overleaf
\indexentry{Un item}{1} \indexentry{Un item|textit}{1} Lors de la compilation avec texindy, ces deux entrées sont considérées comme identiques et seul le numéro de page est indiqué dans l'index. Comment remédier à cela ? Posée 12 Nov '19, 13:30 Namrod |
Je ne sais pas si votre solution est pratique, mais vous pouvez tricher
xindy
, par exemple\indtl@wrindexentry{\jobname}{#1|textit}{\themyitem0000}
et\label{itm:\themyitem0000}