\indexsetup、imakeidx 的选项“noclearpage”存在问题

\indexsetup、imakeidx 的选项“noclearpage”存在问题

我正在使用该包imakeidx来生成索引对于我的文档,但是当我使用该选项时,我遇到一个问题noclearpage,即索引不是打印(或者它不打印所有条目 -不完整索引)。

我使用这个选项来避免在下一页中进行索引\clearpage

问题

\indexsetup{level=\section,toclevel=section}

完美运行!但索引传递到下一页,并且

\indexsetup{level=\section,toclevel=section,noclearpage}

指数未打印。

平均能量损失

\documentclass{article}
\usepackage{imakeidx}
\indexsetup{level=\section,toclevel=section,noclearpage} %
\makeindex
\begin{document}
\tableofcontents
\section{F}
a\index{first}
b\index{second}
\section{G}
c\index{third} d\index{four}
\printindex
\end{document}

我不明白这是什么问题?

编辑

我尝试添加nonewpage第一个答案中建议的选项,但问题变得更加严重,因为.idx运行后甚至没有生成文件反复pdflatex(既不工作pdflatex --enable-write18也不pdflatex -shell-escape工作)产生.log喜欢(部分)

...

No file indexsetupproblem.ind.

Package imakeidx Warning: Remember to run (pdf)latex again after calling
(imakeidx)                `makeindex indexsetupproblem.idx'.

[1

{C:/ProgramData/MiKTeX/2.9/pdftex/config/pdftex.map}
\indexentry{first}{1}
\indexentry{second}{1}
\indexentry{third}{1}
\indexentry{four}{1}
]

...

似乎添加该nonewpage选项肯定会阻止文件的创建.idx(文件已创建,但空的)。

答案1

更新

由于我之前的答案不起作用,我向 Enrico Gregorio(的作者和维护者)寻求帮助。正如他告诉我的那样,如果未加载imakeidx选项,则此解决方案需要修复软件包。您可以在 之间找到此修复程序。感谢 egreg。我将此标记为 CW。splitindex\makeatletter\makeatother


nonewpage在使用文章类型文档类并且正在排版多个索引时,禁止发出新页面命令。我们不明白为什么有人会在一篇文章中使用多个索引(除了可能用于包文档,它通常提供宏索引和更改列表)。(egreg 2013,imakeidx文档)

% arara: pdflatex
% arara: makeindex
% arara: pdflatex
% arara: pdflatex

\documentclass{article}
\usepackage[nonewpage]{imakeidx}
\indexsetup{level=\section,toclevel=section} %
\makeindex
\makeatletter
\xpatchcmd{\imki@putindex}
{\immediate}
{\ifimki@disableautomatic\else\immediate}
{}{}
\xpatchcmd{\imki@putindex}
{\endcsname}
{\endcsname\fi}
{}{}
\makeatother
\begin{document}
    \tableofcontents
    \section{F}
    a\index{first}
    b\index{second}
    \section{G}
    c\index{third} d\index{four}
    \printindex
\end{document}

相关内容