我不知道这个错误在抱怨什么,也不知道该如何修复它。以下是最低限度可解释的问题:
\documentclass{revtex4-2}
\usepackage{float}
\usepackage{amsmath}
\usepackage{subfig}
\usepackage{footnpag}
\usepackage{algorithm}
\usepackage{algpseudocode}
\usepackage{placeins}
\usepackage{comment}
\begin{document}
\begin{algorithm}[!ht]
\caption{caption}
\label{alg:flipflop}
\begin{algorithmic}[1]
\Procedure{blah}{}
\State blah
\While{blah}
\State blah
\EndWhile
\State blah
\EndProcedure
\end{algorithmic}
\end{algorithm}
\end{document}
返回以下三个错误的字符串:
! Missing \endcsname inserted.
<to be read again>
\c@float@type
l.510 \end{algorithm}
The control sequence marked <to be read again> should
not appear between \csname and \endcsname.
! Missing number, treated as zero.
<to be read again>
\endcsname
l.510 \end{algorithm}
A number should have been here; I inserted `0'.
(If you can't figure out why I needed to see a number,
look up `weird error' in the index to The TeXbook.)
! Extra \endcsname.
<recently read> \endcsname
l.510 \end{algorithm}
I'm ignoring this, since I wasn't doing a \csname.
答案1
该问题似乎是由 float.sty 中的错误引起的,该错误出现在其定义中\newfloat
。算法包使用此宏来定义算法环境。如果使用文档类 article,则不会出现该错误,但使用 revtex4-2 时会出现该错误。这是因为 revtex4-2 修改了浮点数的实现方式。
Revtex4-2 确实提供了一个错误修复,但它仅在文档开始后才生效。
可以通过在源文件中的以下行之前添加以下行来解决该问题\usepackage{algorithm}
:
\usepackage{float}
\makeatletter
\let\newfloat\newfloat@ltx
\makeatother
答案2
有完全相同的错误。注释掉\usepackage{algpseudocode}
对我有用。