![索引——仅在明确请求时才显示页面范围?](https://linux22.com/image/400197/%E7%B4%A2%E5%BC%95%E2%80%94%E2%80%94%E4%BB%85%E5%9C%A8%E6%98%8E%E7%A1%AE%E8%AF%B7%E6%B1%82%E6%97%B6%E6%89%8D%E6%98%BE%E7%A4%BA%E9%A1%B5%E9%9D%A2%E8%8C%83%E5%9B%B4%EF%BC%9F.png)
假设我在第 40 页的顶部提到了亚里士多德。然后从第 41 页的底部到第 43 页讨论了亚里士多德的一个完全不同的论点。我希望索引条目显示为
亚里士多德,40,41-43
但是,放在\index{Aristotle}
第 40 页,然后\index{Aristotle|(}
放在第 41 页,再\index{Aristotle|)}
放在第 43 页,就会出现不需要的
亚里士多德,40–43
所以——标题问题——有没有办法强制索引仅在明确指示时将相邻页码折叠到页面范围内?
我正在使用 Memoir 类,如果这有区别的话!如果我忽略了这个看似非常基本的问题的现有答案,请原谅。
答案1
您可以使用-r
命令行选项运行 MakeIndex。
在下面的例子中我imakeidx
为了方便使用,所以我可以直接传递选项来进行自动调用makeindex
。
\documentclass{memoir}
\usepackage{imakeidx}
\makeindex[options=-r]
\begin{document}
A page with a reference to \index{Aristotle}Aristotle.
\clearpage
A group of pages that describe \index{Aristotle|(}Aristotle
\clearpage
Again about Aristotle.
\clearpage
Again about \index{Aristotle|)}Aristotle.
\printindex
\end{document}
从手册页中:
-r Disable implicit page range formation; page ranges must be created by
using explicit range operators; see SPECIAL EFFECTS below. By default,
three or more successive pages are automatically abbreviated as a range
(e.g. 1--5).