This behavior is controlled by (beamerbasenavigation.sty
line 734-741)
\def\beamer@link(#1/#2){%
\def\beamer@goto{{Navigation#1}}% default: first slide of frame
\ifnum\c@page<#2%
\ifnum\c@page<#1\else% go to last slide of frame, on all slides of
% the frame, except for the last one
\def\beamer@goto{{Navigation#2}}% jump to last slide of frame
\fi\fi%
\expandafter\hyperlink\beamer@goto}
Here is the logic in human language:
Say there is a frame that spans across pages 5, 6, 7, 8
and you click the hyperlink dot.
- At page 1-4, you will be brought to page 5.
- At page 5-7, you will be brought to page 8.
- At page 8-end, you will be brought to page 5.
You can redefine this macro to achieve your logic, for instance
\def\beamer@link(#1/#2){%
\ifnum\c@page<#1%
\def\beamer@goto{{Navigation#1}}%
\else%
\def\beamer@goto{{Navigation#2}}%
\fi%
\expandafter\hyperlink\beamer@goto%
}
- At page 1-4, you will be brought to page 5.
- At page 5-end, you will be brought to page 8.
One more example
\makeatletter
\def\beamer@link(#1/#2){%
\ifnum\c@page<#1%
\def\beamer@goto{{Navigation#1}}%
\else\ifnum\c@page<#2
\def\beamer@goto{{Navigation\the\numexpr\c@page+1}}%
\else\ifnum\c@page=#2%
\def\beamer@goto{{Navigation#1}}%
\else%
\def\beamer@goto{{Navigation#2}}%
\fi\fi\fi%
\expandafter\hyperlink\beamer@goto%
}
- At page 1-4, you will be brought to page 5.
- At page 5-7, you will be brought to the next page.
- At page 8, you will be brought to page 5.
- at page 9-end, you will be brought to page 8.
This one allows you to cycle through the frame by smashing the hyperlink dot.
Playing code
\documentclass[xcolor=dvipsnames,onlyslideswithnotes,t]{beamer}
\setbeamertemplate{footline}[frame number]
\usetheme{Frankfurt}
\setbeamertemplate{navigation symbols}{}
\usepackage{tikz}
\begin{document}
\section{Jump}
\makeatletter
\def\beamer@link(#1/#2){%
\ifnum\c@page<#1%
\def\beamer@goto{{Navigation#1}}%
\else\ifnum\c@page<#2
\def\beamer@goto{{Navigation\the\numexpr\c@page+1}}%
\else\ifnum\c@page=#2%
\def\beamer@goto{{Navigation#1}}%
\else%
\def\beamer@goto{{Navigation#2}}%
\fi\fi\fi%
\expandafter\hyperlink\beamer@goto%
}
\frame{
\vfill
first frame
page 1 \pause
page 2 \pause
page 3 \pause
page 4
}
\frame{
\vfill
second frame
page 5 \pause
page 6 \pause
page 7 \pause
page 8
}
\frame{
\vfill
third frame
page 9 \pause
page 10 \pause
page 11 \pause
page 12
}
\part{visualization}
\def\hyperlink#1{\def\gotothisnode{#1}}
\frame{
\vfill
\centering
\tikz[xscale=.8]{
\draw
\foreach\p in{1,...,12}{
(\p,2)node[circle](Frompageno\p){\p}
}
\foreach\p in{5,6,7,8}{
(\p,0)node[circle](Navigation\p){\p}
}
;
\foreach\p in{1,...,12}{
\c@page\p\relax
\beamer@link(5/8)
\draw[-latex](Frompageno\p)--(\gotothisnode);
}
}
}
\end{document}
\mode<handout>
?\mode<handout>
is used. And I tried it in my presentation that does compile but shows the problem stated above.