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 '16, 16:32

racoon9's gravatar image

racoon9
7737
Akzeptiert-Rate: 0%

1
(16 Mär '16, 18: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 '16, 18:45

saputello's gravatar image

saputello
11.1k154365
Akzeptiert-Rate: 51%

bearbeitet 17 Mär '16, 07: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, 21: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 '16, 07:56) saputello
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:

×138
×40
×4

gestellte Frage: 16 Mär '16, 16:32

Frage wurde gesehen: 6,380 Mal

zuletzt geändert: 17 Mär '16, 07:58