将一个算法放在两列中

将一个算法放在两列中

我有一个单列文档,为了节省空间,我想将一个较长的算法(使用包algorithm和生成algorithmic)设为双列。也就是说,我希望浮动内容从左列开始,然后继续在右列,而文档的其余部分为单列。我可以在图形环境中并排放置两个算法,但我不确定是否可以将单个算法划分为列。

答案1

multicol救援包裹来了!

\documentclass{article}

\usepackage{lipsum}
\usepackage{algorithm,algorithmic}
\usepackage{multicol}

\begin{document}
\lipsum[1]
\begin{algorithm}
\caption{Calculate $y = x^n$}
\label{alg1}
\begin{multicols}{2}
\begin{algorithmic}[1]
  \REQUIRE $n \geq 0 \vee x \neq 0$
  \ENSURE $y = x^n$
  \STATE $y \Leftarrow 1$
  \IF{$n < 0$}
  \STATE $X \Leftarrow 1 / x$
  \STATE $N \Leftarrow -n$
  \ELSE
  \STATE $X \Leftarrow x$
  \STATE $N \Leftarrow n$
  \ENDIF
  \WHILE{$N \neq 0$}
  \IF{$N$ is even}
  \STATE $X \Leftarrow X \times X$
  \STATE $N \Leftarrow N / 2$
  \ELSE[$N$ is odd]
  \STATE $y \Leftarrow y \times X$
  \STATE $N \Leftarrow N - 1$
  \ENDIF
  \ENDWHILE
\end{algorithmic}
\end{multicols}
\end{algorithm}
\lipsum[2]
\end{document}

示例输出

相关内容