我有一个文件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
。 (或latex
→ dvips
→ ps2pdf
)就完成了。无需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
。