我正在使用 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
而不是1a
和1b
。但是,如果我删除 ,一切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}