beamer + lstlistings + superposición -> numeración incorrecta en el título

beamer + lstlistings + superposición -> numeración incorrecta en el título

En mi archivo tex tengo el siguiente código. Esto da como resultado que el Listado se numere con un índice creciente. ¿Hay alguna manera de evitar que esto suceda? (ver captura de pantalla: la segunda diapositiva también debería decir "Listado 1: Función")MWE

\documentclass{beamer}
\usetheme{Goettingen}
%\usecolortheme{whale}

\setbeamertemplate{frametitle continuation}[from second] % (cont.) from second slide
\setbeamertemplate{bibliography item}{[\theenumiv]} % numbers instead of silly pictures
\setbeamertemplate{footline}[frame number]
\beamertemplatenavigationsymbolsempty % remove navigationbar

\usepackage[font=bf,skip=\baselineskip]{caption}
\captionsetup[lstlisting]{font={footnotesize}}

\usepackage{color}
\definecolor{light-gray}{gray}{0.85}
\definecolor{darkgreen}{rgb}{0.0, 0.5, 0.0} % for green colour in code
\usepackage{listings}
\usepackage[T1]{fontenc}
\lstset{
    basicstyle=\tiny,
    escapeinside={<@}{@>},
    numbers=left, 
    language=C, 
    morekeywords={throw, assert},
    frame=single,
    captionpos=b,
    commentstyle=\color{darkgreen}}


\begin{document}
\begin{frame}[fragile,containsverbatim]{Example}
    \begin{lstlisting}[caption={Function}]
functionA(x){
  a = functionB(x)
  return a
}

functionB(x){
  b =  <@\only<1>{GLOBAL\_VAR}\only<2>{\textcolor{darkgreen}{GLOBAL\_VAR}}@>
  b++
  return b
}
    \end{lstlisting}
\end{frame}

\end{document}

Respuesta1

Lo que necesitas es

\resetcounteronoverlays{lstlisting}

para evitar que el contador aumente cuando se utilizan superposiciones. El código completo:

\documentclass{beamer}
\usetheme{Goettingen}
%\usecolortheme{whale}

\setbeamertemplate{frametitle continuation}[from second] % (cont.) from second slide
\setbeamertemplate{bibliography item}{[\theenumiv]} % numbers instead of silly pictures
\setbeamertemplate{footline}[frame number]
\beamertemplatenavigationsymbolsempty % remove navigationbar

\usepackage[font=bf,skip=\baselineskip]{caption}
\captionsetup[lstlisting]{font={footnotesize}}

\usepackage{color}
\definecolor{light-gray}{gray}{0.85}
\definecolor{darkgreen}{rgb}{0.0, 0.5, 0.0} % for green colour in code
\usepackage{listings}
\usepackage[T1]{fontenc}
\lstset{
    basicstyle=\tiny,
    escapeinside={<@}{@>},
    numbers=left, 
    language=C, 
    morekeywords={throw, assert},
    frame=single,
    captionpos=b,
    commentstyle=\color{darkgreen}}

\resetcounteronoverlays{lstlisting}

\begin{document}
\begin{frame}[fragile,containsverbatim]{Example}
    \begin{lstlisting}[caption={Function}]
functionA(x){
  a = functionB(x)
  return a
}

functionB(x){
  b =  <@\only<1>{GLOBAL\_VAR}\only<2>{\textcolor{darkgreen}{GLOBAL\_VAR}}@>
  b++
  return b
}
    \end{lstlisting}
\end{frame}

\end{document}

El resultado:

ingrese la descripción de la imagen aquí

información relacionada