如何阻止索引字母标题位于底部?

如何阻止索引字母标题位于底部?

我有一个(三列)索引,其中字母标题位于每个字母条目集的开头。在某些情况下,字母标题位于底部,而后续条目从下一列的顶部开始。我希望字母标题与字母条目(的开头)位于同一列;要么移至下一个条目的下一列的头部,要么移至标题下方。以下是我的.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

相关内容