为什么在使用 acmart 类和 todonotes 包时会看到这种奇怪的行为?

为什么在使用 acmart 类和 todonotes 包时会看到这种奇怪的行为?

以下(不完全是)MWE

\documentclass{acmart}
\usepackage{todonotes}
\begin{document}
\title{ACM Class and the todonotes package}
\author{Author}
\maketitle
\todo{A todo.}
\listoftodos
\end{document}

产生以下错误:

! Missing \endcsname inserted.
<to be read again> 
                   \@@par 
l.9 \end
        {document}

而下面的代码

\documentclass{acmart}
\usepackage{todonotes}
\begin{document}
\title{ACM Class and the todonotes package}
\author{Author}
\maketitle
\todo{A todo.}
\listoftodos\\
\end{document}

编译得很好(使用 TeX Live 2017)。

有了该类,article我不必添加换行符\\,或者更一般地,不必添加换行符作为{}解决\listoftodos方法。似乎存在不兼容性?这可以看作是acmart类或todonotes包中的错误吗?谢谢!

答案1

在此处输入图片描述

acmart 有点勇敢地重新定义了内部\@starttoc命令,使其接受两个参数而不是一个,第二个参数是列表中的某种子标题。您可以将该文本(或只是{})放在后面\listof...

\documentclass{acmart}
\usepackage{todonotes}
\begin{document}
\title{ACM Class and the todonotes package}
\author{Author}
\maketitle
\todo{A todo.}


\listoftodos{list of todos}

\end{document}

相关内容