Ich hab eine Tabelle wie in folgendem Beispiel:

Open in Online-Editor
\documentclass[12pt]{beamer}
\usepackage[utf8]{inputenc}
\begin{document}
\begin{frame}
\begin{tabular}{p{5mm}p{5cm}|p{5cm}}
  1. & Das ist ein Text. Das ist ein Text. Das ist ein Text. &$a^2+b^2 = c^2$\\
  2. & Das ist ein Text. Das ist ein Text. Das ist ein Text. &$a^2+b^2 = c^2$\\
  3. & Das ist ein Text. Das ist ein Text. Das ist ein Text. &$a^2+b^2 = c^2$\\
  4. & Das ist ein Text. Das ist ein Text. Das ist ein Text. &$a^2+b^2 = c^2$\\
\end{tabular}
\end{frame}
\end{document}

Die Ausrichtung der ersten Spalte ist dabei vertikal "oben" ausgerichtet. Wenn ich nun die Tabelle schrittweise mit \onslide aufbaue, ist die erste Spalte plötzlich vertikal zentriert, die letzte Spalte aber nicht. Woran liegt das und wie kann ich das korrigieren.

Open in Online-Editor
\documentclass[12pt]{beamer}
\usepackage[utf8]{inputenc}
\begin{document}
\begin{frame}
\begin{tabular}{p{5mm}p{5cm}|p{5cm}}
  1. & Das ist ein Text. Das ist ein Text. Das ist ein Text. &$a^2+b^2 = c^2$\\
  \onslide<2->{2. & Das ist ein Text. Das ist ein Text. Das ist ein Text. &$a^2+b^2 = c^2$\\}
  \onslide<3->{3. & Das ist ein Text. Das ist ein Text. Das ist ein Text. &$a^2+b^2 = c^2$\\}
  \onslide<4->{4. & Das ist ein Text. Das ist ein Text. Das ist ein Text. &$a^2+b^2 = c^2$\\}
\end{tabular}
\end{frame}
\end{document}

gefragt 10 Feb '15, 14:29

tom75's gravatar image

tom75
2.2k277984
Akzeptiert-Rate: 57%

bearbeitet 10 Feb '15, 14:30


Im konkreten Fall wäre es tatsächlich das einfachste, den Spaltentyp für die erste Spalte zu wechseln, wie @saputello das schon vorgeschlagen hat. Aber in der ersten Spalte könnte ja auch mehr Text stehen, der tatsächlich umbrochen werden müsste.

Die Zellen von p-Spalten werden als \parbox mit der Option t gesetzt. Steht ganz am Anfang einer solchen Box ein \onslide, dann wird der eigentliche Inhalt erst in der zweiten Zeile ausgegeben. Den genauen Grund für dieses Verhalten kenne ich nicht, aber es lässt sich verhindern, wenn man sich vor dem \onslide schon im horizontalen Modus befindet. Das kann man durch ein vorangestelltes \leavevmode oder \hspace{0pt} oder \mbox{} erreichen.

Open in Online-Editor
\documentclass[12pt]{beamer}
\usepackage[utf8]{inputenc}
\usepackage{lmodern}
\usepackage{array}
\begin{document}
\begin{frame}
Anfang \fbox{\parbox[t]{5cm}{\onslide<2->{Das ist ein Text. Das ist ein Text. Das ist ein Text. Das ist ein Text.  Das ist ein Text. }}} Ende

\vfill

Anfang \fbox{\parbox[t]{5cm}{\leavevmode\onslide<2->{Das ist ein Text. Das ist ein Text. Das ist ein Text. Das ist ein Text.  Das ist ein Text. }}} Ende
\end{frame}
\end{document}

alt text

Wenn man das in der Tabelle umsetzen will, würde ich das Paket array und die erste Spalte als

Open in Online-Editor
>{\leavevmode}p{5mm}

definieren. Das signifikante Leerzeichen am Ende der Tabellenzeile lässt sich verhindern, wenn Du das Argument von \onslide schon vor dem Umbruch der Tabellenzeile beendest:

Open in Online-Editor
\documentclass[12pt]{beamer}
\usepackage[utf8]{inputenc}
\usepackage{lmodern}
\usepackage{array}
\begin{document}
\begin{frame}
\begin{tabular}{>{\leavevmode}p{5mm}>{\leavevmode}p{5cm}|p{5cm}}
  1. & Das ist ein Text. Das ist ein Text. Das ist ein Text. &$a^2+b^2 = c^2$\\
  \onslide<2->{2. & Das ist ein Text. Das ist ein Text. Das ist ein Text. &$a^2+b^2 = c^2$}\\
  \onslide<3->{3. & Das ist ein Text. Das ist ein Text. Das ist ein Text. &$a^2+b^2 = c^2$}\\
  \onslide<4->{4. & Das ist ein Text. Das ist ein Text. Das ist ein Text. &$a^2+b^2 = c^2$}\\
\end{tabular}
\end{frame}
\end{document}

alt text

Wenn die \onslide Befehle direkt aneinander anschließen, kannst Du auch auf die geschweiften Klammern verzichten:

Open in Online-Editor
\documentclass[12pt]{beamer}
\usepackage[utf8]{inputenc}
\usepackage{lmodern}
\usepackage{array}
\begin{document}
\begin{frame}
\begin{tabular}{>{\leavevmode}p{5mm}p{5cm}|p{5cm}}
  1. & Das ist ein Text. Das ist ein Text. Das ist ein Text. &$a^2+b^2 = c^2$\\
  \onslide<2->2. & Das ist ein Text. Das ist ein Text. Das ist ein Text. &$a^2+b^2 = c^2$\\
  \onslide<3->3. & Das ist ein Text. Das ist ein Text. Das ist ein Text. &$a^2+b^2 = c^2$\\
  \onslide<4->4. & Das ist ein Text. Das ist ein Text. Das ist ein Text. &$a^2+b^2 = c^2$\\
\end{tabular}
\end{frame}
\end{document}

Und wenn die Tabelle zeilenweise aufgedeckt werden soll, kannst Du die erste Spalte auch als

Open in Online-Editor
>{\leavevmode\onslide<+->}p{5mm}

definieren und Dir damit Schreibarbeit sparen:

Open in Online-Editor
\documentclass[12pt]{beamer}
\usepackage[utf8]{inputenc}
\usepackage{lmodern}
\usepackage{array}
\begin{document}
\begin{frame}
\begin{tabular}{>{\leavevmode\onslide<+->}p{5mm}p{5cm}|p{5cm}}
  1. & Das ist ein Text. Das ist ein Text. Das ist ein Text. &$a^2+b^2 = c^2$\\
  2. & Das ist ein Text. Das ist ein Text. Das ist ein Text. &$a^2+b^2 = c^2$\\
  3. & Das ist ein Text. Das ist ein Text. Das ist ein Text. &$a^2+b^2 = c^2$\\
  4. & Das ist ein Text. Das ist ein Text. Das ist ein Text. &$a^2+b^2 = c^2$\\
\end{tabular}
\end{frame}
\end{document}
Permanenter link

beantwortet 10 Feb '15, 15:53

esdd's gravatar image

esdd
17.8k274256
Akzeptiert-Rate: 62%

bearbeitet 10 Feb '15, 15:58

Super Lösung, danke!

(12 Feb '15, 11:05) tom75

Das liegt vermutlich an den Boxen, die beamer bastelt, um den Platz auf den Folien ohne den Text frei zu halten. Deshalb musst Du auch ganz besonders auf signifikante Leerzeichen wie den Zeilenumbruch nach den schließenden geschweiften Klammern achten. Ich schlage vor:

Open in Online-Editor
\documentclass[12pt]{beamer}
\usepackage[utf8]{inputenc}
\begin{document}
\begin{frame}
\begin{tabular}{lp{5cm}|p{5cm}}
  1. & Das ist ein Text. Das ist ein Text. Das ist ein Text. &$a^2+b^2 = c^2$\\
  \onslide<2->{2. & Das ist ein Text. Das ist ein Text. Das ist ein Text. &$a^2+b^2 = c^2$\\}%
  \onslide<3->{3. & Das ist ein Text. Das ist ein Text. Das ist ein Text. &$a^2+b^2 = c^2$\\}%
  \onslide<4->{4. & Das ist ein Text. Das ist ein Text. Das ist ein Text. &$a^2+b^2 = c^2$\\}%
\end{tabular}
\end{frame}
\end{document}

Geändert habe ich:

  • erste Spalte Typ l (eventuell wäre sogar r die bessere Wahl)
  • auskommentierte Zeilenende nach den \onslide-Anweisungen
Permanenter link

beantwortet 10 Feb '15, 15:03

saputello's gravatar image

saputello
11.1k174365
Akzeptiert-Rate: 51%

bearbeitet 10 Feb '15, 15:07

Danke, auch für den Hinweis mit den signifikanten Leerzeichen.

(12 Feb '15, 11:04) tom75
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
×21
×2
×2

gestellte Frage: 10 Feb '15, 14:29

Frage wurde gesehen: 13,937 Mal

zuletzt geändert: 12 Feb '15, 11:05