Makeidx、子条目和破折号

Makeidx、子条目和破折号

以下是我制作的代码类型。

\documentclass{article}
\usepackage{makeidx}
\makeindex
\begin{document}

... something\index{Lois!Lane} ...

\printindex
\end{document}

我想要一个在任何子条目前带有破折号的索引(显然,在相应的条目下)

Marco, Ill, 1
Lois,
 -  Lane, 1 
 -  John, 1

我该怎么做?如果 want 在每个破折号后面都加一个逗号怎么办?像这样

Marco, Ill, 1
Lois,
 -  , Lane, 1 
 -  , John, 1

编辑

如果无法将破折号与 makeidx 完美对齐,那么 Xindy 怎么样?

答案1

这需要makeindex style file进行改变/扩展。

例如,dashindex.ist可以定义为

item_1  "\n \\subitem -- , "
item_x1 "\n \\subitem -- , "

说,子级别前面应该有一个破折号和逗号。

调用流程:

pdflatex foo

makeindex -s dashindex.ist foo

pdflatex foo

\documentclass{article}
\usepackage{xcolor}
\usepackage{makeidx}
\makeindex
\begin{document}

... somethex\index{Lois!Lane} ...

\index{Gandalf!The Grey}
\index{Gandalf!Stormcrow}
\index{Gandalf!Mithrandir}%
\index{Lois!John}
\index{Lois!Clark}

\printindex


\end{document}

在此处输入图片描述

直接操纵\subitem

这解决了缩进问题——在这种情况下,.ist不需要特殊文件。我已将子项缩进设置为5pt,但基本上可以将其更改为任何长度值。

\documentclass{article}
\usepackage{makeidx}
\newlength{\subitemindent}
\setlength{\subitemindent}{5pt}
\makeindex
\makeatletter
\renewcommand{\subitem}{\par\hangindent 40\p@ \hspace*{\subitemindent} -- , }
\makeatother
\begin{document}

... somethex\index{Lois!Lane} ...

\index{Gandalf!The Grey}
\index{Gandalf!Stormcrow}
\index{Gandalf!Mithrandir}%
\index{Lois!John}
\index{Lois!Clark}

\printindex

\end{document}

在此处输入图片描述

相关内容