Archiv verlassen und diese Seite im Standarddesign anzeigen : Block-Umgebung in Verbindung mit align-Umgebung in Beamer
Hallo Forum,
ich habe folgendes Problem bei der Erstellung einer Präsentation mit Beamer:
\begin{frame}
\begin{block}{Test}
\begin{align}
x = {} & y\\
a = {} & b
\end{align}
\end{block}
\end{frame}
erzeugt über der ersten Zeile innerhalb der Block-Umgebung eine ungewollte Leerzeile. Zum Vergleich siehe die Alternative:
\begin{frame}
\begin{block}{Test}
\begin{equation}
x = y
\end{equation}
\begin{equation}
a = b
\end{equation}
\end{block}
\end{frame}
Warum erzeugt die align-Umgebung diese zusätzliche Leerzeile und wie kann ich das verhindern ohne Holzhackermethoden ala \vspace{...}, oder gibt es einen generellen Grund für dieses Verhalten?
Vielen Dank und viele Grüße
Mario
bobmalaria
25-03-2010, 12:12
\setlength{\abovedisplayskip}{0pt}
nebenwirkungen nicht ausgeschlossen :)
Interessant. Wieso wirkt sich diese Einstellung bei align und equation unterschiedlich aus? Das scheint mir inkonsistent zu sein, denn diese Länge stellt doch allgemein den "Abstand zwischen Text und abgesetzter Formel" dar. Oder hat das einen speziellen Grund, der sich mir nicht erschließt?
\documentclass{scrartcl}
\usepackage{amsmath}
\begin{document}
\hrule
\begin{align}
x = {} & y\\
a = {} & b
\end{align}
\hrule
\begin{equation}
x = y
\end{equation}
\begin{equation}
a = b
\end{equation}
\setlength{\abovedisplayskip}{0pt}
\hrule
\begin{align}
x = {} & y\\
a = {} & b
\end{align}
\hrule
\begin{equation}
x = y
\end{equation}
\begin{equation}
a = b
\end{equation}
\end{document}
sorry, wenn ich den Thread nochmal ausgrab, aber ich hatte genau das selbe Problem und bin hier drauf gestoßen. ich hab den Lösungsvorschlag bei mir versucht und \setlength{\abovedisplayskip}{0pt} in mein Dokument geschrieben, aber das hat nicht geholfen. Ich hab dann noch ewig weitergesucht woran das liegen konnte und hab dann eher durch Zufall selbst herausgefunden, dass der Befehl nach \begin{document} stehen muss, ich ihn vorher aber immer in die preample geschrieben hab.
Meine Frage jetzt: warum muss der Befehl nach \begin{document} ? ich dachte immer, so was kann ich auch in die preample schreiben. Gerade wenn ich etwas global ändern will, schreibe ich das in der Regel hier rein.
Moin moin,
sorry, wenn ich den Thread nochmal ausgrab,
kein Problem, gerade für etwaige Erweiterungen bleiben die Beiträge ja offen, Afaik.
ich hab den Lösungsvorschlag bei mir versucht und \setlength{\abovedisplayskip}{0pt} in mein Dokument geschrieben, aber das hat nicht geholfen. Ich hab dann noch ewig weitergesucht woran das liegen konnte und hab dann eher durch Zufall selbst herausgefunden, dass der Befehl nach \begin{document} stehen muss, ich ihn vorher aber immer in die preample geschrieben hab.
Meine Frage jetzt: warum muss der Befehl nach \begin{document} ? ich dachte immer, so was kann ich auch in die preample schreiben. Gerade wenn ich etwas global ändern will, schreibe ich das in der Regel hier rein.
Nun ja, manche Dinge werden erst zu Dokumentbeginn aktiv, schau Dir vllt mal
\documentclass{article}
\usepackage{amsmath}
\typeout{+++ \string\abovedispalyskip: \the\abovedisplayskip}%<-- `+++' nur, damit Du es schneller in der .log wiederfindest;-)
\setlength\abovedisplayskip{3pc}
\typeout{+++ \string\abovedispalyskip: \the\abovedisplayskip}
\begin{document}
\typeout{+++ \string\abovedispalyskip: \the\abovedisplayskip}
\hrulefill
\begin{align}
c^2 &= a^2 + b^2\\
a &= \sqrt{c^2-b^2}
\end{align}
\end{document}
an. Ändere die Dokumentklasse zu scrartcl und schau Dir den/die Unterschied/e an. Ergänze dann vllt so etwas wie [fontsize=14pt] als Klassenoption und schau Dir wieder die Unterschiede an.
Wenn Du diesen \setlength nur in der Präambel haben willst, versuch es mit
\AtBeginDocument{%
\setlength\abovedisplayskip{...}%
}
MfG
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.