考虑下面的最小代码,它根据表格位置标记产生两种不同的布局。
第一个布局使用
\begin{table}
这使得表格在脚注下方结束,第二个,
\begin{table}[htbp]
导致表格结束于脚注上方。这是 LaTeX 中的正常行为吗?我认为更好的算法是尝试将图像或表格置于脚注上方;这是某种形式的错误吗?这是 MWE。
\documentclass{book}
\usepackage[paperwidth=4.75in,paperheight=7.25in,
textwidth=4.5in,textheight=6.5in,
headsep=0.1in, footskip=0.15in,
marginratio=1:1]{geometry}
\usepackage[latin,english]{babel}
\usepackage[demo]{graphicx}
\usepackage{booktabs,lipsum}
\begin{document}
\selectlanguage{latin}
\chapter{Errora}
Una imagine tabula, figura et \ae nigma.\footnote{translatio via google}.
\begin{figure}[htbp]
\centering
\includegraphics[width=0.3\textwidth]{./graphics/amato}
\caption{Uno pictorum}
\end{figure}
\begin{table}%[htbp] %uncomment to see difference
\centering
\begin{tabular}{cccc}
\toprule
Error &Errors &error &errors\\
\bottomrule
\end{tabular}
\caption{Test}
\end{table}
%\lipsum[1-3]
\end{document}
编辑:
我查看了footmisc
Thorsten Donig 推荐的解决方法的文档,其中 Robin Fairbairns 将此行为描述为“不恰当”。还有一个不恰当之处,如果您让两个浮动元素自由浮动,表格会浮动到下一页,而图像会进入页脚区域,而文本中却有足够的空间可以准确保持在原位。
答案1
LaTeX 排版脚注的正常输出程序多于底部浮动:理由是底部浮动与脚注不同,并不属于类型块。有人认为这不合适,因此包脚杂提供bottom
选项。
我的观点是,在带有脚注的页面上应避免使用底部浮动:无论底部的两个相互竞争的对象如何顺序,读者都会感到困惑。
但这带来了一个问题:在标准类中(以及对于回忆录和 AMS 类)是[tbp]
。换句话说,当用户输入时\begin{figure}
没有提供展示位置选项,h
展示位置将绝不被尝试,但b
会的。
在您的示例中,如果没有浮动环境的选项,您将得到以下结果:
t
•由于我们处于章节的起始页,因此不会尝试图形和表格的放置;
•如果图形未超出:底部浮动元素不能占据超过一页(默认 3/10),则b
图形的放置将被接受;\bottomfraction
\bottomfraction
• 即使将图形放在底部,表格也不会,因为\bottomnumber
底部只接受浮动(默认为 1),从而将表格推到下一页。
有一种方法可以解决:重新定义\fps@figure
并\fps@table
设置为更适合您需求的值,例如
\makeatletter
\renewcommand{\fps@figure}{htp}
\renewcommand{\fps@table}{htp}
\makeatother
并且仅在生产的最后阶段,即决定分页的细节时,尝试使用明确的放置选项。
答案2
您可以通过以下方式修复此问题脚杂包裹。
\usepackage[bottom]{footmisc}
答案3
一般来说,当浮点数到达你不想让它们去的地方时,除了[htbp]
作为浮点说明符之外,还可以使用[h]
, [h!]
,[H]
来自漂浮包裹:
为浮动环境提供一个 [H] 选项,表示“将其放在此处”(与标准 [h] 选项相反,后者表示“如果您愿意,可以将其放在此处”)
或\FloatBarrier
命令皮钦斯包裹。
如果表格或图片放在脚注下方,则浮点数(以前称为 stkernel)软件包来自凳子bundle 可以使用命令来修复这个“特性” \fnbelowfloat
:
\usepackage{stfloats}
\fnbelowfloat % puts footnotes below the bottom floats
以及脚杂带选项的包bottom
(参见答案托尔斯滕·多尼格):
\usepackage[bottom]{footmisc}