Betrachten Sie das folgende MWE, das dies verwendetAntwortum für jeden Frame ein Lesezeichen zu generieren:
\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}
Wenn allowframebreaks
die Option angegeben ist, bedeutet dies, dass für jeden neuen Frame, der durch die erwähnte Option erstellt wird, ein Lesezeichen generiert wird. Ich möchte, dass die Lesezeichen dieser „Fortsetzungs“-Frames entweder den richtigen Frametitel haben (also „Baz II“ statt nur „Baz“) oder dass nur ein Lesezeichen für den ersten Frame generiert wird und nicht für die Frames, die durch die allowframebreak
Option erstellt werden.
Antwort1
Zählimpuls in Lesezeichen einfügen
Die Grundidee hinter diesem Ansatz besteht darin, zu prüfen, ob der Wert \insertcontinuationcount
größer als 0 ist. In diesem Fall wird die Fortsetzungsanzahl zum Lesezeichen hinzugefügt.
\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}
Nur Lesezeichen für den ersten Frame
Dieser Ansatz ist dem obigen sehr ähnlich. Allerdings wird jetzt nur dann ein Lesezeichen hinzugefügt, wenn der Wert \insertcontinuationcount
kleiner als 2 ist, da er bei „normalen“ Frames 0 und bei dem ersten Frame einer Fortsetzung 1 ist.
\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}