如何将浮动元素放置在仅浮动元素的页面的顶部?

如何将浮动元素放置在仅浮动元素的页面的顶部?

我刚刚在页面上添加了一个简短的算法,它总是在页面中央对齐。但我想让它在顶部对齐,我该怎么做?

答案1

前面的评论:我假设您的文档采用单列布局。

要在页面上单独显示一个简短的算法(LaTeX 标记为“浮动”的对象)并将其沿页面顶部对齐(而不是使其垂直居中),请尝试将以下说明添加到文档的序言中:

\makeatletter
\setlength{\@fptop}{0pt}
\setlength{\@fpbot}{0pt plus 1fil}
\makeatother

祝你 TeXing 愉快!请注意,通过在序言中插入这些说明,它们的范围是全球的即,它们涵盖了浮动的放置全部仅浮动的页面。


附录:有人要求我解释一下这段代码到底是干什么的。LaTeX“内核”(参见latex.ltx,大约第 7260 行)设置了几个参数来帮助在仅包含浮动元素的页面上定位浮动元素。其中,参数\@fptop@fpbot(我想是“浮动页面顶部”和“浮动页面底部”的缩写)控制在单列页面布局的文档中,在只有浮动元素的页面上,在顶部浮动元素上方和底部浮动元素下方插入多少空间。默认两个参数的值都是0\p@ \@plus 1fil。(\p@在 中早先定义latex.ltx为 等于0pt。)该组件1fil是“可无限拉伸的胶水”(用 TeX 术语来说),即它将扩展以占据其范围内的所有可用空间(此处指尚未被其他材料(例如浮动元素本身)占用的垂直页面尺寸!)。因此,浮动元素将默认在仅浮动元素的页面上垂直居中,并且(幸运的是)LaTeX 不会发出有关页面未满的不必要警告。

要强制浮动元素页面上的第一个浮动元素顶部对齐,只需发出以下命令

\setlength{\@fptop}{0pt}

第二条指令,,\setlength{\@fpbot}{0pt plus 1fil}主要是为了“稳妥行事”,以防万一加载了某个包,而该包对\@fptop\@fpbot参数进行了某种处理,导致 LaTeX 开始发出有关浮动页面未满的警告,此时您应该仅重置该\@fptop参数……

第二份附录,2022 年 6 月:对于两列页面布局和全宽浮动(例如table*figure*),相关参数分别称为\@dblfptop\@dblfpbot

答案2

我认为您可以先尝试在表格格式中使用“H”选项。如果您的表格正好放在您实际想要的位置,这种方法就可以奏效。

\usepackge{float}  %load this package first
\begin{figure}[H]
    \centering
    \includegraphics[width=\textwidth]{figure_name}
    \caption{the figure name}
    \label{the label info}
\end{figure}

如果这不起作用,请尝试更复杂的方法:D

答案3

在图形或列表之后添加以下代码:

\vfill
\rule[\baselineskip]{0pt}{\baselineskip}

相关内容