如何调试 todonotes 问题 (expandafter {\@captype)

如何调试 todonotes 问题 (expandafter {\@captype)

在 LaTeX 文档(使用revtex-4.2todonotes)中,我遇到了与待办事项注释相关的错误问题——这些错误似乎很不稳定,而且我不知何故无法调试。该问题似乎与一定数量的todonotos(大约 40 个)有关,但更广泛的情况如下:

使用 pdflatex (14159265-2.6-1.40.20,TeX Live 2019)编译文档时出现以下错误

./document.tex:441: Undefined control sequence.
<argument> ...tally@float \expandafter {\@captype 
                                                  }
l.441    not?}
              closer to the cation the Coulomb attraction grows and results ...

./document.tex:441: Missing \endcsname inserted.
<to be read again> 
                   \ftype@ 
l.441    not?}
              closer to the cation the Coulomb attraction grows and results ...

./document.tex:441: Extra \endcsname.
\tally@float ...ame ftype@#1\endcsname \endcsname 
                                                  \@ifnotrelax \@tempa {\@if...l.441    not?}
              closer to the cation the Coulomb attraction grows and results ...

只要待办事项注释的总数小于 40,注释掉文本的前半部分或后半部分(或文档的任何好部分)即可正常运行,不会出现错误。也就是说,没有任何单个待办事项注释或文档的任何其他代码会导致错误,只有错误总数才会发生。

但是,创建一个最小示例后,我发现待办事项注释本身对于 100 条注释来说没有问题:

\pdfoutput=1
%\documentclass[galley]{revtex4-2}
\documentclass{article}
\usepackage[textsize=tiny]{todonotes}
\usepackage{forloop}
\begin{document}
\noindent Testing the number of todonotes without error \\
\newcounter{ct}
\forloop{ct}{1}{\value{ct} < 101}%
{%
   \noindent testing \todo{Note \thect}note \thect. \par
}
\end{document}

如果我在上面的示例中选择 revtex4-2 文档类而不是文章,我会收到其他一些错误(我认为这是 revtex4-2 与 forloop 不兼容)

./minimal.tex:13: Output loop---100 consecutive dead cycles.
<argument> ...do {Note \thect }note \thect . \par 
                                                  \addtocounter {ct}{1}\forl...l.13 }

现在,这里有一个已知问题吗?我的原始文档可能存在什么实际问题?我该如何继续系统地调查这个问题?

让我指出的是,当我向 revtex 文档添加大量待办事项注释时,我会反复看到同样的行为。

答案1

todonotes我遇到了与和类似的问题revtex-4.2,在一定数量的注释之后,Undefined control sequence captype会出现与 相关的错误(类似于 OP,没有人具体的注意正在触发它)。

把这个看起来具有侵入性的内容放在\def\序言中可以解决问题:

\makeatletter \def\@captype{figure} \makeatother

对我来说没有任何明显的副作用。也许它有助于调试问题并找到更好的解决方案。

相关内容