我目前正在使用 IEEEtran 模板撰写一篇论文。我确实有一个伪代码想放入这篇论文中。在之前的一篇论文中,我看到可以将这个算法放在一个框中,该框位于图中并填满论文的两列。我想用同样的方式做,但是我无法做到。
有人能帮帮我吗?
答案1
您很可能指的是使用带星号的浮动变体:
\documentclass{IEEEtran}
\usepackage{algorithm}% http://ctan.org/pkg/algorithms
\usepackage{algpseudocode}% http://ctan.org/pkg/algorithmicx
\usepackage{lipsum}% http://ctan.org/pkg/lipsum
\begin{document}
\section{A section}
\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*}
\lipsum[1-15]% dummy text
\end{document}
上述 MWE 使用algorithmicx
和algorithm
提供算法伪代码演示。但是,您figure
也可以将算法放在环境中。不确定期刊在软件包使用方面可能会限制什么。
请注意,在“双列”文档中使用“一列”浮动通常会导致不理想的位置。首先,它们会默认位于顶部(除非您使用dblfloatfix
)以及页面后插入(导致首页显示困难)。请参见双栏文档中的宽图关于 TeX FAQ。
这是一个不使用的版本algorithm
,而是重新设计figure
浮动环境以容纳其内容(感谢float
):
\documentclass{IEEEtran}
\usepackage{algpseudocode}% http://ctan.org/pkg/algorithmicx
\usepackage{lipsum}% http://ctan.org/pkg/lipsum
\usepackage{float}% http://ctan.org/pkg/float
\floatstyle{boxed} % Box...
\restylefloat{figure}% ...figure environment contents.
\begin{document}
\section{A section}
\begin{figure*}
\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{figure*}
\lipsum[1-15]% dummy text
\end{document}
lipsum
提供了一些虚拟文本。