使用自己的宏调整 algorithm2e 的标题

使用自己的宏调整 algorithm2e 的标题

我有一份包含几个表格的文档,这些表格的标题格式如下

在此处输入图片描述

我使用

\usepackage[format=plain, justification=raggedright,singlelinecheck=true]{caption}
\captionsetup[table]{labelsep=newline, textfont=it, singlelinecheck=false, margin=1em}

并且我希望对算法使用相同的布局。我确实从 package-readme 中发现了这一点,这一页我需要

\usepackage[plainruled]{algorithm2e}

删除标题上方的顶部规则并得到:

在此处输入图片描述

接下来,我明白我需要定义自己的宏style才能使用

\SetAlgoCaptionLayout{style}

但我很困惑如何创建宏以及如何左对齐,在脚注大小中使用 normalfont 作为算法标题,插入换行符,以及如何将标题文本斜体化。

梅威瑟:

\documentclass{article}
\usepackage[plainruled]{algorithm2e}
\begin{document}

\begin{algorithm}
{\footnotesize
\caption{An example}
some text\;
}
\end{algorithm}
\end{document}

答案1

明白了。您可以重新定义定义顶部规则的函数。它并不完美,但有效。

\documentclass{article}
\usepackage[algoruled]{algorithm2e}

% Removes the top rule above caption see l.2531 of algorithm2e.sty
\makeatletter
\def\@algocf@pre@algoruled{}%
\makeatother
% Changes the caption font to italic
\renewcommand{\AlCapNameFnt}{\footnotesize\itshape}
% Removes bold font Algorithm
\renewcommand{\AlCapFnt}{\footnotesize\normalfont}
% Replaces ":" with a linebreak after Algorithm n°xxx
\SetAlgoCaptionSeparator{\\}
\begin{document}
\begin{algorithm}
{\footnotesize
\caption{An example}
some text\;
}
\end{algorithm}
\end{document}

在此处输入图片描述

答案2

以下还会将\footnotesize字体大小添加到您的algorithm环境中:

在此处输入图片描述

\documentclass{article}

\usepackage{fourier}
\usepackage[ruled]{algorithm2e}

\SetAlCapFnt{\normalfont\footnotesize}% Set caption font
\SetAlgoCaptionSeparator{\par\nobreak}% Set caption separator
\SetAlCapNameFnt{\unskip\itshape\footnotesize}% Set caption name font
\makeatletter
\def\@algocf@pre@ruled{}% Remove rule above caption
\let\old@algocf@start\@algocf@start
\renewcommand{\@algocf@start}{\old@algocf@start\footnotesize}
\makeatother

\begin{document}

\begin{algorithm}
  \caption{An example}
  some text\;
\end{algorithm}

\end{document}

相关内容