Hallo,

ich hab mir Navigationssymbole definiert, die ich gerne auf einigen Frames abschalten (unsichtbar machen) würde. Gibt es dafür eine Möglichkeit, z.B. eine Option, die man bei \begin{frame} setzen kann?

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

\setbeamertemplate{navigation symbols}{\scriptsize\hyperlinkframeendprev{ $\vartriangleleft$ }\hyperlinkframestart{ $\vartriangle$ }\hyperlinkframeend{ $\triangledown$ }\hyperlinkframestartnext{ $\vartriangleright$ }}

\begin{document}

\begin{frame}
  Hier sollen die Navigationssysmbole erscheinen.
\end{frame}

\begin{frame}
  Hier sollen die Navigationssysmbole nicht erscheinen.
\end{frame}

\end{document}

gefragt 06 Sep '15, 16:22

tom75's gravatar image

tom75
2.2k277984
Akzeptiert-Rate: 57%


Soweit Option plain für die frame-Umgebung über das Ziel hinaus schießt, wäre eine einfache Lösung, den Navigationsbereich lokal als leer zu definieren:

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

\setbeamertemplate{navigation symbols}{\scriptsize\hyperlinkframeendprev{ $\vartriangleleft$ }\hyperlinkframestart{ $\vartriangle$ }\hyperlinkframeend{ $\triangledown$ }\hyperlinkframestartnext{ $\vartriangleright$ }}

\begin{document}

\begin{frame}
  Hier sollen die Navigationssysmbole erscheinen.
\end{frame}

{
\setbeamertemplate{navigation symbols}{}
\begin{frame}
  Hier sollen die Navigationssysmbole nicht erscheinen.
\end{frame}
}

\begin{frame}
  Hier sollen die Navigationssysmbole erscheinen.
\end{frame}

\end{document}

Etwas schöner wird es, wenn man dafür einen Schalter definiert:

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

\newif\ifNavBarOn\NavBarOntrue
\setbeamertemplate{navigation symbols}{\ifNavBarOn\scriptsize\hyperlinkframeendprev{ $\vartriangleleft$ }\hyperlinkframestart{ $\vartriangle$ }\hyperlinkframeend{ $\triangledown$ }\hyperlinkframestartnext{ $\vartriangleright$ }\fi}

\begin{document}

\begin{frame}
  Hier sollen die Navigationssysmbole erscheinen.
\end{frame}

\NavBarOnfalse
\begin{frame}
  Hier sollen die Navigationssysmbole nicht erscheinen.
\end{frame}
\NavBarOntrue

\begin{frame}
  Hier sollen die Navigationssysmbole erscheinen.
\end{frame}

\end{document}

Und das kann man dann über Verwendung von Wissen über den internen Aufbau von beamer, also letztlich durch einen Hack, noch einen Tick schöner machen:

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

\newif\ifNavBarOff
\makeatletter
\define@key{beamerframe}{nonavbar}[true]{%
  \csname NavBarOff#1\endcsname
}
\makeatother
\setbeamertemplate{navigation symbols}{\ifNavBarOff\global\NavBarOfffalse\else\scriptsize\hyperlinkframeendprev{ $\vartriangleleft$ }\hyperlinkframestart{ $\vartriangle$ }\hyperlinkframeend{ $\triangledown$ }\hyperlinkframestartnext{ $\vartriangleright$ }\fi}

\begin{document}

\begin{frame}
  Hier sollen die Navigationssysmbole erscheinen.
\end{frame}

\begin{frame}[nonavbar]
  Hier sollen die Navigationssysmbole nicht erscheinen.
\end{frame}

\begin{frame}
  Hier sollen die Navigationssysmbole erscheinen.
\end{frame}

\end{document}

Auch mit Option beamer-Option handout funktioniert das noch:

Open in Online-Editor
\documentclass[12pt,handout]{beamer}
\usepackage[utf8]{inputenc}
\usetheme{AnnArbor}

\newif\ifNavBarOff
\makeatletter
\define@key{beamerframe}{nonavbar}[true]{%
  \csname NavBarOff#1\endcsname
}
\makeatother
\setbeamertemplate{navigation symbols}{\ifNavBarOff\global\NavBarOfffalse\else\scriptsize\hyperlinkframeendprev{ $\vartriangleleft$ }\hyperlinkframestart{ $\vartriangle$ }\hyperlinkframeend{ $\triangledown$ }\hyperlinkframestartnext{ $\vartriangleright$ }\fi}

\begin{document}

\begin{frame}
  Hier sollen die Navigationssysmbole erscheinen.
\end{frame}

\begin{frame}[nonavbar]
  Hier sollen die Navigationssysmbole nicht erscheinen.
\end{frame}

\begin{frame}
  Hier sollen die Navigationssysmbole erscheinen.
\end{frame}

\end{document}

Zeigt im Online-Editor, dass auf der zweiten Seite keine Navigationssymbole stehen:

Ergebnis in Overleaf

Permanenter link

beantwortet 07 Sep '15, 07:44

saputello's gravatar image

saputello
11.1k174365
Akzeptiert-Rate: 51%

bearbeitet 08 Sep '15, 08:36

Vielen Dank erstmal. Die Lösung mit der Option [nonavbar] find ich sehr schön! Mit [plain] gehen die Navigationssymbole bei mir übrigens nicht weg.

Noch ein Problem: wenn ich die handout-Option setze, verschwinden die Navigationssymbole nicht mehr. Ich glaube, das hat nichts mit deinem Hack zu tun sondern tritt grundsätzlich auf, wenn man selbst Navigationssymbole definiert. Vermutlich hilft hier nur eine Fallunterscheidung mit \mode<handout>{\setbeamertemplate{navigation symbols}{}} und den Hack von dir in \mode<beamer>{...}.

(07 Sep '15, 11:40) tom75

@tom75: Wenn man in meinem letzten Beispiel \documentclass[12pt,handout]{beamer} verwendet, also lediglich die Option handout für beamer ergänzt, werden mit beamer 2015/01/05 3.36 und beamerbasenavigation.sty 2015/02/27 (aktuelle Version von TeX Live) die Navigationssymbole ebenfalls nicht ausgegeben. Frames mit Option plain haben hingegen in der Tat (ohne Option nonavbar) tatsächlich die Navigationssymbole.

(07 Sep '15, 19:48) saputello

@saputello: Ich hab die selben Versionen, allerdings mit MikTeX:

beamer.cls 2015/01/05 3.36 A class for typesetting presentations (rcs-revision 8a39122e1f63)

und

beamerbasenavigation.sty 2015/02/27 (rcs-revision 923f4bf87efa)

Die Symbole sind da, wenn ich \documentclass[12pt,handout]{beamer} verwende. Ebenso in Overleaf.

(07 Sep '15, 21:14) tom75

@tom75: Nein, in Overleaf sind die Navigationssymbole mit Option handout auf Seite 2 im Beispiel ebenfalls weg. Ich habe zum Beweis in der Antwort sowohl ein entsprechendes VM eingefügt, als auch einen Screenshot, der genau die Darstellung in Overleaf zeigt. Selbst mit \usepackage{pgfpages} \pgfpagesuselayout{2 on 1}[a4paper,border shrink=5mm] funktioniert es nach meinen Tests noch! Auch die Kombination mit plain habe ich getestet. Also machst Du irgend etwas, das Du uns verschweigst oder schaust die falsche Seite an.

(08 Sep '15, 08:34) saputello

@saputello: Es handelt sich um ein Missverständnis, ich hab etwas anderes gemeint: Normalerweise, sind bei handout die Symbole auf allen Seiten weg (in einem Handout braucht man keine Navigationssymbole). Aber wenn man selbst Navigationssysmbole definiert, dann sind die trotz handout vorhanden. Das hat nichts mit deinem Code zu tun.

(08 Sep '15, 08:51) tom75

@tom75: Das hat dann aber mit der Frage primär nichts zu tun, sondern wäre ein Fall für eine neue Frage.

(08 Sep '15, 09:03) saputello

@saputello: Einverstanden, ich erstelle eine entsprechende Frage.

(08 Sep '15, 09:04) tom75
Ergebnis 5 von 7 show 2 more comments
Deine Antwort
Vorschau umschalten

Folgen dieser Frage

Per E-Mail:

Wenn sie sich anmelden, kommen Sie für alle Updates hier in Frage

Per RSS:

Antworten

Antworten und Kommentare

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ügen Sie einfach zwei Leerzeichen an die Stelle an der die neue Linie sein soll.
  • grundlegende HTML-Tags werden ebenfalls unterstützt

Frage-Themen:

×141
×27
×4

gestellte Frage: 06 Sep '15, 16:22

Frage wurde gesehen: 9,771 Mal

zuletzt geändert: 08 Sep '15, 09:19