Considere o seguinte MWE que usa esteresponderpara gerar um marcador para cada quadro:
\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}
Quando allowframebreaks
a opção é dada, isso significa que um marcador é gerado para cada um dos novos quadros criados pela opção mencionada. Quero que os marcadores desses quadros de "continuação" tenham o título do quadro adequado (ou seja, "Baz II" em vez de apenas "Baz") ou apenas gerem um marcador para o primeiro quadro e não para aqueles criados pela allowframebreak
opção.
Responder1
Inserir contagem de contagem no marcador
A ideia básica por trás dessa abordagem é verificar se \insertcontinuationcount
é maior que 0. Nesse caso, a contagem de continuação é adicionada ao 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}
Apenas marcadores para o primeiro quadro
Esta abordagem é muito semelhante à acima. Mas agora, um marcador só é adicionado se \insertcontinuationcount
for menor que 2, porque é 0 para quadros "normais" ou 1 para o primeiro quadro de uma continuação.
\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}