Ich habe folgende Umgebung, die die Beamer-Seite in vier gleiche Teile aufteilen soll:
\newcommand{\FourQuads}[4]{
\begin{minipage}[t][.5\textheight][t]{\textwidth}
\begin{minipage}[t]{.47\textwidth}
\begin{block}{Second}
#1
\end{block}
\end{minipage}
\begin{minipage}[t]{.47\textwidth}
\begin{block}{Second}
#2
\end{block}
\end{minipage}
\end{minipage}
\begin{minipage}[t][.5\textheight][t]{\textwidth}
\begin{minipage}[t]{.47\textwidth}
\begin{block}{Third}
#3
\end{block}
\end{minipage}
\begin{minipage}[t]{.47\textwidth}
\begin{block}{Fourth}
#4
\end{block}
\end{minipage}
\end{minipage}
}
Jeder der vier Bereiche stellt den Text in einer Blockumgebung dar: Insbesondere kann man ihn so verwenden:
\documentclass[t]{beamer}
\usecolortheme{rose}
\begin{document}
\begin{frame}{A very important slide}
\FourQuads%
{first item\\
another first item}
{second item}
{third item}
{fourth item\\
another fourth item}
\end{frame}
\end{document}
was Folgendes erzeugt:
Wie Sie sehen, dehnen sich die Blöcke je nach der unterschiedlichen Länge des Textes in jedem Bereich aus: Das bedeutet, dass die Kästchen bei unterschiedlichen Längen möglicherweise nicht übereinstimmen. Ich suche nach einer Möglichkeit, die Blockumgebungen vertikal zu dehnen oder zu füllen, unabhängig davon, ob dort Text vorhanden ist oder nicht (sollte kein Text vorhanden sein, füllt der Block möglicherweise einfach vertikal den verbleibenden Platz in der minipage
Umgebung aus).
Es wird höchstwahrscheinlich eine Art Kombination aus \vfill
oder sein \setlength
, aber ich weiß nicht, wo genau ich diese Parameter platzieren muss, um das Ergebnis zu erzielen. Natürlich könnte es auch eine bessere Lösung geben, als minipage
viermal zu verwenden (ich habe es versucht columns
, aber es bringt nicht wirklich etwas Besseres).
Antwort1
Platzieren Sie die minipage
Buchstaben innerhalb der Blöcke, um eine feste Höhe zu erhalten:
\documentclass[t]{beamer}
\usecolortheme{rose}
\newcommand{\FourQuads}[4]{
\begin{columns}[onlytextwidth]
\begin{column}{.45\textwidth}
\begin{block}{First}
\begin{minipage}[t][.25\textheight][t]{\textwidth}
#1
\end{minipage}
\end{block}
\end{column}
\begin{column}{.45\textwidth}
\begin{block}{Second}
\begin{minipage}[t][.25\textheight][t]{\textwidth}
#2
\end{minipage}
\end{block}
\end{column}
\end{columns}
\begin{columns}[onlytextwidth]
\begin{column}{.45\textwidth}
\begin{block}{Third}
\begin{minipage}[t][.25\textheight][t]{\textwidth}
#3
\end{minipage}
\end{block}
\end{column}
\begin{column}{.45\textwidth}
\begin{block}{Fourth}
\begin{minipage}[t][.25\textheight][t]{\textwidth}
#4
\end{minipage}
\end{block}
\end{column}
\end{columns}
}
\begin{document}
\begin{frame}{A very important slide}
\FourQuads%
{first item\\
another first item}
{second item}
{third item}
{fourth item\\
another fourth item}
\end{frame}
\end{document}
Antwort2
Eine andere Lösung ist ein tcbraster
von tcolorbox
.
\documentclass[t]{beamer}
\usecolortheme{rose}
\usepackage[most]{tcolorbox}
\newcommand{\FourQuads}[4]{
\begin{tcbraster}[raster columns=2, raster rows=2, raster height=.8\textheight,
enhanced, size=small, sharp corners, boxrule=0pt,
colbacktitle=structure.fg!20!bg,
coltitle=structure.fg,
colback=structure.fg!10!bg]
\begin{tcolorbox}[title=First]#1\end{tcolorbox}
\begin{tcolorbox}[title=Second]#2\end{tcolorbox}
\begin{tcolorbox}[title=Third]#3\end{tcolorbox}
\begin{tcolorbox}[title=Fourth]#4\end{tcolorbox}
\end{tcbraster}
}
\begin{document}
\begin{frame}{A very important slide}
\FourQuads%
{first item\\
another first item}
{second item}
{third item}
{fourth item\\
another fourth item}
\end{frame}
\end{document}