我被指示使用ACM 风格作业的 latex 模板。在.cls 文件他们提供,我可以发现以下警告:
%%% 4) 边注段落、目录、图表列表、
%%% 和页面标题都是被禁止的。
尽管我们被要求使用 ACM 模板,但不管它有多么愚蠢,我们都必须插入目录。
我尝试添加\tableofcontents
如下内容:
\documentclass{acm_proc_10ptArticle-sp}
\begin{document}
\clearpage
\tableofcontents
\newpage
\section{Introduction}
Lipsum
\section{Conclusion}
Lipsum
\end{document}
当我编译时,收到以下错误:
! TeX capacity exceeded, sorry [input stack size=5000].
\@latexerr #1#2->\GenericError
{\space \space \space \@spaces \@spaces \@spa...
l.38 \tableofcontents
If you really absolutely need more capacity,
you can ask a wizard to enlarge me.
此外,我在文件中找到以下部分.cls
:
\def\tableofcontents{\@latexerr{\tableofcontents: Tables of contents are not
allowed in the `acmconf' document style.}\@eha}
我希望找到一个解决方案,而不必使用其他模板文件。我可以做些什么来添加目录而不考虑他们的警告?
答案1
您提供的文件.cls
定义\tableofcontents
为生成一条错误消息(类设计者确实希望阻止生成 ToC):
\def\tableofcontents{\@latexerr{\tableofcontents: Tables of contents are not
allowed in the `acmconf' document style.}\@eha}
您可以通过在.tex
文件中提供合理的定义来覆盖此问题\tableofcontents
;类似这样的内容
\def\contentsname{Contents}
\def\tableofcontents{%
\section*{\MakeUppercase{\contentsname}}%
\@starttoc{toc}%
}
完整示例:
\documentclass{acm_proc_10ptArticle-sp}
\makeatletter
\setcounter{tocdepth}{3}
\def\contentsname{Contents}
\def\tableofcontents{%
\section*{\MakeUppercase{\contentsname}}%
\@starttoc{toc}%
}
\makeatother
\begin{document}
\tableofcontents
\section{Introduction}
Lipsum
\section{Conclusion}
Lipsum
\end{document}
结果显示生成的 ToC: