这nag
与选项一起使用的包l2tabu
抱怨当\label
在浮点数中使用时没有跟在后面\caption
。不幸的是,它不明白\subcaptionbox
来自subcaption
包裹是标题。因此它在这里抱怨,但其实不应该抱怨:
\RequirePackage[l2tabu]{nag}
\documentclass{article}
\usepackage{subcaption}
\begin{document}
\begin{figure}
\subcaptionbox{Subfigure caption\label{example}}{subfigure content}
\caption{Main figure caption}
\end{figure}
\end{document}
示例输出:
Package nag Warning: \label in float, but not after \caption on input line 7.
(警告重复四次。)
关于如何教导创建标题,以及因此应该在这里允许这样做,有什么nag
建议\subcaptionbox
吗\label
?
答案1
有人可能会用这个非常肮脏的黑客手段来满足 nag 包的要求:
\RequirePackage[l2tabu]{nag}
\documentclass{article}
\usepackage{subcaption}
\makeatletter
\let\subcaptionboxORI\subcaptionbox
\renewcommand\subcaptionbox{%
\csname nag@hascaptiontrue\endcsname
\subcaptionboxORI}
\makeatother
\begin{document}
\begin{figure}
\subcaptionbox{Subfigure caption\label{example}}{subfigure content}
\caption{Main figure caption}
\end{figure}
\end{document}
不幸的是,这会产生不良的副作用:nag
包的内部标志现在将由设置\subcaptionbox*
,这也不会为创建引用\label
。这是错误的。
因此,更好的解决方案是更新caption
软件包至 3.3 版。此版本现已可用,并且包含对软件包的适配nag
。