使用 algorithm2e 的字幕间距

使用 algorithm2e 的字幕间距

我正在尝试使用 algorithm2e 包在算法标题上方/下方添加一些间距。请考虑以下示例:

\documentclass[a4paper]{article}

\usepackage{blindtext}
\usepackage[linesnumbered,boxed]{algorithm2e}

\SetKwInput{KwInput}{Input}
\SetKwInput{KwOutput}{Output}

\begin{document}

  \begin{algorithm}[H]
    \SetAlgoLined
    \KwInput{Parameters...}

    \KwOutput{$\emptyset$}

    \If{Condition}
    {
      Do something \;
    }
    \caption{Algoritm test...}
  \end{algorithm}

  \blindtext{}

  \begin{figure}[!h]
    \caption{Figure test...}
  \end{figure}

  \blindtext{}

\end{document}

您可以看到,标题被挤在包含算法的框下方。框与标题之间没有空间,标题与以下文本之间的空间也不够。我想在标题上方和下方添加相同大小的空间,但我还没有想出如何做到这一点:算法包似乎有一个可行的解决方案(请参阅算法包忽略标题包),但我不知道如何将其\captionsetup应用于 algorithm2e 标题。对此有什么想法吗?

答案1

要使用该命令,\captionsetup您必须加载该caption包...

不管怎样,没有它也可以做到这一点。

首先,标题和其余文本之间的间距为空,因为您使用位置说明符阻止algorithm浮动。而是使用,这意味着“将其放置在此处”,但保留浮动对象(与s 和s相同)。Hhalgorithmhfiguretable

algorithm然后您可以通过命令来调整正文和标题之间的间距\SetAlCapSkip

换句话说,用以下代码代替

\begin{algorithm}[H]

\begin{algorithm}[h]

并插入

\SetAlCapSkip{1em}

在序言中(1em根据您的需要进行调整)应该是您想要的。


完成 MWE

\documentclass[a4paper]{article}

\usepackage{blindtext}
\usepackage[linesnumbered,boxed]{algorithm2e}

\SetAlCapSkip{1em}

\SetKwInput{KwInput}{Input}
\SetKwInput{KwOutput}{Output}

\begin{document}

  \begin{algorithm}[h]
    \SetAlgoLined
    \KwInput{Parameters...}

    \KwOutput{$\emptyset$}

    \If{Condition}
    {
      Do something \;
    }
    \caption{Algoritm test...}
  \end{algorithm}

  \blindtext{}

  \begin{figure}[!h]
    \caption{Figure test...}
  \end{figure}

  \blindtext{}

\end{document} 

输出

在此处输入图片描述

相关内容