在 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}