Eu tenho o seguinte ambiente que supostamente divide a página do beamer em quatro partes iguais:
\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 uma das quatro áreas apresentará o texto em um ambiente de bloco: em particular, pode-se utilizá-lo assim:
\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}
que gera o seguinte:
Como você pode ver, de acordo com os diferentes comprimentos do texto em cada área, os blocos se estendem: isso significa que sempre que os comprimentos forem diferentes, as caixas poderão não combinar. Estou procurando uma maneira de esticar ou preencher verticalmente os ambientes de bloco, independentemente de haver ou não texto (se não houver texto, o bloco pode apenas preencher verticalmente o espaço restante no minipage
ambiente).
Provavelmente será algum tipo de combinação de \vfill
or \setlength
, mas não sei onde colocar exatamente esses parâmetros para obter o resultado. Claro, também pode haver uma solução melhor do que usar minipage
quatro vezes (eu tentei, columns
mas não deu nada melhor).
Responder1
Coloque os minipage
s dentro dos blocos para obter uma altura fixa:
\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}
Responder2
Outra solução é um 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}