使用 imakeidx 抑制子条目中的重复条目

使用 imakeidx 抑制子条目中的重复条目

谢谢大卫·卡莱尔他帮助我按中间名对索引条目进行排序。现在我希望关联的子条目不重复条目的文本:因此条目将读作

Gaius Julius Sneezer
    Hayfever, 1
    March, 1

而不是每次都重复输入。

\documentclass[a4paper]{article}
\usepackage{imakeidx}

\makeindex[title=Index of Romans]

\newcommand\rindex[1]{\xrindex#1\relax}
\def\xrindex#1 #2 #3\relax{\index{#2 #1 #3@#1 #2 #3}}

\begin{document}
This is text. 
\rindex{Gaius Julius Sneezer!Hayfever}
\rindex{Gaius Julius Sneezer!March}
\rindex{Marcus Tullius Snifero!Allergies}
\rindex{Marcus Tullius Snifero!Dust}

\printindex

\end{document}

答案1

在此处输入图片描述

我为这些案例引入了第二个命令!,当然您可以变得更复杂,并使用单个命令进行一些测试,但我会保持简单。

\documentclass[a4paper]{article}
\usepackage{imakeidx}

\makeindex[title=Index of Romans]

\newcommand\rrindex[1]{\xrrindex#1\relax}
\def\xrrindex#1 #2 #3!#4\relax{\index{#2 #1 #3@#1 #2 #3!#4}}

\begin{document}
This is text. 
\rrindex{Gaius Julius Sneezer!Hayfever}
\rrindex{Gaius Julius Sneezer!March}
\rrindex{Marcus Tullius Snifero!Allergies}
\rrindex{Marcus Tullius Snifero!Dust}

\printindex

\end{document}

相关内容