nag l2tabu 标题/标签检查与 \subcaptionbox

nag l2tabu 标题/标签检查与 \subcaptionbox

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

相关内容