规则算法 - 标题位于下方,居中且无规则

规则算法 - 标题位于下方,居中且无规则

我希望算法(以规则样式)出现在规则下方,位于中心,并且其下方没有规则。

这是我目前所拥有的 标题不居中且下方有规则

使用以下代码:

\documentclass[10pt,a4paper]{article}
\usepackage[utf8]{inputenc}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage{algorithmic}
\usepackage[linesnumbered,ruled]{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{Ualgorithm}[H]
\SetAlgoLined
\KwData{this text}
\KwResult{Write here the result }
initialization\;
\While{While condition}{
    instructions\;
\eIf{condition}{
    instructions1\;
    instructions2\;
}{
instructions3\;
}
}
\caption{How to write algorithms}
\end{Ualgorithm}

\end{document}

这就是我想要的 标题居中,下方无分隔线

另外,我想让规则之间的整个空间都着色(每次都使用相同的颜色)。

有没有办法对代码进行这些更改?感谢您的建议。

答案1

要删除最后一行,您可以使用:

\setlength\algotitleheightrule{0pt}

将标题置于中央:

\SetAlgoCaptionLayout{centerline}

换句话说,您的自定义Ualgorithm环境可以重写为:

\newenvironment{Ualgorithm}[1][htpb]{\def\@algocf@post@ruled{\kern\interspacealgoruled\hrule  height\algoheightrule\kern3pt\relax}%
\def\@algocf@capt@ruled{under}%
\setlength\algotitleheightrule{0pt}%
\SetAlgoCaptionLayout{centerline}%
\begin{algorithm}[#1]}
{\end{algorithm}}

完成 MWE:

\documentclass[10pt,a4paper]{article}
\usepackage[utf8]{inputenc}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage{algorithmic}
\usepackage[linesnumbered,ruled]{algorithm2e}

\makeatletter
\newenvironment{Ualgorithm}[1][htpb]{\def\@algocf@post@ruled{\kern\interspacealgoruled\hrule  height\algoheightrule\kern3pt\relax}%
\def\@algocf@capt@ruled{under}%
\setlength\algotitleheightrule{0pt}%
\SetAlgoCaptionLayout{centerline}%
\begin{algorithm}[#1]}
{\end{algorithm}}
\makeatother

\begin{document}

\begin{Ualgorithm}[H]
\SetAlgoLined
\KwData{this text}
\KwResult{Write here the result }
initialization\;
\While{While condition}{
    instructions\;
\eIf{condition}{
    instructions1\;
    instructions2\;
}{
instructions3\;
}
}
\caption{How to write algorithms}
\end{Ualgorithm}

\end{document} 

在此处输入图片描述

相关内容