Hallo Leute, ich habe vor in einer Präsentation Algorithmen zu verwenden. Einfache Pseudocodes, die in document book super funktioniert haben. Jetzt habe ich diese im document beamer eingefügt und wollte sie nach und nach aufblenden. Das habe ich mit uncover versucht und wie in diesem Beispiel auch mit pause. Das Problem ist, dass beim weiterklicken sich die Nummerierung des Algorithmus ändert. Es ist also anfangs Algorithmus 1, nach dem klicken Algorithmus 2.... Ich habe es auch schon mit cation* versucht, allerdings wird es dann zu Algorithmus 0.... Könnt ihr mir helfen?

Open in Online-Editor
    \documentclass[xcolor={dvipsnames}]{beamer}
\usepackage{ngerman}
\usepackage[utf8]{inputenc}
\usepackage{amsmath,amssymb}
\usepackage{fancybox}
\usepackage{pict2e}
\usepackage{lmodern}
\usepackage{array}
\usepackage{mathtools}
\usepackage{caption}
\usepackage{algpseudocode}
\usepackage[linesnumbered, vlined, german, ruled]{algorithm2e}

\begin{document}

\begin{frame}
\frametitle{Greedy-Algorithmus}

\begin{algorithm}[H]
\caption{test algorithmus}
\pause
\KwIn{rein}
\pause
\KwOut{raus}
\pause
step 1
step 2
step 3
\end{algorithm}

\end{frame}

\end{document}

gefragt 16 Mär, 11:32

racoon9's gravatar image

racoon9
775
Akzeptiert: 66%

1
(16 Mär, 13:48) saputello

beamer weiß nicht, dass es den Zähler für Overlays sichern muss. Man kann das aber notfalls selbst erledigen:

Open in Online-Editor
\documentclass[xcolor={dvipsnames}]{beamer}
\usepackage{ngerman}
\usepackage[utf8]{inputenc}
\usepackage{amsmath,amssymb}
\usepackage{fancybox}
\usepackage{pict2e}
\usepackage{lmodern}
\usepackage{array}
\usepackage{mathtools}
\usepackage{caption}
\usepackage{algpseudocode}
\usepackage[linesnumbered, vlined, german, ruled]{algorithm2e}
\newcounter{salgorithm}
\begin{document}

\begin{frame}
\frametitle{Greedy-Algorithmus}
\only<1>{\setcounter{salgorithm}{\value{algocf}}}% Am Anfang des ersten Overlays den aktuellen Zähler für Algorithmen sichern
\only<2->{\setcounter{algocf}{\value{salgorithm}}}% Am Anfang aller anderen Overlays den Zähler auf denselben Wert setzen, der am Anfang des ersten Overlays gültig war.
\begin{algorithm}[H]
\caption{test algorithmus}
\pause
\KwIn{rein}
\pause
\KwOut{raus}
\pause
step 1
step 2
step 3
\end{algorithm}

\end{frame}

\end{document}

Den Hilfszähler kannst Du immer wieder verwenden:

Open in Online-Editor
\documentclass[xcolor={dvipsnames}]{beamer}
\usepackage{ngerman}
\usepackage[utf8]{inputenc}
\usepackage{amsmath,amssymb}
\usepackage{fancybox}
\usepackage{pict2e}
\usepackage{lmodern}
\usepackage{array}
\usepackage{mathtools}
\usepackage{caption}
\usepackage{algpseudocode}
\usepackage[linesnumbered, vlined, german, ruled]{algorithm2e}
\newcounter{salgorithm}
\begin{document}

\begin{frame}
\frametitle{Greedy-Algorithmus}
\only<1>{\setcounter{salgorithm}{\value{algocf}}}
\only<2->{\setcounter{algocf}{\value{salgorithm}}}
\begin{algorithm}[H]
\caption{test algorithmus}
\pause
\KwIn{rein}
\pause
\KwOut{raus}
\pause
step 1
step 2
step 3
\end{algorithm}

\end{frame}

\begin{frame}
\frametitle{Noch ein Algorithmus}
\only<1>{\setcounter{salgorithm}{\value{algocf}}}
\only<2->{\setcounter{algocf}{\value{salgorithm}}}
\begin{algorithm}[H]
\caption{second test algorithmus}
\pause
\KwIn{rein}
\pause
\KwOut{raus}
\pause
step 1
step 2
step 3
\end{algorithm}

\end{frame}

\end{document}

Solange nur ein einziger Algorithmus auf der Seite ist, würde auch das einfachere:

Open in Online-Editor
\documentclass[xcolor={dvipsnames}]{beamer}
\usepackage{ngerman}
\usepackage[utf8]{inputenc}
\usepackage{amsmath,amssymb}
\usepackage{fancybox}
\usepackage{pict2e}
\usepackage{lmodern}
\usepackage{array}
\usepackage{mathtools}
\usepackage{caption}
\usepackage{algpseudocode}
\usepackage[linesnumbered, vlined, german, ruled]{algorithm2e}
\newcounter{salgorithm}
\begin{document}

\begin{frame}
\frametitle{Greedy-Algorithmus}
\only<2->{\addtocounter{algocf}{-1}}% Am Anfang aller Overlays außer dem ersten, den Algorithmenzähler um ein verringern.
\begin{algorithm}[H]
\caption{test algorithmus}
\pause
\KwIn{rein}
\pause
\KwOut{raus}
\pause
step 1
step 2
step 3
\end{algorithm}

\end{frame}

\end{document}

Wenn ein Algorithmus nicht auf dem ersten, sondern erst einem späteren Overlay begonnen wird, muss man natürlich die \only-Anweisungen anpassen.

Permanenter link

beantwortet 16 Mär, 13:45

saputello's gravatar image

saputello
18.4k22352

bearbeitet 17 Mär, 02:58

Danke funktioniert! :) und wenn ich ein paar Folien später noch einen Algorithmus einfüge? Wie kriege ich da dann 2 statt 1?

(16 Mär, 16:28) racoon9

@racoon9: Eigentlich ergibt sich das bereits aus der Lösung. Man hätte es aber auch einfach ausprobieren können. Für die ganz faulen habe ich das mal noch eingefügt.

(17 Mär, 02:56) saputello
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
×27
×3

Frage gestellt: 16 Mär, 11:32

Frage wurde angeschaut: 717 Mal

Zuletzt aktualisiert: 17 Mär, 02:58