Hallo Leute, hier mal nochmal eine Frage zu Beamer. Ich hätte gerne eine Tabelle zeilenweise eingeblendet, wobei z.B. die zweite Zeile nicht gleich auf Folie 2, sondern erst auf Folie 3 erscheinen soll. Wenn ich dies wie folgt lösen möchte, habe ich schon auf Folie 1 eine zweite Zeile, die ich am linken Rand erkenne. Wie kann ich das lösen?

\documentclass{beamer}

\usepackage[utf8]{inputenc}
\usepackage[ngerman]{babel}
\usepackage[T1]{fontenc}
\usepackage{amssymb}

\begin{document}

\begin{frame}
\only<1-2>{init mit Startknoten A\\}
\only<2->{Q = \{\only<2-3>{A,}\only<2-5>{B,}\only<2-9>{C,}\only<2-7>{D,}\only<2-11>{E}\}\\}
\only<3,5,7>{Wähle Knoten u aus Q mit kleinster Distanz \& distanz\_update\\[0,2cm]}
\only<2->{\begin{tabular}{|l|c|c|c|c|c|c|c|c|c|c|}
\hline 
 u & \multicolumn{2}{c|}{A}  & \multicolumn{2}{c|}{B} & \multicolumn{2}{c|}{C} & \multicolumn{2}{c|}{D} & \multicolumn{2}{c|}{E} \\ 
\hline
init & 0 & - & $\infty$ & - & $\infty$ & - & $\infty$ & - & $\infty$ & - \\ \hline
\only<4->{A & & & 1 & A & 3 & A & 2 & A & 4 & A\\ \hline}
\only<6->{B & & &  &  & 2 & B & 2 & A &  & \\ \hline}
\only<8->{D & & &  &  &  &  &  &  & 3 & D\\ \hline}
\only<10->{C & & &  &  &  &  &  &  & 3 & D\\ \hline}
\only<12->{E & & &  &  &  &  &  &  &  & \\ \hline}
\end{tabular}}
\end{frame}

\end{document}

gefragt 28 Mai '21, 12:03

Kakao's gravatar image

Kakao
263
Akzeptiert-Rate: 0%

bearbeitet 28 Mai '21, 14:55


Wie bereits in einem Kommentar vermutet, ist die \only-Verteilung falsch. Mit dem Lesen der \only-Anweisung hat die jeweilige Zelle bereits begonnen.

\documentclass{beamer}

\usepackage[utf8]{inputenc}
\usepackage[ngerman]{babel}
\usepackage[T1]{fontenc}
\usepackage{amssymb}

\begin{document}

\begin{frame}
\only<1-2>{init mit Startknoten A\\}
\only<2->{Q = \{\only<2-3>{A,}\only<2-5>{B,}\only<2-9>{C,}\only<2-7>{D,}\only<2-11>{E}\}\\}
\only<3,5,7>{Wähle Knoten u aus Q mit kleinster Distanz \& distanz\_update\\[0,2cm]}
\only<2->{\begin{tabular}{|l|c|c|c|c|c|c|c|c|c|c|}
\hline 
 u & \multicolumn{2}{c|}{A}  & \multicolumn{2}{c|}{B} & \multicolumn{2}{c|}{C} & \multicolumn{2}{c|}{D} & \multicolumn{2}{c|}{E} \\ 
\hline
init & 0 & - & $\infty$ & - & $\infty$ & - & $\infty$ & - & $\infty$ & -
\only<4->{\\\hline A & & & 1 & A & 3 & A & 2 & A & 4 & A}%
\only<6->{\\\hline B & & &  &  & 2 & B & 2 & A &  &}%
\only<8->{\\\hline D & & &  &  &  &  &  &  & 3 & D}%
\only<10->{\\\hline C & & &  &  &  &  &  &  & 3 & D}%
\only<12->{\\\hline E & & &  &  &  &  &  &  &  & }%
\\ \hline
\end{tabular}}
\end{frame}

\end{document}

So wird das \only hingegen am Ende der jeweils letzten Zelle einer Tabellenzeile gelesen und nur dann eine neue begonnen, wenn man sich bereits auf der richtigen Seite befindet.

Die ganzen % sind übrigens wichtig, damit keine zusätzlichen Leerzeichen entstehen, die sich dann natürlich auf die Spaltenbreite auswirken.

Permanenter link

beantwortet 28 Mai '21, 16:19

saputello's gravatar image

saputello
11.1k154365
Akzeptiert-Rate: 51%

bearbeitet 28 Mai '21, 17:05

Vielen Dank @saputello.

Kannst Du mir jetzt noch sagen, wieso die letzte Spalte (bei E) auf Folie 2 breiter ist, als ab Folien 6? Diese Spalte benötigt anfangs, doch an für sich nicht mehr Platz als später, oder? Ich vermute, dass das an dem fehlenden "Zeilenumbruch" in der Zeile mit "A" in der ersten Spalte liegt. Kann man das auch noch beheben?

(28 Mai '21, 16:59) Kakao

@Kakao Bitte beachte, dass das hier ein Frage-Antwort-System und kein Diskussionsforum ist. Antworten sind daher immer als Antworten auf die Frage zu versehen. Ich habe deshalb deine Nicht-Antwort in einen Kommentar umgewandelt.

Auch »Danke« funktioniert bei uns etwas anders.

(28 Mai '21, 17:07) saputello

@Kakao Bezüglich Spalte E sei auf die korrigierte Antwort hingewiesen.

(28 Mai '21, 17:08) 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:

×254
×138
×2

gestellte Frage: 28 Mai '21, 12:03

Frage wurde gesehen: 2,396 Mal

zuletzt geändert: 28 Mai '21, 17:08