subfig - 图形环境中表格的引用问题

subfig - 图形环境中表格的引用问题

我有两个图形和一张表格,我想将它们像这样“组合”在一起:

在此处输入图片描述

这几乎完全是我想要的,但是有两个问题:

  1. 我们可以看到,标题给出了图形的正确索引,但是对于表格,它给出了它的索引-1,我不知道为什么......
  2. 当我尝试引用该表时,我没有得到它的编号,而是得到了整个图形的索引和“内部索引”(字母“c”)。

你知道我该怎样改正这些错误吗?


我的代码 (MWE) -关联

\documentclass{article}
\usepackage{hhline}
\usepackage{graphicx}
\usepackage{subfig}
\usepackage{float}
\usepackage[tableposition=top]{caption}
\DeclareCaptionLabelFormat{andtable}{#1~#2  \&  \tablename~\thetable}

\begin{document}
%\addtocounter{table}{1}
\begin{figure}[!htb]
\begin{minipage}{0.3\textwidth}
\subfloat[]{%
\includegraphics[scale=0.22]{actionK-HTFETI-cv1.png}
}\\
\subfloat[]{%
\includegraphics[scale=0.22]{actionK-HTFETI-cv2.png}
}
\end{minipage}\hspace{8em}
\subfloat[]{%
\label{tab:actionK-HTFETI-crossVal}
\begin{tabular}{rll}
\textbf{Iter} & \textbf{RMSE} & \textbf{MAPE} \\
\textbf{1} & 0.005235 & 0.141316 \\
\textbf{2} & 0.007103 & 0.138670 \\
\textbf{3} & 0.005464 & 0.220107 \\
\textbf{4} & 0.007080 & 0.184871 \\
\textbf{5} & 0.006369 & 0.220926 \\
\textbf{6} & 0.007130 & 0.234072 \\
\textbf{7} & 0.007505 & 0.222066 \\
\textbf{8} & 0.005203 & 0.179255 \\
\textbf{9} & 0.007091 & 0.277452 \\
\textbf{10} & 0.005718 & 0.165361 \\
\textbf{11} & 0.005801 & 0.160772 \\
\textbf{12} & 0.004936 & 0.154611 \\
\textbf{13} & 0.005661 & 0.142787 \\
\textbf{14} & 0.005435 & 0.102461 \\
\textbf{15} & 0.005426 & 0.091041 \\
\hhline{===}
& \multicolumn{1}{l}{\textbf{mean(RMSE)}} & \multicolumn{1}{r}{0.006077} \\
& \multicolumn{1}{l}{\textbf{sd(RMSE)}} & \multicolumn{1}{r}{0.000874} \\
& \multicolumn{1}{l}{\textbf{mean(MAPE)}} & \multicolumn{1}{r}{0.175718} \\
& \multicolumn{1}{l}{\textbf{sd(MAPE)}} & \multicolumn{1}{r}{0.051386}
\end{tabular}
}
\captionsetup{labelformat=andtable}
\caption{Action of $K$ in HT-FETI - cross-validation}
\label{fig:actionK-HTFETI-crossVal}
\end{figure} 

I'm talking about table \ref{tab:actionK-HTFETI-crossVal} and figure \ref{fig:actionK-HTFETI-crossVal}.

\end{document}

答案1

计数器table不会随着figure环境而自动增加。

subfloat您应该在表中指定

\refstepcounter{table}才能使其正常工作。我建议将其作为第一条指令。

IE:

\documentclass{article}
\usepackage{hhline}
\usepackage{graphicx}
\usepackage{subfig}
\usepackage{float}
\usepackage[tableposition=top]{caption}
\DeclareCaptionLabelFormat{andtable}{#1~#2  \&  \tablename~\thetable}

\begin{document}
%\addtocounter{table}{1}
\begin{figure}[!htb]
\begin{minipage}{0.3\textwidth}
\subfloat[]{%
\includegraphics[scale=0.22]{actionK-HTFETI-cv1.png}
}\\
\subfloat[]{%
\includegraphics[scale=0.22]{actionK-HTFETI-cv2.png}
}
\end{minipage}\hspace{8em}
\subfloat[]{%
\refstepcounter{table}
\label{tab:actionK-HTFETI-crossVal}
\begin{tabular}{rll}
\textbf{Iter} & \textbf{RMSE} & \textbf{MAPE} \\
\textbf{1} & 0.005235 & 0.141316 \\
\textbf{2} & 0.007103 & 0.138670 \\
\textbf{3} & 0.005464 & 0.220107 \\
\textbf{4} & 0.007080 & 0.184871 \\
\textbf{5} & 0.006369 & 0.220926 \\
\textbf{6} & 0.007130 & 0.234072 \\
\textbf{7} & 0.007505 & 0.222066 \\
\textbf{8} & 0.005203 & 0.179255 \\
\textbf{9} & 0.007091 & 0.277452 \\
\textbf{10} & 0.005718 & 0.165361 \\
\textbf{11} & 0.005801 & 0.160772 \\
\textbf{12} & 0.004936 & 0.154611 \\
\textbf{13} & 0.005661 & 0.142787 \\
\textbf{14} & 0.005435 & 0.102461 \\
\textbf{15} & 0.005426 & 0.091041 \\
\hhline{===}
& \multicolumn{1}{l}{\textbf{mean(RMSE)}} & \multicolumn{1}{r}{0.006077} \\
& \multicolumn{1}{l}{\textbf{sd(RMSE)}} & \multicolumn{1}{r}{0.000874} \\
& \multicolumn{1}{l}{\textbf{mean(MAPE)}} & \multicolumn{1}{r}{0.175718} \\
& \multicolumn{1}{l}{\textbf{sd(MAPE)}} & \multicolumn{1}{r}{0.051386}
\end{tabular}
}
\captionsetup{labelformat=andtable}
\caption{Action of $K$ in HT-FETI - cross-validation}
\label{fig:actionK-HTFETI-crossVal}
\end{figure} 

I'm talking about table \ref{tab:actionK-HTFETI-crossVal} and figure \ref{fig:actionK-HTFETI-crossVal}.

\end{document}

制作(使用我的一些图像)类似的东西:

在此处输入图片描述

相关内容