伪代码会分布在多个页面上吗?

伪代码会分布在多个页面上吗?

我在算法环境中编写伪代码。它很长,无法放在一页上。它没有继续在下一页,而是被截断了。我尝试将其插入到图形环境中,但问题仍然存在。有没有解决方案可以让代码继续在下一页?

答案1

如果不想让算法浮动,就用algorithmic没有algorithm环境的环境就行。

否则,您可以使用algorithmicx包。它允许将长算法拆分成几部分,保留行号和缩进。您还可以将其与caption获得\ContinuedFloat正确的算法编号:

\documentclass{article}

\usepackage{algorithm,algpseudocode}
\usepackage{caption}

\begin{document}

\begin{algorithm}
  \caption{My algorithm}
  \begin{algorithmic}[1]
    \Procedure{Euclid}{$a,b$}\Comment{The g.c.d. of a and b}
      \State $r\gets a\bmod b$
      \While{$r\not=0$}\Comment{We have the answer if r is 0}
        \State $a\gets b$
        \State $b\gets r$

        \algstore{myalg}
  \end{algorithmic}
\end{algorithm}

\clearpage

\begin{algorithm}
  \ContinuedFloat
  \caption{My algorithm (continued)}
  \begin{algorithmic}
      \algrestore{myalg}

        \State $r\gets a\bmod b$
      \EndWhile\label{euclidendwhile}
      \State \textbf{return} $b$\Comment{The gcd is b}
    \EndProcedure
  \end{algorithmic}
\end{algorithm}

\end{document}

(该算法示例取自的algorithmicx文档。)

相关内容