비머 페이지를 4개의 동일한 부분으로 나누어야 하는 다음과 같은 환경이 있습니다.
\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
4번을 사용하는 것보다 더 나은 해결책이 있을 수도 있습니다. (시도해 보았지만 columns
더 나은 결과는 나오지 않았습니다.)
답변1
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
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}