makeindex 不起作用

makeindex 不起作用

我有一个文件statuts.tex,我想添加索引。有人说索引属于ams包,所以我做了以下事情:

\documentclass[12pt]{article}
\usepackage{amsmath}
\usepackage{amssymb}
\usepackage{amsfonts}
\makeindex{terms}
\begin{document}
body
\index{terms}{abc}
% \printindex{terms}{Index of Terms}
\end{document}

我的一部分makefile

statuts.pdf: statuts.tex
    latex statuts.tex && \
    makeindex statuts.idx && \
    latex statuts.tex && \
    makeindex statuts.idx && \
    latex statuts.tex && \
    dvips statuts.dvi -o statuts.ps && \
    ps2pdf statuts.ps statuts.pdf

然而,一开始我就遇到了一个错误:

Writing index file statuts.idx

! LaTeX Error: Missing \begin{document}.

See the LaTeX manual or LaTeX Companion for explanation.
Type  H <return>  for immediate help.
 ...                                              

l.3 \makeindex{t
                erms}
?

我不想使用该包makeidx,因为我的文档中已经使用了ams其他包,并且存在冲突。另外,我认为该包没有amsmidx必要...

有人可以帮忙吗?

答案1

我会用它imakeidx来满足我的所有index需求。它太简单了。

另存为以下内容myfile.tex

\documentclass[12pt]{article}
\usepackage{imakeidx}
\makeindex[name=terms,title=Index of terms,columns=1]
\begin{document}
  body
  \index[terms]{abc}
  \printindex[terms]
\end{document}

然后使用 进行编译pdflatex --shell-escape myfile。 (或latexdvipsps2pdf)就完成了。无需makeindex自己使用 进行编译。

在此处输入图片描述

作者本人有一个很棒的博客这里。现在自己猜猜作者吧。

答案2

确实有一个由 Barbara Beeton 编写的软件包,作为 AMS LaTeX 工具的一部分发布,它引入了一种类似于你想要的语法,名为amsmidx,但它可以工作仅有的与支持的 AMS 类\chapter

\documentclass[12pt]{amsbook}
\usepackage{amsmidx}
\makeindex{terms}
\begin{document}
body
\index{terms}{abc}
\Printindex{terms}{Index of Terms}
\end{document}

注意\Printindex而不是\printindex

对其进行修补使其能够与 配合使用article是可能的。但我认为最好的方法是使用imakeidx

相关内容