我正在使用如下格式化的子索引条目:
\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}