我有一个(三列)索引,其中字母标题位于每个字母条目集的开头。在某些情况下,字母标题位于底部,而后续条目从下一列的顶部开始。我希望字母标题与字母条目(的开头)位于同一列;要么移至下一个条目的下一列的头部,要么移至标题下方。以下是我的.ist
输出样式参数文件MakeIndex
。
% glisterb.ist MakeIndex style file for Glister Book
% @ may be a valid character in some entries
actual '?' % ? instead of @
% output main entry as: \item \idxmark{<entry>}
item_0 "\n\\item \\idxmark{"
delim_0 "}, "
% not forgetting the subitem case
item_x1 "} \n \\subitem "
% Wrap and uppercase head letters
headings_flag 1
heading_prefix "\\doidxbookmark{"
heading_suffix "}"
定义\doidxbookmark
为
\makeatletter
\newcommand{\doidxbookmark}[1]{{\def\@tempa{Symbols}\def\@tempb{#1}%
\centering\bfseries \ifx\@tempa\@tempb %
Analphabetics
\phantomsection%
% \pdfbookmark[0]{Analphabetics}{Analphabetics-idx}%
\else
#1%
\phantomsection%
% \pdfbookmark[0]{#1}{#1-idx}%
\fi%
\vskip\onelineskip\par}}
我正在通过以下方式调用索引
\usepackage[columns=3]{idxlayout}
...
\printindex
我知道最好提供完整的 MWE,但问题直到索引的第四页才显示出来。您真的需要所有代码才能到达那里吗?我认为我的问题可以通过调整headings
中的代码来解决glisterb.ist
。
答案1
\nopagebreak
您可以在 之前使用 来防止在空格处出现分页符\vskip
。