我有类似的问题问题: 我在用着制作idx并且我希望索引使用与不同的计数器\thepage
。我的代码如下所示:
\documentclass{scrbook}
\usepackage{makeidx}
\usepackage{xpatch}
\makeindex
\newcounter{NewCounter}
\setcounter{NewCounter}{5}
\makeatletter % the macro name contains @
\xpatchcmd{\@wrindex}{%
\indexentry{#2}{\thepage}%
}{%
\indexentry{#2}{\NewCounter}%
}
{}{}% <success> and <failure> code not needed
\makeatother
\begin{document}
\stepcounter{NewCounter}\chapter{Test}\index{Test}
\arabic{NewCounter}
\printindex
\end{document}
因此,不幸的是,使用 进行编译后lualatex
,makeindex
索引中的条目“Test”的页码为 (1),而不是 NewCounter (6)。有没有人能帮助我使用xpatchcmd
?提前致谢。
答案1
我找到了一种方法来实现它imakeidx
。对于所有感兴趣的人:
\documentclass{scrbook}
\usepackage{imakeidx}
\newcounter{NewCounter}
\setcounter{NewCounter}{5}
\makeatletter
\newcommand{\Index}[1]{\imki@wrindexentry{MyIndex}{#1}{\theNewCounter}}
\makeatother
\makeindex[name=MyIndex]
\begin{document}
\stepcounter{NewCounter}\chapter{Test}\Index{Test}
\arabic{NewCounter}
\printindex[MyIndex]
\end{document}
我定义了一个自己的索引命令。这个想法在第 15 页\Index
的文档中已经给出了。imakeidx