我使用 Miktex 和 Texmaker,想使用 imakeidx 创建一本包含多个索引的书。但是,我遇到了一个问题,即对错误的 *.idx 文件调用 makeindex,因此没有生成索引。
以下 MWE 结果(在 pdfLatex-makeindex-pdfLatex 运行之后)出现在一个有效的单一索引中:
\documentclass{scrbook}
\usepackage{imakeidx}
\makeindex
\begin{document}
\chapter{Chapterheadline}
\section{Sectionheadline}
Peter\index{Peter} arrived at the house\index{House}.
\printindex
\end{document}
但是,当我尝试以下操作时不工作具有两个索引的最小示例,根本没有生成索引。
\documentclass{scrbook}
\usepackage{imakeidx}
\makeindex[name=persons,title=Persons]
\makeindex[name=places,title=Places]
\begin{document}
\chapter{Chapterheadline}
\section{Sectionheadline}
Peter\index[persons]{Peter} arrived at the house\index[places]{House}.
\printindex[persons]
\printindex[places]
\end{document}
第一次运行 pdfLatex 后,生成了两个 *.idx 文件(persons.idx 和 places.idx),并且包含预期的内容。然而,makeindex 运行尝试加载一个名为“mwe.idx”(以 *.tex 文件命名)的文件,该文件显然不存在,因此 Texmaker 很快给出了以下错误:
Input index file build/mwe.idx not found. Usage: makeindex [-ilqrcgLT] [-s sty] [-o ind] [-t log] [-p num] [idx0 idx1 ...]
并且不会创建.ilg/.ind 文件。
在 Texmaker 选项(选项-->配置-->命令)中,我发现 makeindex 是使用“makeindex build/%.idx”调用的。我猜想问题就在这里,但是我不确定要进行哪些更改才能将正确的文件名传递给 makeindex。