Rotulagem independente de uma Figura e Tabela (no mesmo ambiente de Figura) com uma legenda combinada

Rotulagem independente de uma Figura e Tabela (no mesmo ambiente de Figura) com uma legenda combinada

Estou tentando fazer referência a uma figura e uma tabela (com ~\ref{}) em meu documento. Coloquei os dois elementos em um ambiente de figura (figura primeiro, tabela depois, ambos dentro de uma minipágina) para que fossem exibidos um ao lado do outro. Para uma melhor visualização estou usando uma legenda combinada. Encontrei uma solução para o problema do rótulo nestealimentar. Agora posso chamar minha figura e a mesa. No entanto, a referência da tabela parece estar vinculada ao número da figura. O problema é que tenho figuras e tabelas no meu documento que estão em seus ambientes normais e os contadores no local onde aparece essa figura/tabela combinada não são os mesmos para a figura e a tabela.

Alguém tem sugestões sobre como corrigir isso para mostrar os números corretos da tabela e das figuras? No meu preâmbulo também definiesse:

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

para me permitir usar uma legenda combinada de figura e tabela. Está funcionando como deveria e indica a figura e o número da tabela corretos. É apenas o rótulo e a referência que não está funcionando com o contador correto.

Aqui está o que usei para a figura/tabela.

\begin{figure}[h]
    \centering
    \begin{minipage}{0.49\textwidth}
        \centering
        \includegraphics[width=1.0\columnwidth]{picture.jpg}%}
\end{minipage}
\begin{minipage}{0.49\textwidth}
    \centering
    \captionsetup{type=table}
    \resizebox{0.9\linewidth}{!}{%
        \begin{tabular}{lll}
        *my table contents*
        \end{tabular}%
    }
\end{minipage}
\captionsetup{labelformat=figandtab}
\caption{combined caption}
\label{fig:figure_label}
{\makeatletter\edef\@currentHref{table.caption.\the\c@table}\label{tab:table_label}}
\end{figure}

Ficarei grato pela sua ajuda!

Responder1

Você pode usar o comando \captionof{<figure or table>}{<text>}(pacote caption). Ele cuidará de todo o dever de casa.

c

\documentclass[12pt]{article}

\usepackage{graphicx}
\usepackage{caption} % needed <<<<<<<<<<<<<<<<<<<<<<

\begin{document}
    \listoftables
    \listoffigures
    
    \begin{figure}[h]
        \centering
        \begin{minipage}{0.49\textwidth}
            \centering
            \includegraphics[width=1.0\linewidth]{example-image}%}
        \end{minipage}
        \begin{minipage}{0.49\textwidth}
            \centering
            \captionof{table}{A table caption}\label{tab:table_label}
            \resizebox{0.9\linewidth}{!}{%
                \begin{tabular}{lll}
                    *my table contents*
                \end{tabular}%
            }
        \end{minipage}      
        \captionof{figure}{combined caption}
        \label{fig:figure_label}
    \end{figure}

See the figure~\ref{fig:figure_label} and the adjoining table~\ref{tab:table_label}.

\end{document}
    

Responder2

Isso executa as mesmas funções que \caption. Observe que os hiperlinks vão para o topo das minipáginas.

\documentclass{article}
\usepackage{graphicx}
\usepackage{hyperref}
\begin{document}
\listoffigures

\listoftables

\begin{figure}[ht]
\centering
    \begin{minipage}{0.49\textwidth}
        \refstepcounter{figure}\label{fig:figure label}%
        \addcontentsline{lof}{figure}{\protect\numberline{\thefigure}LOF caption}%
        \centering
        \includegraphics[width=\linewidth]{example-image}%}
    \end{minipage}
    \begin{minipage}{0.49\textwidth}
        \refstepcounter{table}\label{tab:table_label}%
        \addcontentsline{lot}{table}{\protect\numberline{\thetable}LOT caption}%
        \centering
        \resizebox{0.9\linewidth}{!}{%
            \begin{tabular}{lll}
            *my table contents*
            \end{tabular}%
        }
    \end{minipage}
\par\vskip\abovecaptionskip
\figurename~\thefigure~\&~\tablename~\thetable: yadda yadda yadda
\par\vskip\belowcaptionskip
\end{figure}

Link to \figurename~\ref{fig:figure label} and \tablename~\ref{tab:table_label}.
\end{document}

informação relacionada