将 tocstyle 与 ACM acmart 样式结合使用

将 tocstyle 与 ACM acmart 样式结合使用

最近的acmart风格(尝试这里如果该链接已损坏)似乎无法正常工作tocstyle。如果我pdflatex对以下文档运行两次,第二次运行将失败(见下文)。

\documentclass{acmart}

\usepackage{tocstyle}
\usetocstyle{standard}

\begin{document}
\title{Title}
\tableofcontents
\section{Intro}
text
\end{document}

这是我收到的错误消息:

! Missing \endcsname inserted.
<to be read again> 
                   \@@par 
l.8 \tableofcontents

也许有一个类似于问题中的修复程序titletoc? 不幸的是我不知道如何找出重新定义tocstyle的内部结构。hyperref

答案1

我认为对 进行胡乱修改并不是一个好主意acmart,它应该用于提交给 ACM,因此具有明确定义的风格(在可用选择中)。

问题是tocstyle应该在 之前加载hyperref,但是该类acmart已经加载它了。

acmart-preload-hook.tex解决方法是在工作目录中创建一个名为的文件,其中包含

\let\LoadClassOrig\LoadClass
\renewcommand\LoadClass[2][]{%
  \LoadClassOrig[#1]{#2}%
  \usepackage{tocstyle}%
}

acmart文档第 2.13 节所建议的那样。

相关内容