我有以下环境,应该将投影仪页面分成四个相等的部分:
\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}
}
四个区域中的每一个区域都将在块环境中显示文本:具体而言,可以这样使用它:
\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}
生成以下内容:
如您所见,根据每个区域中文本的不同长度,块会沿其延伸:这意味着只要长度不同,框就可能不匹配。我正在寻找一种方法来垂直拉伸或填充块环境,无论其中是否有文本(如果没有文本,块可能只是垂直填充环境中的剩余空间minipage
)。
\vfill
它很可能是或的某种组合\setlength
,但我不知道这些参数究竟放在哪里才能达到结果。当然,也可能有比使用minipage
四次更好的解决方案(我试过columns
,但并没有给出更好的结果)。
答案1
将 s放置minipage
在块内以获得固定高度:
\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}
答案2
另一个解决方案是tcbraster
来自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}