2

I desire that slides in beamer presentations have own framesubtiles. For this @samcarter_is_at_topanswers.xyz help me with this answer. It fulfil my basic request, but now I discover, that at figures in my presentation (which are numbered on request of audience) which are in "slides \only<+>{\framesubtitle{...} <slide content>} doesn't increment caption numbers and referencing this figures anywhere in presentation doesn't work.

MWE, which demonstrate my problem, is:

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

Result after three times of compilation is:

enter image description here

Zarko
  • 296,517

1 Answers1

3

You could exclude the figure counter from being reset like this:

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

enter image description here