在不支持它的文档类中定义 \tableofcontents

在不支持它的文档类中定义 \tableofcontents

我需要使用 sigchi 文档类来写一篇论文:https://github.com/sigchi/Document-Formats/blob/master/LaTeX/sigchi.cls

我还需要在第一页包含一个目录,但是使用标准\tableofcontents会产生堆栈溢出:

TeX capacity exceeded, sorry [input stack size=5000].
\@latexerr #1#2->\GenericError

事实证明,此模板中通常禁止使用目录,如 .cls 文件所示:

\def\tableofcontents{\@latexerr{\tableofcontents: Tables of contents are not
  allowed in the `acmconf' document style.}\@eha}

如果我从 .cls 文件中注释掉这一位,我会收到未定义的控制序列错误。

那么,我猜想\tableofcontents命令需要由文档类明确定义?就我而言,不需要。我该如何添加它?我可以从标准article文档类中获取命令定义的源代码并将其粘贴到我的 sigchi.cls 中吗?或者有我可以使用的包吗?

编辑

这是只有几个部分的 MWE。添加后,它将无法编译\tableofcontents

\documentclass{sigchi}

\begin{document}

\section{First section}
\subsection{Subsection}

\section{Second section}

\end{document}

答案1

sigchi.cls不是用于论文的,它缺少排版论文所需的几个功能(或对其进行了奇怪的重新定义)

最简单的方法是使用\tableofcontents由以下机构提供的版本的“副本”article.cls

请注意,页面布局很尴尬,但这也是另一个问题。

\documentclass{sigchi}

% Perhaps useful?
%\usepackage[paper=letterpaper]{geometry}

\makeatletter
\newcommand{\contentsname}{Contents}% For example
\renewcommand{\tableofcontents}{%
  \section*{\contentsname}
  \@starttoc{toc}
}

% sigchi.cls does \let\thepage\relax (don't ask!), so define it again
\newcommand{\thepage}{\arabic{page}}

\makeatother

\begin{document}
\tableofcontents
\clearpage
\section{First section}
\subsection{Subsection}

\section{Second section}

\end{document}

相关内容