Marcadores de Beamer con enableframbreaks

Marcadores de Beamer con enableframbreaks

Considere el siguiente MWE que utiliza esterespuestapara generar un marcador para cada fotograma:

\documentclass{beamer}

\usepackage{etoolbox}
\usepackage{lmodern}
\usepackage{lipsum}

\usepackage{bookmark}
\makeatletter
\apptocmd{\beamer@@frametitle}{%
  \only<1>{\bookmark[page=\the\c@page,level=3]{#1}}}%
\makeatother

\begin{document}
\begin{frame}
  \frametitle{Foo}
\end{frame}
\begin{frame}[allowframebreaks]
  \frametitle{Baz}
  \lipsum
\end{frame}
\end{document}

Cuando allowframebreaksse da la opción esto significa que se genera un marcador para cada uno de los nuevos fotogramas creados por la opción mencionada. Quiero que los marcadores de estos fotogramas de "continuación" tengan el título de fotograma adecuado (es decir, "Baz II" en lugar de solo "Baz") o simplemente generen un marcador para el primer fotograma y no para los creados por la allowframebreakopción.

ingrese la descripción de la imagen aquí

Respuesta1

Insertar recuento de continuación en el marcador

La idea básica detrás de este enfoque es verificar si \insertcontinuationcountes mayor que 0. En este caso, el recuento de continuación se agrega al marcador.

\documentclass{beamer}

\usepackage{etoolbox}
\usepackage{lmodern}
\usepackage{lipsum}

\usepackage{bookmark}
\makeatletter
\apptocmd{\beamer@@frametitle}{%
    \only<1>{\bookmark[page=\the\c@page,level=3]{#1 \expandafter\ifnum\insertcontinuationcount>0\relax\insertcontinuationcount\fi}}}%
\makeatother

\begin{document}
    \begin{frame}
        \frametitle{Foo}
    \end{frame}
    \begin{frame}[allowframebreaks]
        \frametitle{Baz}
        \lipsum
    \end{frame}
\end{document}

ingrese la descripción de la imagen aquí


Sólo marcadores para el primer fotograma

Este enfoque es muy similar al anterior. Pero ahora, solo se agrega un marcador si es \insertcontinuationcountmenor que 2, porque es 0 para fotogramas "normales" o 1 para el primer fotograma de una continuación.

\documentclass{beamer}

\usepackage{etoolbox}
\usepackage{lmodern}
\usepackage{lipsum}

\usepackage{bookmark}
\makeatletter
\apptocmd{\beamer@@frametitle}{%
    \only<1>{\expandafter\ifnum\insertcontinuationcount<2\relax\bookmark[page=\the\c@page,level=3]{#1}\fi}}%
\makeatother

\begin{document}
    \begin{frame}
        \frametitle{Foo}
    \end{frame}
    \begin{frame}[allowframebreaks]
        \frametitle{Baz}
        \lipsum
    \end{frame}
\end{document}

ingrese la descripción de la imagen aquí

información relacionada