Beamer: numeração e referência de legendas não funcionam (pergunta de acompanhamento)

Beamer: numeração e referência de legendas não funcionam (pergunta de acompanhamento)

Desejo que os slides das beamerapresentações tenham seus próprios framesubtile. Para isso @samcarter_is_at_topanswers.xyz me ajudeesta resposta. Ele atendeu ao meu pedido básico, mas agora descobri que as figuras da minha apresentação (que são numeradas a pedido do público) que estão nos "slides" \only<+>{\framesubtitle{...} <slide content>}não aumentam os números das legendas e fazer referência a essas figuras em qualquer lugar da apresentação não funciona.

MWE, que demonstra meu problema, é:

\documentclass{beamer}
    \setbeamertemplate{caption}[numbered]
\makeatletter
\newcommand*{\slideinframe}{\number\beamer@slideinframe}
\newcounter{bar}
\newcommand{\foo}{%
  \setcounter{bar}{\insertframeendpage}%
  \addtocounter{bar}{-\insertframestartpage}%
  \addtocounter{bar}{1}%
  (\slideinframe/\thebar)%
}
\makeatother



\usepackage{lipsum}

\begin{document}
    \begin{frame}
        \frametitle{Foo \foo}
        \only<+>{
            \framesubtitle{Bar}
\lipsum[1][1-3], see figure \ref{fig:ena}
    \begin{figure}%\centering
\includegraphics[width=0.5\linewidth]{example-image-a}
\caption{Figure ena}
\label{fig:ena}
    \end{figure}
        }
        \only<+>{
            \framesubtitle{Baz}
\lipsum[1][4-7], see figure \ref{fig:dva}
    \begin{figure}%\centering
\includegraphics[width=0.5\linewidth]{example-image-b}
\caption{Figure dva}
\label{fig:dva}
    \end{figure}
        }
    \end{frame}
\end{document}

O resultado após três vezes de compilação é:

insira a descrição da imagem aqui

Responder1

Você poderia impedir que o figurecontador fosse redefinido assim:

\documentclass{beamer}
\setbeamertemplate{caption}[numbered]

% Remove the figure counter from the list of counters that are reset after each overlay.
% modified from https://tex.stackexchange.com/a/15089/36296
\makeatletter
\def\donotresetfigures{{%
    \let\@@elt\relax
    \def\@elt##1{%
        \expandafter\ifx\csname ##1\endcsname\c@figure%
        \else%
            \@@elt {##1}%
        \fi%
    }%
    \edef\beamer@overlaycounterresets{\beamer@overlaycounterresets}%
    \let\@elt\relax%
    \def\@@elt{\@elt}%
    \xdef\beamer@overlaycounterresets{\beamer@overlaycounterresets}%
}}
\donotresetfigures
\makeatother

\begin{document}
    \begin{frame}
        \only<+>{
           see figure \ref{fig:ena}
            \begin{figure}
              \includegraphics[width=0.5\linewidth]{example-image-a}
              \caption{Figure ena}
              \label<.>{fig:ena}
            \end{figure}
        }
        \only<+>{
          see figure \ref{fig:dva}
          \begin{figure}
            \includegraphics[width=0.5\linewidth]{example-image-b}
            \caption{Figure dva}
            \label<.>{fig:dva}
          \end{figure}
        }
    \end{frame}
\end{document}

insira a descrição da imagem aqui

informação relacionada