我想在我的文章中介绍一种算法。为此,我使用了该algorithm2e
软件包(我已经使用了很多年)。
我想使用该ruled
选项,即我像这样加载包:
\usepackage[ruled,noend,noline,slide]{algorithm2e}
不幸的是,使用该ruled
选项后,该algorithm2e
包会将标题放在伪代码上方。
但是,我希望标题出现在伪代码下方,就像图形或表格中的任何其他标题一样。
有人知道我需要在样式文件中更改什么才能实现这一点吗?或者我可以借助包来实现吗float
?(请注意,我仍然希望拥有一种这样的算法环境
\begin{myalgorithm}[tb]
\If{...}
\caption{An algorithm}
\end{myalgorithm}
)我使用的是最新版本,即4.01 algorithm2e.sty
。
答案1
您可以通过定义一个新环境来实现这一点,该环境将标题替换under
为默认值top
,并调整规则和标题文本之间的垂直跳跃:
\documentclass{book}
\usepackage[ruled,noend,noline,slide]{algorithm2e}
\makeatletter
\newenvironment{Ualgorithm}[1][htpb]
{\def\@algocf@post@ruled{\kern\interspacealgoruled\hrule height\algoheightrule\kern3pt\relax}%
\def\@algocf@capt@ruled{under}
\begin{algorithm}[#1]}
{\end{algorithm}}
\makeatother
\begin{document}
\begin{algorithm}
\If{$i<5$}{some action}
\caption{A ruled algorithm with caption above}
\end{algorithm}
\begin{Ualgorithm}
\If{$i<5$}{some action}
\caption{A ruled algorithm with caption below}
\end{Ualgorithm}
\end{document}