makeindex-按页码排序

makeindex-按页码排序

我正在尝试为我的论文创建一个符号索引。我想按出现顺序对索引项进行排序。换句话说,如果我有$Z$出现在第二页的符号、页面$C$上的符号8th和最后一页的符号$P$,我希望索引显示为

Z, 2 
C, 8
P, 97

你知道如何自动完成吗?

答案1

这是一种使用符号标签并\pageref保持其输入顺序的方法。\pageref在写入文件之前需要扩展 s .idx;通常索引材料是逐字写出的。这甚至允许对同一符号的多个页面引用;在这种情况下,只有第一次出现的符号才应该获得标签。

这个例程需要做更多的工作,因为目前它从\pageref数字中去掉了前导零,所以如果 1-9 页有任何条目,它们将在最多 99 页的书的索引中乱序,等等。(最好将页码标准化为 3 位数字。)我会在时间允许的情况下处理这个问题,但如果别人先到了那里,那就去做吧!

我也不确定在序言中或用罗马数字编号的其他页面上首次引入的符号会发生什么。另一个悬而未决的问题。

\documentclass{book}
\usepackage{makeidx}
\makeindex
\newcommand{\xindex}[2]{\expandafter\index\expandafter{\pageref{#1}#2}}
\begin{document}
\chapter{One}
some text $Z$\label{not:Z}\xindex{not:Z}{@$Z$} some more text.

\newpage
some text $C$\label{not:C}\xindex{not:C}{@$C$} some more text.

\newpage
some text $P$\label{not:P}\xindex{not:P}{@$P$} some more text.
and a second reference to a symbol that first appeared on a previous page
$C$\xindex{not:C}{@$C$} some more text.

\printindex

\end{document}

相关内容