考虑以下代码,它为算法提供了一个框。但是,当算法需要跨越双栏文章中的两栏时,它不起作用。具体来说,当我在以下代码中使用\begin{figure*}
而不是\begin{figure}
来将算法跨越到两栏时,算法仍然只跨越一栏。
\documentclass{IEEEtran}
\pagestyle{empty}
\usepackage{algorithmic}
\newsavebox{\ieeealgbox}
\newenvironment{boxedalgorithmic}
{\begin{lrbox}{\ieeealgbox}
\begin{minipage}{\dimexpr\columnwidth-2\fboxsep-2\fboxrule}
\begin{algorithmic}}
{\end{algorithmic}
\end{minipage}
\end{lrbox}\noindent\fbox{\usebox{\ieeealgbox}}}
\begin{document}
\begin{figure}
\begin{boxedalgorithmic}[1]
\REQUIRE $n \geq 0 \vee x \neq 0$
\ENSURE $y = x^n$
\IF{$y = 0$}
\STATE Some statement
\ENDIF
\end{boxedalgorithmic}
\caption{aaa}
\label{aaa}
\end{figure}
\end{document}
我不想破坏算法,只是希望它跨越两列,并且周围有一个框。请看下面的图片:图 7 是我使用\begin{figure*}...\end{figure*}
和 使用\begin{algorithmic}...\end{algorithmic}
而不是 时得到的结果\begin{boxedalgorithmic}...\end{boxedalgorithmic}
。这个跨越两列,但我希望周围有一个框。当我同时使用\begin{figure*}...\end{figure*}
和 时\begin{boxedalgorithmic}...\end{boxedalgorithmic}
,算法会在它周围得到一个框,但它仍然停留在一列中。
答案1
希望这会对你有帮助:
\documentclass{IEEEtran}
\pagestyle{empty}
\usepackage[boxed]{algorithm}
\usepackage{algorithmic}
\usepackage{lipsum}
\begin{document}
\begin{algorithm*}
\begin{algorithmic}[1]
\REQUIRE $n \geq 0 \vee x \neq 0$
\ENSURE $y = x^n$
...
\end{algorithmic}
\caption{aaa}
\label{aaa}
\end{algorithm*}
\lipsum[1-20]
\end{document}