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, 08:29

tom75's gravatar image

tom75
1.9k1545
Akzeptiert: 83%

bearbeitet 10 Feb '15, 08: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, 09:53

esdd's gravatar image

esdd
14.2k53251

bearbeitet 10 Feb '15, 09:58

Super Lösung, danke!

(12 Feb '15, 05: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, 09:03

saputello's gravatar image

saputello
18.4k22352

bearbeitet 10 Feb '15, 09:07

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

(12 Feb '15, 05:04) tom75
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
×17
×1
×1

Frage gestellt: 10 Feb '15, 08:29

Frage wurde angeschaut: 2,873 Mal

Zuletzt aktualisiert: 12 Feb '15, 05:05