我在乳胶文档中有两个算法,使用一列的类文档。第一个算法几乎占了一页,第二个算法在下一页。有没有办法格式化它以在文档中占据一些位置。也许把这两个算法放在同一页上(我不知道这是否可行)。
我使用\usepackage{algorithm}
和\usepackage{algpseudocode}
。这是两种算法的示例(实际上它们比这更长,这只是一个例子)。
\begin{algorithm}
\caption{My First Algorithm (param)}
\label{algo1}
\begin{algorithmic}[1]
\State $A = A + param$
\State $\alpha = 34$
\State etc ...
\end{algorithmic}
\end{algorithm}
\begin{algorithm}
\caption{My Second Algorithm (A)}
\label{algo1}
\begin{algorithmic}[1]
\State $C = C + A$
\State $\alpha = \beta$
\State etc ...
\end{algorithmic}
\end{algorithm}
答案1
这是一个最小的例子,展示了如何并排配对算法:
\documentclass{llncs}% http://www.springer.com/computer/lncs/lncs+authors?SGWID=0-40209-0-0-0
\usepackage[margin=1in]{geometry}% http://ctan.org/pkg/geometry
\usepackage{lipsum}% http://ctan.org/pkg/lipsum
\usepackage{algorithm}% http://ctan.org/pkg/algorithm
\usepackage{algpseudocode}% http://ctan.org/pkg/algorithmicx
\usepackage[compatibility=false]{caption}% http://ctan.org/pkg/caption
\begin{document}
\lipsum[1]
\medskip
\noindent\begin{minipage}{.5\textwidth}
\captionof{algorithm}{Euclid’s algorithm}\label{algo1}
\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
\State \textbf{return} $b$\Comment{The gcd is b}
\EndProcedure
\end{algorithmic}
\end{minipage}%
\begin{minipage}{.5\textwidth}
\captionof{algorithm}{Euclid’s algorithm}\label{algo2}
\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
\State \textbf{return} $b$\Comment{The gcd is b}
\EndProcedure
\end{algorithmic}
\end{minipage}
\medskip
On the left is Algorithm~\ref{algo1}. On the right is Algorithm~\ref{algo2}.
\lipsum[2]
\end{document}
这种方法背后的想法是让两个minipage
s 横跨整个\linewidth
。minipage
然后这些 s 容纳非浮动algorithmic
环境以及非浮动\captionof
标题。如果需要,您可以包裹全部的minipage
在浮动环境中加倍algorithm
。
指某东西的用途geometry
只是为了获得一些股票房地产(在你的例子中可能不需要),而lipsum
提供了一些虚拟文本,乱码风格。
caption
提供了在浮动之外添加标题的方法\captionof
。但是,它需要compatibility=false
选项才能工作,因为llncs
已经重新定义\caption
-被检测到caption
。algorithm
仍然是需要的,因为它提供了algorithm
计数器和“算法列表”功能。