脚注内的格式化索引条目

脚注内的格式化索引条目

我正在使用如下格式化的子索引条目:

\index{foo!bar@\emph{bar}}

但是,每当我在脚注环境中引用一个子条目时,该子条目就会在索引中重复出现。

\footnote{foo bar\index{foo!bar@\emph{bar}}}

输出将是:

foo
   *bar*, 1
   *bar*, 3

但它应该是

foo
   *bar*, 1, 3

至少之前有一次尝试处理这种情况:这个问题使用新命令解决了这个问题\indexp。但是,我更愿意使用相同的\index命令,因为一方面,使用默认命令更容易;另一方面,我有一堆子文件。

是否有可能以某种方式\renewcommand(或类似的方式)\index产生所需的输出?

平均能量损失

\documentclass{article}
\usepackage{makeidx}
\makeindex
\begin{document}
Kant, KrV\index{Kant!\emph{KrV}}
\footnote{Kant, KrV\index{Kant!\emph{KrV}}}
\printindex
\end{document}

重复条目

答案1

使用letltxmacro。要\index[p]工作,您需要该imakeidx包。

\documentclass{article}
\usepackage{imakeidx}
\makeindex

\usepackage{letltxmacro}
\LetLtxMacro\indexp\index
\renewcommand\index[1]{\indexp[p]{#1}}

\begin{document}
Kant, KrV\index{Kant!\emph{KrV}}
\footnote{Kant, KrV\index{Kant!\emph{KrV}}}
\printindex
\end{document}

相关内容