1

I have two figures and one table which I want to be "grouped" together like this:

enter image description here

This is almost perfectly what I want, but there are 2 problems:

  1. As we can see, the title gives the correct index of the figure, but for the table, it gives me its index-1 and I have no idea why...
  2. When I try to reference the table, I don't get its number, instead I get the index of the whole figure and the "inner index" (the letter "c").

Do you know, how should I correct these mistakes?


My code (MWE) - LINK

\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}
  • To get "Table 1" in the caption, use \addtocounter{table}{1} before it. – user36296 Apr 13 '17 at 21:00
  • @samcarter: That would not provide a correct label/cross-referencing then. \refstepcounter{table} seems to be better here – user31729 Apr 13 '17 at 21:04
  • @ChristianHupfer Can you please explain? I get "Figure 1 & Table 1" in the caption and "table 1c and figure 1" in the text. And even after adding hyperref, the linked lead to the correct positions? – user36296 Apr 13 '17 at 21:08
  • @samcarter: Hm, strange, a \addtocounter call should not update the label information, however – user31729 Apr 13 '17 at 21:11
3

The table counter is not automatically incremented by the figure environment.

In the table subfloat you should specify

\refstepcounter{table} in order for it to work. I suggest it to be the first instruction.

I.e.:

\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}

Producing (with some images of mine) something like:

enter image description here

  • @ChristianHupfer fixed it, thx – Moriambar Apr 13 '17 at 21:07
  • 3
    Most impressive... the answering force is strong in you ;-) – user31729 Apr 13 '17 at 21:09
  • @ChristianHupfer lol… – Moriambar Apr 13 '17 at 21:12
  • This does exactly what I want - thank you very much! See link – Eenoku Apr 13 '17 at 21:13

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.