使用文件内容在索引标题项前插入垂直空格

使用文件内容在索引标题项前插入垂直空格

我最近发现了一种看似简单的方法,可以在新的索引标题之前插入垂直空格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方法,因为如果没有它,在我看来,为上述项目添加垂直空间的过程相当复杂(不像在其他地方插入垂直空间;例如,立即每个新标题。

谢谢。

相关内容