有没有什么优雅的方法来放置算法而不使用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
在这些条件下。由于包有自己的界面(用于\;
表示行尾,在环境之外的数学模式中也称为水平空间),因此在环境开始时,包会进行大量的准备工作以进行设置。