我最近发现了一种看似简单的方法,可以在新的索引标题之前插入垂直空格filecontents
---
考虑一下代码
\begin{filecontents*}{\jobname.mst}
item_0 "\n\\vspace{15pt}\\item "
\end{filecontents*}
\documentclass{book}
\usepackage{imakeidx}
\let\cleardoublepage\clearpage
\makeindex
\usepackage[initsep=25pt]{idxlayout} % initsep declares spacing between letter groups.
\begin{document}
\LARGE
Some words.\index{HEADING1! Subheading! Index entry1.}
Some words.\index{HEADING2! Subheading! Index entry2.}
Some more words.\index{NEXT SET OF HEADINGS1! Subheading! Index entry1.}
Some more words.\index{NEXT SET OF HEADINGS2! Subheading! Index entry2.}
\idxlayout{columns=1}
\printindex
\end{document}
得出
我唯一担心的是,这种方法会增加规定的垂直空间全部标题组;因此,到每个新字母下的第一个标题组(在这个例子中,H和否)——从而增加了指数和H分组,以及之间的H分组和否分组。
filecontents
请注意,如果代码中不使用,Index 输出将如下所示:
我希望\vspace{15pt}
在所有指示的项目之前插入额外的垂直空间(在本例中为除了代表给定字母下的第一个字母的那些。
问题:如果不诉诸可怕的“黑客”(这里的术语合适吗?)例如\index{\vspace{-15pt}HEADING1! Subheading! Index entry1.}
和\index{\vspace{-15pt}NEXT SET OF HEADINGS1! Subheading! Index entry1.}
——顺便说一句,可能需要最多 26 次这样的插入——我想知道是否有一种有效的方法来实现这一点?
评论:我不愿意放弃这种filecontents
方法,因为如果没有它,在我看来,为上述项目添加垂直空间的过程相当复杂(不像在其他地方插入垂直空间;例如,立即后每个新标题。
谢谢。