如何才能强迫一个身影出现独自的在单独的页面上? \begin{figure}[p!]
强制将其放在单独的页面上,但是不能保证其他一些小图形(我希望将其包含在文本中)不会意外地出现在同一个图形页面上。
答案1
将浮动间距设置\@fpsep
为至少\textheight
可保证浮动页面上的图形将单独出现在页面上:
\makeatletter
\@fpsep\textheight
\makeatother
同样,此处的图形保持垂直居中,这不受影响。您也可以\@fpsep
在文档中间进行更改。使用\afterpage
(需要加载afterpage
包)进行更改可能会很方便,例如:
\makeatletter
\afterpage{\global\setlength\@fpsep{8\p@ \@plus 2fil}}
\makeatother
答案2
我认为最好的办法是使用包\afterpage
中的命令afterpage
,它会在当前页面结束后立即执行操作。这样可以避免半页空白。所以我建议你执行以下操作:
\afterpage{%
\begin{figure}
...
\end{figure}
\clearpage
}
如果你有未放置在该命令前的浮动图片,那么其他图片的问题并没有完全解决\afterpage
,但是应该确保该命令之后的浮动图片没有与你单独想要的图片放在同一页面上。
答案3
\清除页
\clearpage 命令结束当前页面并打印输入中迄今为止出现的所有图形和表格。
答案4
简短回答:
\renewcommand{\floatpagefraction}{0.1}
长答案:
您可以通过 在一定程度上控制页面浮动,即\floatpagefraction
在产生“浮动页面”之前,页面中必须被浮动对象占据的最小部分,或者在两列文档中也使用\dblfloatpagefraction
,它表示在产生浮动页面之前,页面中必须被两列宽的浮动对象(figure*
)占据的最小部分。
免责声明:使用这种方法,如果下一个浮动足够小并且也有选项[p]
,显然它仍然可以包含在同一个浮动页面中。不幸的是,另一个简单的选项\setcounter{totalnumber}{1}
和设置 \floatsep
似乎仅适用于普通文本页面。如果这是一个问题,必须在两个页面浮动之间放置足够的文本(以填充至少一个页面) 或者确保下一个浮点数没有该[p]
选项,或者忘记这种方法并 \@fpsep
按照 Stefan 完美解释的那样进行设置(或\@dblfpsep
对于两列文本)。
一位 MWE 表示:
\documentclass{article}
\usepackage{lipsum}
\usepackage[demo]{graphicx}
\renewcommand{\floatpagefraction}{0.1}
\begin{document}
\lipsum[1]
\begin{figure}[hbt]
\centering
\includegraphics[width=8cm]{A}
\caption{A normal float}
\end{figure}
\begin{figure}[p]
\centering
\includegraphics[width=8cm]{B}
\caption{A page float}
\end{figure}
\begin{figure}[hbt]
\centering
\includegraphics[width=8cm]{C}
\caption{Another normal float}
\end{figure}
\lipsum[2-10]
\end{document}