Beamer: нумерация и ссылки на подписи не работают (дополнительный вопрос)

Beamer: нумерация и ссылки на подписи не работают (дополнительный вопрос)

Я хочу, чтобы слайды в beamerпрезентациях имели собственные framesubtiles. Для этого @samcarter_is_at_topanswers.xyz помогите мне сэтот ответ. Это удовлетворяет моим основным требованиям, но теперь я обнаруживаю, что на рисунках в моей презентации (которые пронумерованы по просьбе аудитории), которые находятся в «слайдах», \only<+>{\framesubtitle{...} <slide content>}не увеличиваются номера подписей, и ссылки на эти рисунки в любом месте презентации не работают.

MWE, демонстрирующий мою проблему, это:

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

Результат после трехкратной компиляции:

введите описание изображения здесь

решение1

figureИсключить сброс счетчика можно следующим образом:

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

введите описание изображения здесь

Связанный контент