Ich möchte die von beamer vorgegebenen Blöcke (theorem, definition, ...) global verschmälern und zentriert im Frame haben. Die Breite konnte ich mit \addtobeamertemplate anpassen.

Open in Online-Editor
\documentclass[12pt,t,ngerman]{beamer}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{babel}
\uselanguage{German}
\usetheme{AnnArbor}
\usecolortheme{beaver}

\addtobeamertemplate{block begin}{%
  \setlength{\textwidth}{0.9\textwidth}%
}{}

\begin{document}
\begin{frame}
\frametitle{Titel}
\begin{definitions}[Name der Def]
Inhalt der Def.
\end{definitions}
\begin{theorem}[Name des Satzes]
Inhalt des Satzes.
\end{theorem}
\end{frame}
\end{document}

Manuell kann ich die Zentrierung durch \centering\begin{minipage}...\end{minipage}\par erreichen.

Gibt es eine Möglichkeit, dies mit \addtobeamertemplate zu den Blöcken hinzuzufügen, oder ist es dafür notwendig, die Blöcke komplett neu zu definieren?

gefragt 12 Feb '16, 13:00

tom75's gravatar image

tom75
2.2k187884
Akzeptiert-Rate: 57%

bearbeitet 12 Feb '16, 13:53


Du musst eine minipage in den Block einfügen und diese zentrieren, beispielsweise:

Open in Online-Editor
\documentclass[12pt,t,ngerman]{beamer}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{babel}
\uselanguage{German}
\usetheme{AnnArbor}
\usecolortheme{beaver}

\addtobeamertemplate{block begin}{%
  \center\minipage{0.75\textwidth}%
}{}
\addtobeamertemplate{block end}{}{\endminipage\par\endcenter}

\begin{document}
\begin{frame}
\frametitle{Titel}
\begin{definitions}[Name der Def]
Inhalt der Def.
\end{definitions}
\begin{theorem}[Name des Satzes]
Inhalt des Satzes.
\end{theorem}
\end{frame}
\end{document}

oder

Open in Online-Editor
\documentclass[12pt,t,ngerman]{beamer}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{babel}
\uselanguage{German}
\usetheme{AnnArbor}
\usecolortheme{beaver}

\addtobeamertemplate{block begin}{%
  \centering\minipage{0.75\textwidth}%
}{}
\addtobeamertemplate{block end}{}{\endminipage\par}

\begin{document}
\begin{frame}
\frametitle{Titel}
\begin{definitions}[Name der Def]
Inhalt der Def.
\end{definitions}
\begin{theorem}[Name des Satzes]
Inhalt des Satzes.
\end{theorem}
\end{frame}
\end{document}

Wenn es nicht Blöcke allgemein, sondern nur theorem- und davon abgeleitete Blöcke (wie definitions) betreffen soll, solltest Du block begin und block end durch theorem begin und theorem end ersetzen:

Open in Online-Editor
\documentclass[12pt,t,ngerman]{beamer}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{babel}
\usetheme{AnnArbor}
\usecolortheme{beaver}

\addtobeamertemplate{theorem begin}{%
  \centering\minipage{0.75\textwidth}%
}{}
\addtobeamertemplate{theorem end}{}{\endminipage\par}

\begin{document}
\begin{frame}
\frametitle{Titel}
\begin{definitions}[Name der Def]
Inhalt der Def.
\end{definitions}
\begin{theorem}[Name des Satzes]
Inhalt des Satzes.
\end{theorem}
\end{frame}
\end{document}
Permanenter link

beantwortet 12 Feb '16, 13:45

saputello's gravatar image

saputello
11.1k154365
Akzeptiert-Rate: 51%

bearbeitet 12 Feb '16, 14:12

Vielen Dank. Was ist der Unterschied zwischen \center und \centering

(12 Feb '16, 13:53) tom75

\center ist der Anfang der Umgebung center und muss durch \endcenter beendet werden. Was der Unterschied zwischen der center-Umgebung und \centering ist, findest Du beispielsweise in der Gleitumgebungs-Antwort. Du kannst den Unterschied auch sehen, wenn Du die unterschiedlichen Lösungen vergleichst.

(12 Feb '16, 14:16) saputello

Ich hatte vorhin versehentlich zweimal die selbe Lösung im Online-Editor angeschaut und keinen Unterschied bemerkt. :-) Jetzt ist es klar, danke!

(12 Feb '16, 14:21) 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:

×138
×23
×2

gestellte Frage: 12 Feb '16, 13:00

Frage wurde gesehen: 7,813 Mal

zuletzt geändert: 12 Feb '16, 14:31