nag 包抱怨 {table}[H] 之后章节的标签

nag 包抱怨 {table}[H] 之后章节的标签

考虑以下 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行李箱里的大象问题)。

根据经验,任何带标题的对象(图像或表格数据)都应允许浮动;如果可能,当文档为文本和页面尺寸的最终形式时,可以进行更合理的放置。对于无标题的对象,可以什么都不用,只需将对象放置为普通框,或者使用centerequation等等,具体取决于对象的性质。

就您而言,我猜center您需要的是一个简单的环境。

相关内容