5

Adapted from Thorsten Donigs answer in Table and figure side-by-side with independent captions

The Caption correctly numbers the figure and table but how does the correct setup of the labels independently for the figure and the table for referencing in the text work in this example?

\documentclass[11pt,a4paper,english]{report}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{babel}
\usepackage[font=small,labelfont=bf]{caption}
\usepackage{hyperref}
\usepackage{graphicx}

\DeclareCaptionLabelFormat{andtable}{#1~#2  \&  \tablename~\thetable}

\begin{document}

\begin{figure}[!ht]
    \centering
       \rule{3cm}{3cm}
    \caption{pic1}
\end{figure}

\autoref{tab:table123} %will give Figure 2 instead of Table 1.

\begin{figure}[!ht]
    \centering
       \rule{3cm}{3cm}
    \hfill
    \begin{tabular}[b]{cc}\hline
      Table head & Table head \\ \hline
      Some values & Some values \\
      Some values & Some values \\\hline
    \end{tabular}
    \captionlistentry[table]{entry for table}
    \captionsetup{labelformat=andtable}
    \caption{some caption for both.}
    \label{tab:table123}
    \label{fig:pic2}
\end{figure}

\end{document}
Moriambar
  • 11,466
Dircandis
  • 105

1 Answers1

5

You need to label the point at which the relevant counter is incremented, and tell hyperref you are labelling a table even though it is a figure environment.

\captionlistentry[figure]{entry for figure}
\label{fig:figure345}
\captionlistentry[table]{entry for table}
{\makeatletter\edef\@currentHref{table.caption.\the\c@table}\label{tab:table123}}
David Carlisle
  • 757,742