如何在索引中合并格式化的页码

如何在索引中合并格式化的页码

如果我在索引中格式化页码,它们会与未格式化的数字一起显示。这是最简单的示例:

\documentclass{article}
\usepackage{makeidx} \makeindex \begin{document} page 1    
\index{foo}        % normal page number
\index{foo|textbf} % bold page number
\index{bar}        % normal page number    
\pagebreak page 2
\index{bar|textbf} % bold page number
\printindex \end{document}

创建以下索引

酒吧, 1,2
foo,1,1

但我更愿意将普通页码和格式化的页码组合为粗体页码,并且还允许在页面序列中使用格式化的页码:

巴,1-2
foo,1

也许页面顺序太复杂,例如,如果第 1 页和第 3 页正常,但第 2 页已格式化。但至少重复的单个页码(在此示例中为“1,1“) 不应该出现在那里。

更精确地说,我不使用,textbf而是bfhref使用自定义的超链接页码,但这不应该是问题

\newcommand{\bfhref}[1]{\textbf{\hyperpage{#1}}}

答案1

idx从文件到的过程ind由命令控制makeindex。我找不到符合您要求的任何选项。删除这些重复页面的另一种方法是*.ind自己处理文件。例如,您可以将模式替换num, \textbf{num}\textbf{num}。使用任何支持正则表达式替换的编辑器都可以轻松完成。

默认情况下,只有三个或更多连续的页面才会缩写为一个范围。

例如

酒吧, 1,2,3--6。

我想这就是你想要的。

相关内容