PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Text verrutscht bei Einblendungen in Beamer



Minze
16-01-2013, 15:32
Hallo,

nachdem ich nun schon seit Jahren Latex verwende, muss ich nun doch zum ersten Mal einen Thread in diesem Forum eröffnen:
Ich erstelle meine Beamerpräsentationen gern mit Latex-Beamer und möchte die verwendeten Bilder gern so groß wir möglich machen.
Allerdings habe ich das Problem, dass sich Texte in der linken column verschieben, sobald ich in der rechten column ein Bild einblende (also von frame zu frame). Hier ist ein Beispiel:


\documentclass{beamer}
\begin{document}

\begin{frame}
\begin{columns}
\column{0.45\textwidth}
Alternativen
\column{0.55\textwidth}
\centerline{\includegraphics<2>[width = 1.0\columnwidth]{./bilder/messina}}
\end{columns}
\end{frame}

\end{document}



Nun könnte ich das Problem vielleicht noch dadurch lösen, dass ich das Bild mit \visible einbinde. Allerdings geht das nicht mehr, wenn mehrere Bilder nacheinander an der gleichen Stelle eingeblendet werden sollen.

Dieses Problem nervt mich immer wieder, schon seit Monaten, dementsprechend habe ich schon vieles ausprobiert, einige Dinge seien hier genannt:

Abbildungen in figure-Umgebung verpacken
Alle Abbildungen in EINE figure-Umgebung packen
Text und/oder Abbildungen in eine overürint-Umgebung schreiben
Bilder verkleinern (da ist dann aber ein Wert von etwa width = 0.3\textwidth nötig)
Gesamtbreite der columns unter die Maximalbreite von 1.0\textwidth setzen
zwischen die beiden columns eine dritte, sehr schmale column (0.05\textwidth) einfügen


Ich würde mich wirklich freuen, wenn jemand einen Tipp hat, auf diese Weise ist das Erstellen von Präsentationen einfach nur frustrierend.
Ein pdf, in dem das Problem zu sehen ist, hänge ich an.

hakaze
16-01-2013, 16:09
Beamer kennt verschiedene Kommandos, um Overlays, also schrittweises Erscheinen oder Überlagern, zu realisieren. \pause, \only, \uncover, \visible, \onslide und die reine < x-y > Notation für einige Umgebungen.

Bei der Standardvariante (u.a. auch bei der Klammer-Version) werden die Elemente erst auf den Frames eingefügt, wo sie benötigt werden. Daher "weiss" beamer zu dem Zeitpunkt noch nicht, wie groß sie sein werden. Einige automatische Berechnungen wie horizontale oder vertikale Zentrierung gehen daher schief: Text oder Abbildungen springen herum...

Mit uncover oder visible passiert das nicht, da wird auch auf den vorherigen Slides Platz reserviert:


\documentclass{beamer}
\begin{document}

\begin{frame}
\begin{columns}[c]
\column{0.45\textwidth}
Alternativen
\column{0.55\textwidth}
\uncover<2>{\includegraphics[width = 1.0\columnwidth]{messina}}
\end{columns}
\end{frame}

\end{document}PS. für die vertikale Zentrierung habe ich die Option c der columns-Umgebung gesetzt (ist aber eh' default). Das spart das Centerline.

Minze
16-01-2013, 22:22
Hab Dank für deine Antwort, aber das weiß ich.

Ich hätte mich nicht auf ein minimales Minimalbeispiel beschränken sollen.
Das hier ist besser:


\documentclass{beamer}
\begin{document}

\begin{frame}
\begin{columns}
\column{0.45\textwidth}
Alternativen
\column{0.55\textwidth}
\begin{overprint}
\includegraphics<2>[width = 1.0\columnwidth]{./messina}
\includegraphics<3>[width = 1.0\columnwidth]{./coastline}
\end{overprint}
\end{columns}
\end{frame}

\end{document}


Hier sieht man das Problem, welches ich im ersten Posting bereits ansprach: bei nur einem Bild ist \visible durchaus eine Lösung. Bei zwei Bildern, die nacheinander (übereinander) erscheinen sollen, geht das schon nicht mehr, weil dann der Platz für's erste Bild reserviert wird.

Im Prinzip ist es wurscht, welche Bilder man nimmt, ich hänge sie trotzdem an.

Zur Sache mit der Ausrichtung: ich muss Latex irgendwie immer erstmal sagen, dass die Bilder in die Mitte sollen, füge ich kein [c] oder \centerline ein, kleben die Bilder ganz links am Spaltenrand. Wieso wirkt sich das (Nicht)erscheinen des rechten Bildes überhaupt auf die vertikale Ausrichtung des linken Textes aus. Wenn [c] die horizontale Ausrichtung vornimmt, sollte das doch keinen Einfluss haben?!

hakaze
17-01-2013, 10:07
Mmh, das war in der Tat doch komplizierter als dein erster Anwendungsfall. Aber so geht's (http://tex.stackexchange.com/a/21819):

\documentclass{beamer}
\begin{document}

\begin{frame}
\begin{columns}
\column{0.45\textwidth}
Alternativen
\column{0.55\textwidth}
\begin{overprint}[\columnwidth]
\onslide<2>\includegraphics[width = 1.0\columnwidth]{./messina}%
\onslide<3>\includegraphics[width = 1.0\columnwidth]{./coastline}%
\end{overprint}
\end{columns}
\end{frame}

\end{document}Mit dem optionalen Argument wird die Breite des overprint-Bereichs festgelegt, ohne dass beamer sie ausrechnen müsste. Mit onslide werden dann die einzelnen Abbildungen eingefügt. Die Prozentzeichen verhindern, dass Latex noch Leerzeichen einfügt, die die Ausrichtung beeinflussen können (http://www.komascript.de/signifikanteLeerzeichen).

Minze
18-01-2013, 09:21
Ohja, das klappt!

Wenn man den Inhalt nach \onslide in geschweifte Klammern setzt, ändert sich das Verhalten aber wieder...:rolleyes:
Latex ist mir manchmal unbegreiflich.

Ich danke Dir für Deinen Hinweis und werde mich in Zukunft wohl nicht mehr mit diesem leidigen Problem rumplagen müssen.