비머: 캡션 번호 매기기 및 참조가 작동하지 않습니다(후속 질문)

비머: 캡션 번호 매기기 및 참조가 작동하지 않습니다(후속 질문)

beamer프레젠테이션 의 슬라이드에 고유한 가 있기를 바랍니다 framesubtile. 이에 대해 @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}

여기에 이미지 설명을 입력하세요

관련 정보