如何将算法置于浮点数之外?

如何将算法置于浮点数之外?

有没有什么优雅的方法来放置算法而不使用algorithm环境?

答案1

你不需要将其放入浮动中。但这取决于你的目的。如果目的是避免浮动algorithm但仍然有标题,那么caption包裹提供\captionof{<float type>}{<caption>}允许您设置浮动标题的功能外部浮点数。例如:

在此处输入图片描述

\documentclass{article}
\usepackage{algorithm,algpseudocode,caption}% http://ctan.org/pkg/{algorithms,algorithmicx,caption}
\begin{document}

%\noindent
%\begin{minipage}{\linewidth}
\captionof{algorithm}{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{minipage}
\end{document}

尽管algorithm提供浮动algorithm环境,仅用于algorithm计数器和浮动类型. 以上适用于algorithmic和/或algorithmicx

建议将算法包含在一个框内(如minipage),但这可能取决于代码本身中算法的设置。例如,algorithmicx将其算法(在algorithmic环境中)设置为列表,这将跨越页面边界。如果您不想要它,请包含它。


algorithm2e提供自己的“不浮动”[H]浮动说明符,如果以这种方式使用,则设置内容minipage。因此必须使用

\begin{algorithm}[H]
% <your algorithm here>
\end{algorithm}

algorithm在这些条件下。由于包有自己的界面(用于\;表示行尾,在环境之外的数学模式中也称为水平空间),因此在环境开始时,包会进行大量的准备工作以进行设置。

相关内容