如何使用 amsmidx 包包含多个索引

如何使用 amsmidx 包包含多个索引

我正在使用 gsm-l 类文件编写一段小文本。我希望在末尾有两个索引,一个用于名称,一个用于主题。因此,按照 AMS 说明中的指示,我包括了以下行

\usepackage{amsmidx}

然后我在序言中写了以下两行:

\makeindex{name}

\makeindex{subj}

最后,我把这两个命令

\Printindex{name}{Name Index}

\Printindex{subj}{Subject Index}

但事情并不像预期的那样。首先,如果我包含该hyperref包,则每个\index命令都会出现大约两个错误。但即使我不包含该hyperref包,我的文档也不包含索引。根据日志,处理器找不到 name.idx 或 subj.idx,即使我可以在目录中看到这两个文件,并且它们包含所有条目。我将包含一个小示例来显示出了什么问题:

\documentclass[makeidx]{gsm-l}

\usepackage[latin1]{inputenc}

\usepackage{amsmidx}

%\usepackage{hyperref}

\makeindex{name}

\makeindex{subj}

\def\thechapter{\Roman{chapter}} 

\begin{document}

\frontmatter

\title{TeX}

\maketitle

\tableofcontents

\mainmatter

\chapter{Test}

Here are some things\index{subj}{things} I\index{name}{This Guy} have been working on.

\appendix

\include{}

\backmatter

\Printindex{name}{Name Index}

\Printindex{subj}{Subject Index}

\end{document}

我将非常感激任何对此提供帮助的帮助。

答案1

我没有使用该类gsm-lamsmidx包,但我怀疑以下引用amsmidx.txt是相关的:

处理文件时,将生成索引词文件 (filename).idx。要对索引词进行排序,请使用 Makeindex 单独处理 .idx 文件;这将创建 (filename).ind 文件,下次处理 .tex 文件时,该文件将由 \Printindex 输入。

检查你的工作目录是否包含文件name.indsubj.ind。如果没有,在第一次运行 LaTeX 后,你必须运行 makeindex 两次(大概从命令行):

makeindex name

makeindex subj

至于hyperref:它修补了许多 LaTeX 内核和类命令,因此可能与您的自定义类不兼容。

相关内容