! 缺失数字,视为零。和 ! 额外的 \endcsname 使用算法、算法包的错误

! 缺失数字,视为零。和 ! 额外的 \endcsname 使用算法、算法包的错误

我不知道这个错误在抱怨什么,也不知道该如何修复它。以下是最低限度可解释的问题:

\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}对我有用。

相关内容