构建以下代码(pdflatex、makeindex、pdflatex)会导致错误
! LaTeX Error: Environment multicols undefined.
代码:
\documentclass{svmono}
\usepackage{makeidx}
\makeindex
\begin{document}
\frontmatter
\mainmatter
\index{foo}Text
\backmatter
\printindex
\end{document}
我当然可以使用(并将在下面的答案中注明)来消除错误\usepackage{multicol}
,但我想了解发生了什么:svmono 是否只是未能声明依赖关系?
答案1
svmono.cls
包含以下行
\if@threecolind
\begin{multicols}{3}[\chapter*{\indexname}%
\else
\begin{multicols}{2}[\chapter*{\indexname}%
\fi
在环境定义的“开始”部分index
。如您所见,索引将使用环境构建multicols
,这需要multicol
包。
的文档svmono
提到,建立索引需要makeidx
和multicol
包,因此您需要加载这两个包。