以下是当您将所有注释发送到书的末尾时 pagnote 包的行为的简化。
当笔记中某个名称需要索引时,最好将段落号或页面行号跟在页码后面。
使用下面的简单代码,我在调用 printindex 时获得了计数器值的三倍(即 3)。我尝试了\expandafter
和\edef
,但没有得到任何结果。感谢您的帮助,André
\documentclass{book}
\usepackage{makeidx}
\makeindex
\begin{document}
\newcounter{np}
\setcounter{np}{0}
\def\pageline#1{page #1, line \arabic{np}}
\newenvironment{noteline}{\refstepcounter{np}\noindent\textbf{\arabic{np}.}\space}{\medskip\par}
\begin{noteline} Lion. \index{lion|pageline}\end{noteline}
\begin{noteline} Elephant. \index{elephant|pageline}\end{noteline}
\begin{noteline} Gazelle. \index{gazelle|pageline}\end{noteline}
\printindex
\end{document}
答案1
这是一个解决方案,它将计数器的扩展值np
作为 的第一个参数\pageline
,将索引项作为第二个参数。该命令\indexpl{term}
替换\index{term|pageline}
。
\pageline
用以下几行替换您的定义:
\newcommand\pageline[2]{page #2, line #1}
\newcommand\indexpl[1]{%
\edef\indexplx{\noexpand\index{#1|pageline{\arabic{np}}}}%
\indexplx
}
这是完整的示例及其输出。
\documentclass{book}
\usepackage{makeidx}
\makeindex
\newcounter{np}
\setcounter{np}{0}
\newcommand\pageline[2]{page #2, line #1}
\newcommand\indexpl[1]{%
\edef\indexplx{\noexpand\index{#1|pageline{\arabic{np}}}}%
\indexplx
}
\newenvironment{noteline}{\refstepcounter{np}\noindent\textbf{\arabic{np}.}\space}{\medskip\par}
\begin{document}
\begin{noteline} Lion. \indexpl{lion}\end{noteline}
\begin{noteline} Elephant. \indexpl{elephant}\end{noteline}
\begin{noteline} Gazelle. \indexpl{gazelle}\end{noteline}
\printindex
\end{document}