围绕跨越两列的算法的框

围绕跨越两列的算法的框

考虑以下代码,它为算法提供了一个框。但是,当算法需要跨越双栏文章中的两栏时,它不起作用。具体来说,当我在以下代码中使用\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}

相关内容