考虑一下这个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]
),我实际上得到了这个(单击缩略图以查看完整尺寸):
...也就是说,意外的是,文本放在第 2 页,而浮动放在第 3 页。
如果我使用\afterpage{\clearpage}
(即取消注释%[2]
并注释%[1]
),我会得到以下结果:
...也就是说,现在浮动元素出现在第 2 页,正如预期的那样 - 但第 1 页却不是以第 4 段结束,但它却包含了第 5 段的一小部分(用红色圈出),这是我不想要的!
那么我该如何告诉乳胶:“在这里结束页面,在下一页上刷新浮动,并从之后的页面上的文本开始”?
答案1
把 放在\clearpage
之后,\end{figure}
而不是 之前\begin{figure}
。
实际情况是,LaTeX 将图形和表格视为浮点数。它认为您的图形需要单独放在一页上,因此它将该图形添加到需要稍后处理的浮点数队列中。在这种情况下,“稍后处理”是指文档的结尾。
您想告诉 LaTeX,“不!现在就做!”所以这样做——在定义图形之后。在\clearpage
定义图形之前所做的一切就是开始一个新页面。当它到达您的时,队列中没有未处理的浮动\clearpage
。