imakeidx 中的双重计数

imakeidx 中的双重计数

我正在写一篇包含家谱内容的科学论文。因此,我的文件中出现了很多名字。因此,我用 imakeidx 为所有名字创建了一个索引。现在我的问题来了:

有时,两个人的名字相同,并且出现在 pdf 文件的同一页上。因此,具有此名字的条目在索引中仅出现一次。但我希望论文中提到的每个人都出现在索引中。有可能吗?

这是我的最小乳胶代码:

\documentclass[10pt,a4paper]{book}
\usepackage[paper=a4paper,left=25mm,right=25mm,top=25mm,bottom=50mm]{geometry}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage[english]{babel}

\usepackage{imakeidx}
\makeindex[name=A,title={index of mentioned persons},columns=2] 

\begin{document}
John Doe\index[A]{John Doe}\newline
John Doe\index[A]{John Doe}


\printindex[A] 
\end{document}

这个例子的输出如下

John Doe,1

但我想要类似的东西

John Doe,1,1

编辑:请不要质疑我为什么需要它。我知道这看起来很奇怪。我只需要它进行某种统计评估。

答案1

您应该有一个.ind和一个 `.idx 文件。在按字母顺序排列的 .ind 文件中查找“重复”的名称,并观察重复的页码以及任何额外的页码。

Makeindex 有一个“愚蠢”的 ASCII 排序。如果条目不是确切地相同的,空格和所有内容,它们将被分开排序,因此解决方案通常是摆脱“多余的”空格。

在文件中查找名称.idx,该文件按页码顺序排列。由于条目用括号括起来,因此很容易发现异常空格。

现在进入文本文件,找到不匹配的条目并修复它。修复索引中“额外”行中出现的任何其他条目,这样您就不需要再次执行此过程。对以下条目执行此操作全部重复的名称,然后重新运行。

顺便说一句,你永远不会得到列出的条目

John Doe,1,1

同一页面上的所有实例都将列在单个页码下。

相关内容