Hallo,

die Kopfzeile im theme AnnArbor scheint Links zu enthalten, da sich der Mauszeiger ändert. Beim Klicken passiert aber nicht die von mir erwartete Reaktion, dass man auf die erste Seite der section bzw. subsection springt. Ein Beispiel:

Open in Online-Editor
\documentclass[12pt]{beamer}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[ngerman]{babel}
\usetheme{AnnArbor}

\begin{document}

\section{Thema A}
\subsection{Unterthema 1}
\begin{frame}
  Frame 1
\end{frame}
\begin{frame}
  Frame 2
\end{frame}
\begin{frame}
  Frame 3
\end{frame}
\begin{frame}
  Frame 4
\end{frame}
\end{document}

Gibt es eine Möglichkeit, wenn ich z.B. auf der Seite "Frame4" bin und oben auf "Thema A" bzw. "Unterthema 1" klicke, die Präsentation auf Frame1 springt?

gefragt 24 Jul '15, 10:59

tom75's gravatar image

tom75
1.9k1545
Akzeptiert: 83%

bearbeitet 04 Sep '15, 06:34

esdd's gravatar image

esdd
14.2k53251


Die Lösung, die @tom75 angegeben hat, lässt sich durch ein gezieltes \unexpanded so erweitern, dass \operatorname im Argument von \section (ggf. zusammen mit \texorpdfstring) wieder funktioniert:

Open in Online-Editor
\documentclass[12pt]{beamer}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[ngerman]{babel}
\usetheme{AnnArbor}

\usepackage{etoolbox}
\makeatletter
\patchcmd{\beamer@section}
  {\def\insertsectionhead{\hyperlink{Navigation\the\c@page}{#1}}}
  {\edef\insertsectionhead{\noexpand\hyperlink{Navigation\the\c@page}{\unexpanded{#1}}}}
  {}{}
\patchcmd{\beamer@subsection}
  {\def\insertsubsectionhead{\hyperlink{Navigation\the\c@page}{#1}}}
  {\edef\insertsubsectionhead{\noexpand\hyperlink{Navigation\the\c@page}{\unexpanded{#1}}}}
  {}{}
\makeatother

\begin{document}

\section{\texorpdfstring{$\operatorname{e}$-Funktion}{e-Funktion}}
\subsection{Unterthema 1}
\begin{frame}
  Frame 1
\end{frame}
\begin{frame}
  Frame 2
\end{frame}
\begin{frame}
  Frame 3
\end{frame}
\begin{frame}
  Frame 4
\end{frame}
\end{document}

Der Vorteil dabei ist, dass dann auch komplexere Dinge wie \texorpdfstring{$\sqrt{e}$-Funktion}{Wurzel-e-Funktion} verwendet werden können.

Ein ähnliches Ergebnis kann man auch mit \protected@edef statt \edef erzielen.

Open in Online-Editor
\documentclass[12pt]{beamer}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[ngerman]{babel}
\usetheme{AnnArbor}

\usepackage{etoolbox}
\makeatletter
\patchcmd{\beamer@section}
  {\def\insertsectionhead{\hyperlink{Navigation\the\c@page}{#1}}}
  {\protected@edef\insertsectionhead{\noexpand\hyperlink{Navigation\the\c@page}{#1}}}
  {}{}
\patchcmd{\beamer@subsection}
  {\def\insertsubsectionhead{\hyperlink{Navigation\the\c@page}{#1}}}
  {\protected@edef\insertsubsectionhead{\noexpand\hyperlink{Navigation\the\c@page}{#1}}}
  {}{}
\makeatother

\begin{document}

\section{\texorpdfstring{$\operatorname{e}$-Funktion}{e-Funktion}}
\subsection{Unterthema 1}
\begin{frame}
  Frame 1
\end{frame}
\begin{frame}
  Frame 2
\end{frame}
\begin{frame}
  Frame 3
\end{frame}
\begin{frame}
  Frame 4
\end{frame}
\end{document}

Bei dieser Lösung muss man ggf. einzelne zerbrechliche Anweisungen selbst mit \protect schützen. Im gezeigten Beispiel ist ein explizites \protect jedoch nicht erforderlich, da viele Mathe-Befehle wie auch \operatorname oder \sqrt so definiert sind, dass sie quasi das \protect selbst mitbringen.

Permanenter link

beantwortet 08 Sep '15, 03:33

saputello's gravatar image

saputello
18.4k22352

bearbeitet 08 Sep '15, 05:03

@saputello: Lässt sich das \unexpanded{#1} generell verwenden, oder hat das andere Seiteneffekte?

Ggf. müsst man dem Autor das mitteilen, denn er hat den Patch für die nächste Version der beamer-Klasse so eingebaut.

(08 Sep '15, 03:51) tom75
1

@tom75: Soweit ich beurteilen kann, kann man das an dieser Stelle generell verwenden, da an der Stelle IMO nur \the\c@page expandiert werden muss/soll, Es verhindert schlicht, dass bei der Definition von \insert(sub)sectionhead das zweite Argument von \hyperlink bereits expandiert wird. Es wird also tatsächlich erst expandiert, wenn die Anweisung \insert(sub)sectionhead später expandiert wird.

Eigentlich sollte man an der Stelle mindestens \protected@edef statt \edef verwenden, damit \protect etc. in der Überschrift beachtet wird. Das genügt im Beispiel auch.

(08 Sep '15, 04:17) saputello
1

@saputello: Ich hab ihm gemailt.

(08 Sep '15, 04:53) tom75

Ich hab unter Navigation to section/subsection from Beamer headline titles eine Lösung gefunden. Es handelt sich um einen Fehler in beamerbasesection.sty, der in der nächsten Version von beamer behoben werden soll. Der Beitrag schlägt auch eine vorübergehende Lösung vor:

Open in Online-Editor
\documentclass[12pt]{beamer}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[ngerman]{babel}
\usetheme{AnnArbor}

\usepackage{etoolbox}
\makeatletter
\patchcmd{\beamer@section}
  {\def\insertsectionhead{\hyperlink{Navigation\the\c@page}{#1}}}
  {\edef\insertsectionhead{\noexpand\hyperlink{Navigation\the\c@page}{#1}}}
  {}{}
\patchcmd{\beamer@subsection}
  {\def\insertsubsectionhead{\hyperlink{Navigation\the\c@page}{#1}}}
  {\edef\insertsubsectionhead{\noexpand\hyperlink{Navigation\the\c@page}{#1}}}
  {}{}
\makeatother

\begin{document}

\section{Thema A}
\subsection{Unterthema 1}
\begin{frame}
  Frame 1
\end{frame}
\begin{frame}
  Frame 2
\end{frame}
\begin{frame}
  Frame 3
\end{frame}
\begin{frame}
  Frame 4
\end{frame}
\end{document}

Die obige Lösung funktioniert nicht, wenn man als section beispielsweise den folgenden Code verwendet:

Open in Online-Editor
\section{\texorpdfstring{$\operatorname{e}$-Funktion}{e-Funktion}}

Hier erhält man die Fehlermeldung

Argument of \@gobble has an extra }. ...{$\operatorname{e}$-Funktion}{e-Funktion}}

Im konkreten Fall, kann man die Fehlermeldung umgehen, wenn man einfach nur

Open in Online-Editor
\section{e-Funktion}

verwendet, da dies optisch das selbe Resultat liefert.

Permanenter link

beantwortet 25 Jul '15, 08:16

tom75's gravatar image

tom75
1.9k1545

bearbeitet 08 Sep '15, 05:07

saputello's gravatar image

saputello
18.4k22352

Deine Antwort auf die Frage (nicht auf andere Antworten)
Knebel-Vorschau

Folge dieser Frage

Per E-Mail:

Wenn Du Dich anmeldest, kannst Du Updates hier abonnieren

Per RSS:

Antworten

Antworten und Kommentare

Aktuelle Buch-Infos

LaTeX Cookbook

LaTeX Beginners Guide

Limitierter Rabatt ebook
50% Coupon code tDRet6Y

Markdown-Grundlagen

  • *kursiv* oder _kursiv_
  • **Fett** oder __Fett__
  • Link:[Text](http://url.com/ "Titel")
  • Bild?![alt Text](/path/img.jpg "Titel")
  • nummerierte Liste: 1. Foo 2. Bar
  • zum Hinzufügen ein Zeilenumbruchs füge einfach zwei Leerzeichen an die Stelle ein, an der die neue Zeile sein soll.
  • grundlegende HTML-Tags werden ebenfalls unterstützt

Zugeordnete Themen:

×94
×24
×3

Frage gestellt: 24 Jul '15, 10:59

Frage wurde angeschaut: 2,054 Mal

Zuletzt aktualisiert: 08 Sep '15, 05:07