如何让多个浮动块不占据整个页面,同时保持`\intextsep`规则?

如何让多个浮动块不占据整个页面,同时保持`\intextsep`规则?

我希望浮动块位于algorithm2e页面顶部而不是中间。这是我的示例代码此 Tex SX 链接的帮助:

\documentclass{article}

\usepackage{lipsum,mathtools}
\usepackage[noend,ruled,lined]{algorithm2e}
\usepackage{hyperref}
\usepackage{booktabs}
\usepackage{float}

\makeatletter
\setlength{\@fptop}{0pt}
\setlength{\@fpbot}{0pt plus 1fil}
\makeatother

\setlength{\intextsep}{13pt}

\newenvironment{SpacingAlgorithm}[2]{
    \begin{algorithm}[ht]
        \caption{#1}\label{alg:#2}
}
{
    \end{algorithm}
}

\begin{document}
\lipsum[1]
\begin{SpacingAlgorithm}{1}{1}
\If{$1<2$}{
test
}
\end{SpacingAlgorithm}

\lipsum[1]\par
\lipsum[1]\par

\begin{itemize}
    \item test
\end{itemize}
% \clearpage

\begin{SpacingAlgorithm}{2}{2}
\If{$1<2$}{
test
}
\end{SpacingAlgorithm}
\begin{SpacingAlgorithm}{3}{3}
\If{$1<2$}{
test
}
\end{SpacingAlgorithm}
\begin{itemize}
    \item test
\end{itemize}

\end{document}

然后 pdf 显示(这里我发布了一张小图像,以便移动用户更好地查看):

在此处输入图片描述

然后我跟着此 Tex SX 链接但是这样会使之后的内容\begin{SpacingAlgorithm}也放在一个新页面中,如果浮动块很大的话,可能会很不方便,导致离开页面时出现一大片空白(参见上面的注释% \clearpage)。

我也读过此 Tex SX 链接,但H中的选项\usepackage{float}不适用于algorithm块。

问:如何让上述两个算法块在新页面上更加紧凑,即它们之间不出现一大片空白?

編輯:

看完这个之后评论

  1. 我检查了文档H中的选项\usepackage{float}不能与其他参数组合。此外,虽然H会使上述算法块压缩,但我发现上面的方法\setlength{\intextsep}{13pt}无法使用,尽管文档没有明确说明,但我需要该\setlength{\intextsep}{13pt}功能。
  2. 我通过删除和其他内容更新了上述代码!,但图形仍然与以前相同。

答案1

我在 David Carlisle 的帮助下找到了两个解决方案,分别展示在我的第二条评论和第三条评论中。如果有人有更好的解决方案或发现我的解决方案存在问题,欢迎帮助改进此答案。

相关内容