清除页面而不分页?

清除页面而不分页?

是否有一个命令可以做同样的事情\clearpage(排版所有尚未排版的浮点数)然后不是插入分页符但在同一页面上继续显示以下文本/图形?

答案1

是的,这是afterpage包裹。 使用

\afterpage{\clearpage}

这将在当前页面完全设置后刷新所有已处理的浮动,从技术上避免可见的\clearpage。请参阅afterpage文档(第 1 页):

有时 LaTeX 的浮动定位机制会过载,所有浮动图形和表格都会漂移到文档末尾。可以通过发出命令清除所有未处理的浮动\clearpage ,但这会导致当前页面过早结束。现在您可以发出命令\afterpage{\clearpage},当前页面将像往常一样填满文本,但随后 \clearpage命令会在下一个文本页面开始之前清除所有浮动。

答案2

我相信你可能在寻找\FloatBarrier来自placeins包的命令。它强制 Tex 排版该点处的所有剩余浮点数,并且不包括\clearpage之后的内容。

答案3

我做了一个 MWE 来比较不同的解决方案。

代码

\documentclass{article}

\usepackage{lipsum}
\usepackage{graphicx}
\usepackage{afterpage}
\usepackage{placeins}

\begin{document}

\section{foo}

\lipsum[1-2]

\begin{figure}[htb]
    \includegraphics[width=\textwidth, height=40mm]{example-image-a}
\end{figure}

\lipsum[4]

\begin{figure}[htb]
    \includegraphics[width=\textwidth, height=\textheight]{example-image-b}
\end{figure}
%\clearpage % (variant 1)
%\afterpage{\clearpage} % (variant 2)
%\FloatBarrier % (variant 3)
%\afterpage{\FloatBarrier} % (variant 4)

\lipsum[3]

\section{bar}

\lipsum[5-7]

\end{document}

结果

变体 0:无

在此处输入图片描述

  • 图像 B 被移至末尾。

变体 1:\clearpage

在此处输入图片描述

  • 图像 B 被放置在 之后的任何内容之前\clearpage

变体 2\afterpage{\clearpage}

(看Werner 的回答

在此处输入图片描述

  • 图像 B 放置在当前页面结束后。

变体 3:\FloatBarrier

(看Max 的回答

在此处输入图片描述

请注意,在这个特定的例子中,变体 3 的行为与变体 1 相同,但一般情况并非如此(参见下面的例子)。

变体 4:\afterpage{\FloatBarrier}

(看stefanct 的回答

在此处输入图片描述

请注意,在这个特定的例子中,变体 4 的行为与变体 2 相同,但一般情况并非如此(参见下面的例子)。

\clearpage和之间的区别\FloatBarrier

另一个没有图 B 的示例。

代码

\documentclass{article}

\usepackage{lipsum}
\usepackage{graphicx}
\usepackage{afterpage}
\usepackage{placeins}

\begin{document}

\section{foo}
\lipsum[1-2]
\begin{figure}[htb]
    \includegraphics[width=\textwidth, height=40mm]{example-image-a}
\end{figure}
\lipsum[4]
\clearpage % (variant 1)
%\FloatBarrier % (variant 3)

\section{bar}
\lipsum[5-7]
\end{document}

结果

变体 1:\clearpage

在此处输入图片描述

变体 3:\FloatBarrier

在此处输入图片描述

  • \FloatBarrier如果没有可插入的浮点数,则不会插入分页符。

答案4

我成功地结合了前面两个答案,即\afterpage{\FloatBarrier}(在浮动之后直接使用,甚至在浮动之内使用)在页面大小表被推到文档的最末端的情况下acmart。这受到了一个完全不同的启发问题。这当然需要两个包(placeinsafterpage)。出于某种原因,替代方案并未产生良好/可接受的结果。

相关内容