对索引使用不同的计数器(makeidx)

对索引使用不同的计数器(makeidx)

我有类似的问题问题: 我在用着制作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}

因此,不幸的是,使用 进行编译后lualatexmakeindex 索引中的条目“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

相关内容