在 subfloat 中使用标签时出现错误数字,其中 subfig 和 caption=false

在 subfloat 中使用标签时出现错误数字,其中 subfig 和 caption=false

我正在使用 IEEEtran 类,我需要使用subfig带有caption=false选项的包。但是,当我像这样使用包时

\documentclass{article}
% Remove the caption=false and this work as intended
\usepackage[font=footnotesize,caption=false]{subfig}

\begin{document}

\begin{table}
\caption{My tables}
\centering
\begin{tabular}{cc}
\subfloat[\label{tab:1}]{%
\begin{tabular}{lc}
\hline\noalign{\smallskip}
a & b\\
\hline\noalign{\smallskip}
foo & bar\\\hline\noalign{\smallskip}
\end{tabular}%
}&%
\subfloat[]{%
\begin{tabular}{lc}
\hline\noalign{\smallskip}
a & b\\
\hline\noalign{\smallskip}
foo & bar\\\hline\noalign{\smallskip}
\end{tabular}%
\label{tab:2}
}%subfloat
\end{tabular}
\end{table}

Testing a reference to \ref{tab:1} and \ref{tab:2}.        
\end{document}

2a我获得了对和 的引用,2b而不是1a1b。但是,如果我删除 ,一切caption=false都会正常。但是,我需要使用该部分,以便 IEEEtran 类可以为标题设置正确的格式。

我有什么解决方案?我尝试移动\label,正如您在两种情况下看到的那样,但结果都一样。我在这里遗漏了什么吗?

答案1

一个肮脏的伎俩是加载字幕包 文档类。这样subfig 包很高兴,格式化字幕的文档类设置将覆盖字幕包的设置。

\RequirePackage{caption}
\let\abovecaptionskip\relax
\let\belowcaptionskip\relax
\documentclass{IEEEtran}
\usepackage{subfig}
\begin{document}
\begin{table}
\caption{My tables}
\label{table1}
\centering
\begin{tabular}{cc}
\subfloat[]{%
\begin{tabular}{lc}
\hline\noalign{\smallskip}
a & b\\
\hline\noalign{\smallskip}
foo & bar\\\hline\noalign{\smallskip}
\end{tabular}%
\label{tab:1}
}&%
\subfloat[]{%
\begin{tabular}{lc}
\hline\noalign{\smallskip}
a & b\\
\hline\noalign{\smallskip}
foo & bar\\\hline\noalign{\smallskip}
\end{tabular}%
\label{tab:2}
}%subfloat
\end{tabular}
\end{table}
Testing a reference to \ref{tab:1} and \ref{tab:2}.        
\end{document}

相关内容