这个问题refcheck
提到了、subcaption
和之间的冲突hyperref
,并提出了一个补丁来帮助处理由于而导致的一些问题hyperref
。
我想知道是否有解决和问题的方法refcheck
,subcaption
即refcheck
警告由于sub@
前缀而导致的未使用标签。
例如,在此 MWE 中:
\documentclass[11pt]{report}
\usepackage{subcaption}
\usepackage{refcheck}
\begin{document}
Figure \ref{fig:1a}, inside Figure \ref{fig:1}.
\begin{figure}
\begin{subfigure}{0.45\textwidth}
\caption{A subcaption}
\label{fig:1a}
\end{subfigure}
\caption{A caption}
\label{fig:1}
\end{figure}
\end{document}
标签fig:1
和fig:1a
均被引用,但refcheck
仍然报告:
Package refcheck Warning: Unused label `sub@fig:1a' on input line 12.
有没有办法避免警告?
答案1
这重新定义了子标题标签命令,以始终报告所使用的虚拟标签“sub@label”。
\documentclass[11pt]{report}
\usepackage{subcaption}
\usepackage{refcheck}
\makeatletter
\let\orig@subcaption@@label\subcaption@@label
\def\subcaption@@label#1#2{\usedref{sub@#2}\orig@subcaption@@label{#1}{#2}}
\makeatother
\begin{document}
Figure \ref{fig:1a}, inside Figure \ref{fig:1}.
\begin{figure}
\begin{subfigure}{0.45\textwidth}
\caption{A subcaption}
\label{fig:1a}
\end{subfigure}
\caption{A caption}
\label{fig:1}
\end{figure}
\end{document}