向目录添加多个索引时修复页码引用

向目录添加多个索引时修复页码引用

朋友们,我遇到了一个有趣的错误:当我在目录中添加多个索引时,所有页码引用都乱了。这可能很容易解决,但我不知道它是什么。

考虑这个不太简单的例子(抱歉,我别无选择):

\documentclass[twoside]{book}

\usepackage{idxlayout}

\usepackage[useindex]{splitidx}

\makeindex

\newindex[Index A]{ia}
\newindex[Index B]{ib}
\newindex[Index C]{ic}
\newindex[Index D]{id}

\newcommand*\indexall[1]{%
\sindex[ia]{#1}%
\sindex[ia]{#1#1}%
\sindex[ia]{#1#1#1}%
\sindex[ia]{#1#1#1#1}%
\sindex[ia]{#1#1#1#1#1}%
\sindex[ia]{#1#1#1#1#1#1}%
\sindex[ia]{#1#1#1#1#1#1#1}%
\sindex[ia]{#1#1#1#1#1#1#1#1}%
\sindex[ib]{#1}%
\sindex[ib]{#1#1}%
\sindex[ib]{#1#1#1}%
\sindex[ib]{#1#1#1#1}%
\sindex[ib]{#1#1#1#1#1}%
\sindex[ib]{#1#1#1#1#1#1}%
\sindex[ib]{#1#1#1#1#1#1#1}%
\sindex[ib]{#1#1#1#1#1#1#1#1}%
\sindex[ic]{#1}%
\sindex[ic]{#1#1}%
\sindex[ic]{#1#1#1}%
\sindex[ic]{#1#1#1#1}%
\sindex[ic]{#1#1#1#1#1}%
\sindex[ic]{#1#1#1#1#1#1}%
\sindex[ic]{#1#1#1#1#1#1#1}%
\sindex[ic]{#1#1#1#1#1#1#1#1}%
\sindex[id]{#1}%
\sindex[id]{#1#1}%
\sindex[id]{#1#1#1}%
\sindex[id]{#1#1#1#1}%
\sindex[id]{#1#1#1#1#1}%
\sindex[id]{#1#1#1#1#1#1}%
\sindex[id]{#1#1#1#1#1#1#1}%
\sindex[id]{#1#1#1#1#1#1#1#1}}%
\begin{document}

\tableofcontents

\chapter{My text}

Hello world.

\indexall{A}
\indexall{B}
\indexall{C}
\indexall{D}
\indexall{E}
\indexall{F}
\indexall{G}
\indexall{H}
\indexall{I}
\indexall{J}
\indexall{K}
\indexall{L}
\indexall{M}
\indexall{N}
\indexall{O}
\indexall{P}
\indexall{Q}
\indexall{R}
\indexall{S}
\indexall{T}
\indexall{U}
\indexall{V}
\indexall{W}
\indexall{X}
\indexall{Y}
\indexall{Z}

\addcontentsline{toc}{chapter}{Index A}
\printindex[ia]
\addcontentsline{toc}{chapter}{Index B}
\printindex[ib]
\addcontentsline{toc}{chapter}{Index C}
\printindex[ic]
\addcontentsline{toc}{chapter}{Index D}
\printindex[id]

\end{document}

(每次运行此代码,就会有一只小猫死去)

生成的目录如下:

我的目录

至少,这次我的 ToC 中出现了奇数。上次尝试时出现了偶数(!)。

正确的引用应该是:

Index A -  5
Index B -  9
Index C - 13
Index D - 17

如果我把\cleardoublepage索引放在前面,我会得到这个目录(第一个索引是固定的):

表 2

我真的不明白发生了什么。我甚至无法建立起一个模式。

有人有建议吗?

(提出这个问题时没有伤害任何动物)

答案1

\cleardoublepage之前是否尝试过发出命令每个 \addcontentsline命令?

相关内容