删除 `ruled` algorithm2e 的顶部规则

删除 `ruled` algorithm2e 的顶部规则

我想对使用该algorithm2e包的伪代码/算法和列表使用类似的样式。因此我需要在算法上方和下方添加一行,但不要在标题上方添加一行。到目前为止还没有找到任何解决方案。

例子

调整了行号样式、标题等几项配置,但是还是无法去掉上面的一行:

\setlength{\algoheightrule}{0.4pt}
\renewcommand\AlCapFnt{\normalfont}
\SetAlgoCaptionLayout{centerline}
\SetNlSty{ttfamily}{}{}
\SetAlgoNlRelativeSize{-3}

多谢!


梅威瑟:

\documentclass[a4paper, 11pt]{book}

\usepackage[ruled]{algorithm2e}

\begin{document} 
  \begin{algorithm}
    \KwData{this text}
    \KwResult{how to write algorithm with \LaTeX}
    \caption{How to write algorithms}
  \end{algorithm}
\end{document}

答案1

您可以使用样式设置算法plainruled- 两个单一规则,一个在算法上方,一个在算法下方 - 并调整算法标题的设置方式;默认值为under,因此我们将其更改为above(不是top):

在此处输入图片描述

\documentclass{article}

\usepackage[
  plainruled,
  linesnumbered,
  noline
]{algorithm2e}

\setlength{\algoheightrule}{0.4pt}
\renewcommand\AlCapFnt{\normalfont}
\SetAlgoCaptionLayout{centerline}
\DontPrintSemicolon

\makeatletter
% Add adjustments to plainruled format
\def\@algocf@capt@plainruled{above}
\renewcommand{\algocf@caption@plainruled}{%
  \vskip\AlCapSkip%
  \box\algocf@capbox%
  \vskip 5\algoheightrule}%
\makeatother

\begin{document}

\begin{algorithm}
  \KwData{This text}
  \KwResult{How to write algorithm with \LaTeX}
  \caption{How to write algorithms}
\end{algorithm}

\end{document}

其中包括进行微小的调整,在标题和算法的顶部规则之间添加一个空格。

相关内容