考虑以下 MWE:
\RequirePackage[l2tabu, orthodox]{nag}
\documentclass[oneside, a4paper, 10pt]{book}
\usepackage{float}
\begin{document}
\begin{table}[H]
\end{table}
\chapter{Chapter}\label{chapter}
\end{document}
这将引发以下警告:
Package nag Warning: \label in float, but not after \caption on input line 9.
据我了解,nag 希望看到表格的标题,但并未意识到 属于\label
。\chapter
由于与该特定表格有关的语义原因,我无法为其添加标题。
除了忽略警告之外,我还有什么选择?
(请注意,线程为什么环境的标签必须出现在标题之后?处理稍微不同的问题并且这个线程不是重复的。)
答案1
一个常见的误解是tabular
环境需要有table
环境围绕。事实并非如此:对于 TeX 来说,atabular
就像一个大字符(a盒子,用更正确的术语来说),其垂直和水平尺寸以及其参考点(可以通过使用[t]
或[b]
选项来影响\begin{tabular}
)。
同样适用于\includegraphics
:不需要在figure
环境内:它创建一个类似的框,tabular
并且 TeX 使用这个框。
另一个常见的误解是关于包提供的[H]
选项的实用性。相反,它完全没用,或者更确切地说,对于排版来说很危险(\begin{table}
float
行李箱里的大象问题)。
根据经验,任何带标题的对象(图像或表格数据)都应允许浮动;如果可能,当文档为文本和页面尺寸的最终形式时,可以进行更合理的放置。对于无标题的对象,可以什么都不用,只需将对象放置为普通框,或者使用center
,equation
等等,具体取决于对象的性质。
就您而言,我猜center
您需要的是一个简单的环境。