IEEEtrans 模板要求不使用算法包吗?

IEEEtrans 模板要求不使用算法包吗?

在 IEEEtrans.tex 中,包算法下面有一条评论说

请勿使用 algorithm.sty(由同一作者编写)或 algorithm2e.sty(由 Christophe Fiorio 编写)提供的算法浮点环境,因为 IEEE 不使用专用的算法浮点类型,并且提供这些类型的包不会提供正确的 IEEE 样式标题。

我怎样才能仅使用包来制作一个漂亮的框来显示伪代码algorithmic

答案1

您可以尝试这样的操作:

\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{boxedalgorithmic}
\REQUIRE $n \geq 0 \vee x \neq 0$
\ENSURE $y = x^n$
...
\ENDIF
\ENDWHILE
\end{boxedalgorithmic}

\end{document}

在此处输入图片描述

答案2

您可以使用图形来代替表格,并在其中添加标题和标签。

\begin{figure}
\begin{boxedalgorithmic}
\REQUIRE $n \geq 0 \vee x \neq 0$
\ENSURE $y = x^n$
\STATE $y \leftarrow 1$
\IF{$n < 0$}
\STATE $X \leftarrow 1 / x$
\STATE $N \leftarrow -n$
\ELSE
\STATE $X \leftarrow x$
\STATE $N \leftarrow n$
\ENDIF
\WHILE{$N \neq 0$}
\IF{$N$ is even}
\STATE $X \leftarrow X \times X$
\STATE $N \leftarrow N / 2$
\ELSE[$N$ is odd]
\STATE $y \leftarrow y \times X$
\STATE $N \leftarrow N - 1$
\ENDIF
\ENDWHILE
\end{boxedalgorithmic}
\caption{My algorithm}
\label{myalgo}
\end{figure}

相关内容