我有一个单列文档,为了节省空间,我想将一个较长的算法(使用包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}