以下是我制作的代码类型。
\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}