Tengo el siguiente entorno que se supone que divide la página del proyector en cuatro partes iguales:
\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}
}
cada una de las cuatro áreas presentará el texto en un entorno de bloques: en particular, se puede utilizar así:
\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}
lo que genera lo siguiente:
Como puede ver, según las diferentes longitudes del texto en cada área, los bloques se extienden: esto significa que siempre que las longitudes difieran, los cuadros pueden no coincidir. Estoy buscando una manera de estirar o llenar verticalmente de alguna manera los entornos de bloques, haya o no texto allí (si no hay texto, el bloque puede llenar verticalmente el espacio restante en el minipage
entorno).
Lo más probable es que sea algún tipo de combinación de \vfill
o \setlength
, pero no sé dónde colocar exactamente esos parámetros para lograr el resultado. Por supuesto, también podría haber una solución mejor que usar minipage
cuatro veces (lo he intentado columns
pero realmente no da nada mejor).
Respuesta1
Coloque las minipage
s dentro de los bloques para obtener una altura fija:
\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}
Respuesta2
Otra solución es tcbraster
from 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}