表格下方的脚注,这是一个好的输出例程算法还是一个错误?

表格下方的脚注,这是一个好的输出例程算法还是一个错误?

考虑下面的最小代码,它根据表格位置标记产生两种不同的布局。

在此处输入图片描述在此处输入图片描述

第一个布局使用

\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}

编辑:

我查看了footmiscThorsten 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

  1. 回答这个问题:这是一个“功能”(参见埃格尔)。
  2. 如果我没看错的话,你对此并不完全满意。以下是“过度杀伤规则”,因此我给出了关于改变该“功能”的答案:

一般来说,当浮点数到达你不想让它们去的地方时,除了[htbp]作为浮点说明符之外,还可以使用[h], [h!],[H]来自漂浮包裹:

为浮动环境提供一个 [H] 选项,表示“将其放在此处”(与标准 [h] 选项相反,后者表示“如果您愿意,可以将其放在此处”)

\FloatBarrier命令皮钦斯包裹。

如果表格或图片放在脚注下方,则浮点数(以前称为 stkernel)软件包来自凳子bundle 可以使用命令来修复这个“特性” \fnbelowfloat

\usepackage{stfloats}
\fnbelowfloat % puts footnotes below the bottom floats

以及脚杂带选项的包bottom(参见答案托尔斯滕·多尼格):

\usepackage[bottom]{footmisc}

相关内容