如果 \clearpage 没有准确清除浮动,该怎么办?

如果 \clearpage 没有准确清除浮动,该怎么办?

考虑一下这个MWE:

\documentclass[%
12pt,
journal,
onecolumn,
twoside,
draftcls,
letterpaper,
]{IEEEtran}

\usepackage{tikz}
\usetikzlibrary{calc}
\usetikzlibrary{positioning}
\usepackage{adjustbox}
\usepackage{setspace} %\singlespacing
\usepackage[nopar]{lipsum}
\usepackage{xstring}
\usepackage{afterpage}

\begin{document}
\lipsum[1]

\lipsum[2]

\lipsum[3]

\lipsum[4]

\clearpage % \newpage % no effect %[1]
% \afterpage{\clearpage} % has effect, but page 1 doesn't end with [4], starts also \lipsum[5] %[2]

\begin{figure}[hbt]
\centering
\begin{tabular}{p{0.5\textwidth} p{0.5\textwidth}}
  \vspace{0pt} \includegraphics[width=0.41\textwidth]{pic1.pdf} &
  \vspace{0pt} \includegraphics[width=0.41\textwidth]{pic1.pdf}
\end{tabular}
\caption[hda-beh]{Something something, something, something something;
(some) something and something something (thing); some thing:
something something, something something}
\label{fig:something}
\end{figure}

\lipsum[5]

\lipsum[6]

\end{document}

我在哪里使用它图片1.pdf(这是我的一张插图,其中大部分内容已被删除)。

我使用是\clearpage因为我希望页面在第四段之后结束;然后我希望浮动在第 2 页,并且我希望文本从第 3 页继续。但是,使用上面的代码(选择%[1]),我实际上得到了这个(单击缩略图以查看完整尺寸):

测试10 测试11 测试12

...也就是说,意外的是,文本放在第 2 页,而浮动放在第 3 页。

如果我使用\afterpage{\clearpage}(即取消注释%[2]并注释%[1]),我会得到以下结果:

测试20 测试21 测试22

...也就是说,现在浮动元素出现在第 2 页,正如预期的那样 - 但第 1 页却不是以第 4 段结束,但它却包含了第 5 段的一小部分(用红色圈出),这是我不想要的!

那么我该如何告诉乳胶:“在这里结束页面,在下一页上刷新浮动,并从之后的页面上的文本开始”?

答案1

把 放在\clearpage之后,\end{figure}而不是 之前\begin{figure}

实际情况是,LaTeX 将图形和表格视为浮点数。它认为您的图形需要单独放在一页上,因此它将该图形添加到需要稍后处理的浮点数队列中。在这种情况下,“稍后处理”是指文档的结尾。

您想告诉 LaTeX,“不!现在就做!”所以这样做——在定义图形之后。在\clearpage定义图形之前所做的一切就是开始一个新页面。当它到达您的时,队列中没有未处理的浮动\clearpage

相关内容