![算法跨越两列错误与 \prevdepth](https://linux22.com/image/259149/%E7%AE%97%E6%B3%95%E8%B7%A8%E8%B6%8A%E4%B8%A4%E5%88%97%E9%94%99%E8%AF%AF%E4%B8%8E%20%5Cprevdepth%20.png)
我正在尝试使用该algorithm
命令在两列文档中显示跨两列的算法。但是,我收到了一条\prevdepth
我无法理解的错误消息。下面是一个说明该问题的最小示例。请注意,此示例使用签名计划配置文件类文件:
\documentclass[preprint]{sigplanconf}
\usepackage{subfigure}
\usepackage{fixltx2e}
\usepackage{algorithm}
\begin{document}
\title{a title }
\authorinfo{an author}
\maketitle
\begin{abstract}
abstract
\end{abstract}
\section{a section }
\begin{algorithm*}
\begin{verbatim}
a long line of text goes here that will take up too much space and need to span columns
\end{verbatim}
\end{algorithm*}
\end{document}
algorithm
如果我使用而不是来运行 latex algorithm*
(请注意与 的区别*
),则不会收到任何错误消息。但是算法文本与右侧列中的文本混合在一起。
但是,如果我使用,algorithm*
我会收到以下我无法理解的错误消息:
! Improper \prevdepth. <recently read> \prevdepth
\subfig@end@float ...-\@Miv \@tempdima \prevdepth
\vbox {}\prevdepth \@tempd...
\end@dblfloat ...\expandafter \@gobble \end@float
\fi \else \end@float \fi \end #1->\csname end#1\endcsname
\@checkend {#1}\expandafter \endgroup \if@e... l.291 \end{algorithm*}
? ! Emergency stop. <recently read> \prevdepth
\subfig@end@float ...-\@Miv \@tempdima \prevdepth
\vbox {}\prevdepth \@tempd...
\end@dblfloat ...\expandafter \@gobble \end@float
\fi \else \end@float \fi \end #1->\csname end#1\endcsname
\@checkend {#1}\expandafter \endgroup \if@e... l.291 \end{algorithm*}
我猜想和的组合存在一些冲突subfigure
fixltx2e
,algorithm
因为当我创建一个示例来说明问题时,我发现如果我删除或fixltx2e
,subfigure
问题就会消失。所以我会检查我的论文,看看我是否需要这两个包(我正在帮助编辑,所以我不确定是否需要它们)。但如果有人碰巧看了这个例子并明白了导致错误的原因,我会有兴趣了解根本原因。