이를 사용하는 다음 MWE를 고려하십시오.답변각 프레임에 대한 북마크를 생성하려면:
\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}
옵션이 제공 되면 allowframebreaks
언급된 옵션으로 생성된 각 새 프레임에 대해 북마크가 생성된다는 의미입니다. 나는 이러한 "연속" 프레임의 북마크가 적절한 프레임 제목(예: "Baz"가 아닌 "Baz II")을 가지거나 옵션에 의해 생성된 프레임이 아닌 첫 번째 프레임에 대한 북마크를 생성하기를 원합니다 allowframebreak
.
답변1
북마크에 계산 횟수 삽입
이 접근 방식의 기본 아이디어는 가 \insertcontinuationcount
0보다 큰지 확인하는 것입니다. 이 경우 연속 횟수가 북마크에 추가됩니다.
\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}
첫 번째 프레임에만 북마크
이 접근 방식은 위의 접근 방식과 매우 유사합니다. 그러나 이제 북마크는 가 \insertcontinuationcount
2보다 작은 경우에만 추가됩니다. 이는 "일반" 프레임의 경우 0이고 연속의 첫 번째 프레임의 경우 1이기 때문입니다.
\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}