PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Beamer: Formel im Block vs. im Text



Dirk2718
20-09-2012, 12:36
Hallo Zusammen,

ich setze mehrzeilige Formeln in beamer in der align*-Umgebung. Hier ergibt sich folgendes Problem:
Stehen die Formeln im Text, ist alles in Ordnung. In einer block-Umgebung ist der Abstand von der Überschrift der Umgebung zur Formel zu groß, wie ich finde. Dazu habe ich schon die Befehle \abovedisplayskip und \abovedisplayshortskip gefunden. Dann werden aber die Formeln im Text sehr gequetscht gesetzt. Gibt es da eine Lösung?

Hier ein Minimalbeispiel:

\documentclass[ compress
%, handout
]{beamer}
\usepackage[ngerman]{babel}
\usepackage[latin1]{inputenc}
\usepackage[T1]{fontenc}

\mode<presentation>
{
% Präsentationsthema auswählen
\usetheme{Boadilla}

% äußeres Thema anpassen
\useoutertheme[subsection=false]{miniframes}

% Pause grau (Zeile aktiv) oder durchsichtig (Zeile deaktiviert)
\setbeamercovered{transparent} % transparent
}

\begin{document}
\abovedisplayskip = 0ex
\abovedisplayshortskip = 0ex
\belowdisplayskip = 0ex
\belowdisplayshortskip = 0ex


\begin{frame}%[<+->]
\frametitle{Formel im Text}

Dies ist ein Text der über der Formel stehen soll.
\begin{align*}
c^2&=a^2+b^2\\
c^2-b^2&=a^2
\end{align*}
Dies ist ein Text der unter der Formel stehen soll.
\end{frame}

\begin{frame}
\frametitle{Formel im Block}

\begin{block}{Formel im Block}
\begin{align*}
c^2&=a^2+b^2\\
c^2-b^2&=a^2
\end{align*}
\end{block}
\end{frame}

\end{document}

Vielen Dank und Grüße
Dirk

hakaze
20-09-2012, 13:00
Hier ist eine Lösung von tex.sx (http://tex.stackexchange.com/a/28253/17198):
\documentclass[compress]{beamer}
\usepackage[ngerman]{babel}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}

\mode< all>{ %
% Präsentationsthema auswählen
\usetheme{Boadilla}
% äußeres Thema anpassen
\useoutertheme[subsection=false]{miniframes}
% Pause grau (Zeile aktiv) oder durchsichtig (Zeile deaktiviert)
\setbeamercovered{transparent} % transparent
\addtobeamertemplate{block begin}{\setlength\abovedisplayskip{0pt}}
}
\begin{document}
\begin{frame}%[<+->]
\frametitle{Formel im Text}

Dies ist ein Text der über der Formel stehen soll.
\begin{align*}
c^2&=a^2+b^2\\
c^2-b^2&=a^2
\end{align*}
Dies ist ein Text der unter der Formel stehen soll.
\end{frame}

\begin{frame}
\frametitle{Formel im Block}

\begin{block}{Formel im Block}
\begin{align*}
c^2&=a^2+b^2\\
c^2-b^2&=a^2
\end{align*}
\end{block}
\end{frame}
\end{document}Damit wird ausschließlich in Blocks abovedisplayskip auf 0 pt gesetzt.

Dirk2718
20-09-2012, 13:03
Vielen Dank!


Hier ist eine Lösung von tex.sx:

Ist tex.sx diese Seite:
http://tex.blogoverflow.com/category/tex-sx/
?

Viele Grüße
Dirk

Edit:
Ich hatte oben

\mode< presentation >
stehen. Komisch, dass das weg war. Ist < all > sinnvoller?
Ah! Eine Leertaste vor Spitzen Klammern...

hakaze
20-09-2012, 13:13
Ist tex.sx diese Seite:
http://tex.blogoverflow.com/category/tex-sx/?
Edit:
Ich hatte oben

\mode< presentation >
stehen. Komisch, dass das weg war. Ist < all > sinnvoller?
Ah! Eine Leertaste vor Spitzen Klammern...
Ich noch den Link hinzugefügt.

Die spitzen Klammern werden wohl vom Forum-HTML verschluckt. Wenn ich deinen ersten Beitrag zitiere sehe ich das < presentation>. (Ich habe den Kommentar in meinem Code mal gelöscht ;))

Dirk2718
20-09-2012, 13:18
Prima!

Noch eine Frage:
ich habe über

\setbeamertemplate{blocks}[default]
die Blocke ohne runde Ecken und Schatten. Dort ist der Abstand zu Formeln noch größer und ich muss

\addtobeamertemplate{block begin}{\setlength\abovedisplayskip{-2ex}}
eingeben, damit nicht zu viel Platz verschwendet wird. Ist das normal und mit den -2ex in Ordnung?

Viele Grüße
Dirk

Edit:
Ich möchte auch unten den Platz weghaben, bekomme aber ein Fehler:

\documentclass[ compress
%, handout
]{beamer}
\usepackage[ngerman]{babel}
\usepackage[latin1]{inputenc}
\usepackage[T1]{fontenc}

\mode< presentation >
{
% Präsentationsthema auswählen
\usetheme{Boadilla}

% äußeres Thema anpassen
\useoutertheme[subsection=false]{miniframes}

% Pause grau (Zeile aktiv) oder durchsichtig (Zeile deaktiviert)
\setbeamertemplate{blocks}[default]
\setbeamercovered{transparent} % transparent
\addtobeamertemplate{block begin}{\setlength\abovedisplayskip{-2ex plus1ex minus1ex}}
\addtobeamertemplate{block end}{\setlength\belowdisplayskip{-2ex plus1ex minus1ex}}
}

\begin{document}

\begin{frame}%[<+->]
\frametitle{Formel im Text}

Dies ist ein Text der über der Formel stehen soll.
\begin{align*}
c^2&=a^2+b^2\\
c^2-b^2&=a^2
\end{align*}
Dies ist ein Text der unter der Formel stehen soll.
\end{frame}

\begin{frame}
\frametitle{Formel im Block}

\begin{block}{Formel im Block}
\begin{align*}
c^2&=a^2+b^2\\
c^2-b^2&=a^2
\end{align*}
\end{block}
\end{frame}

\end{document}
Weißt du warum?

Dirk2718
20-09-2012, 14:48
Hab´s:

\addtobeamertemplate{block begin}{
\setlength\abovedisplayskip{-2.5ex plus1ex minus1ex}
\setlength\abovedisplayshortskip{-2.5ex plus1ex minus1ex}
\setlength\belowdisplayskip{0ex plus1ex minus1ex}
\setlength\belowdisplayshortskip{0ex plus1ex minus1ex}
}


Viele Grüße
Dirk