选择性地强制浮动至页面顶部

选择性地强制浮动至页面顶部

考虑这个例子:

\documentclass{report}
%\usepackage{float}                                                                                                                                                                                         
\usepackage{lipsum}
\usepackage{graphicx}
\makeatletter
\setlength{\@fptop}{0pt}
\setlength{\@fpbot}{0pt plus 1fil}
\makeatother
\begin{document}
\lipsum[1-5]

\begin{figure}[htb]
  \centering
  \includegraphics[height=0.8\textheight, width=0.8\textwidth]{example-image-a}
\end{figure}

\begin{figure}[htb]
  \centering
  \includegraphics{example-image-c}
\end{figure}

\end{document}

输出为:

在此处输入图片描述

我已经关注如何将浮动元素放置在仅浮动元素的页面的顶部?强制将“C”图像置于页面顶部。但是,我不希望此设置影响“A”图像。如何选择性地强制浮动图像置于页面顶部?

在某些时候,我可能会对取消设置后续浮点数的此设置感兴趣。我正在检查@DavidCarlisle 的答案,并尝试使用以下方法取消设置此设置\clearpage

\documentclass{report}
%\usepackage{float}                                                                                                                                                                                         
\usepackage{lipsum}
\usepackage{graphicx}

\begin{document}
\lipsum[1-5]

\begin{figure}[htbp]
  \centering
  \includegraphics[height=0.8\textheight, width=0.8\textwidth]{example-image-a}
\end{figure}
\clearpage
  \makeatletter
\setlength{\@fptop}{0pt}
\setlength{\@fpbot}{0pt plus 1fil}
\makeatother

\begin{figure}[htbp]
  \centering
  \includegraphics{example-image-c}
\end{figure}
\clearpage

\begin{figure}[htbp]
  \centering
  \includegraphics{example-image-b}
\end{figure}

\end{document}

从输出中可以看出,我无法取消“B”图像的设置:

在此处输入图片描述

怎么了?

答案1

您可以\@fptop随时更改浮动页面的布局方式,但单个页面处理的所有页面\clearpage都将使用相同的布局。由于您使用可选参数来阻止任何图形设置,因此它们都将移到末尾并被隐式强制使用,\clearpage因此\end{document}要使用不同的设置,请\clearpage在浮动 A 之后使用,然后\@fptop在处理浮动 C 之前将其设置为 0pt。

\documentclass{report}
%\usepackage{float}                                                                                                                                                                                         
\usepackage{lipsum}
\usepackage{graphicx}

\begin{document}
\lipsum[1-5]

\begin{figure}[tb]
  \centering
  \includegraphics[height=0.8\textheight, width=0.8\textwidth]{example-image-a}
\end{figure}
\clearpage
\makeatletter
\setlength{\@fptop}{0pt}
\setlength{\@fpbot}{0pt plus 1fil}
\makeatother

\begin{figure}[tb]
  \centering
  \includegraphics{example-image-c}
\end{figure}
\clearpage
\makeatletter
\setlength{\@fptop}{0pt plus 1fil}
\setlength{\@fpbot}{0pt plus 1fil}
\makeatother

\begin{figure}[tb]
  \centering
  \includegraphics{example-image-b}
\end{figure}

\end{document}

在此处输入图片描述

相关内容