如何在多列环境中插入算法

如何在多列环境中插入算法

可能重复:
将图形放置在双栏文档中

这是我的 MWE:

\documentclass{article}

\usepackage{multicol}
\usepackage{algorithm}
\usepackage{algpseudocode}
\usepackage{lipsum}

\begin{document}
\title{How to insert algorithm inside multicols environment}
\author{pythonee}
\date{}

\maketitle

\begin{abstract}
\lipsum[1-2]
\end{abstract}

\begin{multicols*}{2}
\begin{algorithm}
\caption{Euclid’s algorithm}\label{euclid}
\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$
      \State $r\gets a\bmod b$
   \EndWhile\label{euclidendwhile}
   \State \textbf{return} $b$\Comment{The gcd is b}
\EndProcedure
\end{algorithmic}
\end{algorithm}

\end{multicols*}

\end{document}

当我编译它时,它输出警告消息:

Package multicol Warning: Floats and marginpars not allowed inside `multicols' 
environment!.

并且缺少伪代码。

你能告诉我如何插入单列浮点算法环境吗?我不想要algorithm*样式。

答案1

环境multicols不支持列宽的浮动,原因很简单,这会与平衡相冲突,并且与您可以更改单个页面上的列数的事实相冲突。

鉴于您的示例用于multicols*整个文档,您需要自己决定的第一件事是:您是否需要使用 multicol 或者最好使用 LaTeX 的标准twocolumn可能性。

请参阅这个答案了解详情。

然而,正如 Werner 所说,我实际上最近实施了一个不支持扩展功能multicol可将列图形放置在环境范围内。它们不会自动“浮动”,但您可以指定它们应出现在特定页面的特定列位置。请参阅这里了解详情。

相关内容