문서 클래스를 사용하여 포스터를 만들고 있습니다 beamer
. 제가 한 일은 포스터를 두 개의 열로 나눈 것입니다. 각 열에는 콘텐츠가 포함된 몇 개의 블록이 있습니다. 내가 원하는 것은 첫 번째 열에 맞지 않는 경우를 대비하여 다음 열에 블록 본문을 계속하는 것입니다. 어떻게 든 가능합니까?
아래에서는 내 구성이 어떤지에 대한 최소한의 예를 제공합니다.
\documentclass{beamer}
\usepackage{lipsum}
\newlength{\columnheight}
\setlength{\columnheight}{25cm}
\begin{document}
\begin{frame}[fragile]
\begin{columns}
% ---------------------------------------------------------%
% Set up a column
\begin{column}{.49\textwidth}
\begin{beamercolorbox}[center,wd=\textwidth]{postercolumn}
\begin{minipage}[T]{.95\textwidth}
\parbox[t][\columnheight]{\textwidth}{
\begin{block}
\lipsum[1-2]
\end{block}
}
\end{minipage}
\end{beamercolorbox}
\end{column}
\begin{column}{.49\textwidth}
\begin{beamercolorbox}[center,wd=\textwidth]{postercolumn}
\begin{minipage}[T]{.95\textwidth}
\parbox[t][\columnheight]{\textwidth}{
}
\end{minipage}
\end{beamercolorbox}
\end{column}
\end{columns}
\end{frame}
\end{document}
답변1
여기에 기반한 솔루션이 있습니다.이 답변egreg로. (편집하다: 원래 솔루션을 단순화했습니다). 재료가 하나의 비머 슬라이드에 맞도록 크기와 lipsum 단락 선택을 변경했습니다.
\documentclass{beamer}
\usepackage{lipsum}
\newlength{\columnheight}
\setlength{\columnheight}{8cm}
\newlength{\flowheight}
\setlength{\flowheight}{\columnheight}
\advance\flowheight-2\baselineskip
\newbox\flowtextbox
\newbox\curblockbox
\begin{document}
\begin{frame}[fragile]
\begin{columns}
% ---------------------------------------------------------%
% Set up a column
\begin{column}[T]{.49\textwidth}
\begin{beamercolorbox}[center,wd=\textwidth]{postercolumn}
\begin{minipage}[t]{.95\textwidth}
\parbox[t][\columnheight]{\textwidth}{
\begin{block}{Head\strut}
\global\setbox\flowtextbox=\vbox{\lipsum[43]\lipsum[11]}
\global\setbox\curblockbox=\vsplit\flowtextbox
to \flowheight
\unvbox\curblockbox
\end{block}
}
\end{minipage}
\end{beamercolorbox}
\end{column}
\begin{column}[T]{.49\textwidth}
\begin{beamercolorbox}[center,wd=\textwidth]{postercolumn}
\begin{minipage}[t]{.95\textwidth}
\parbox[t][\columnheight]{\textwidth}{
\begin{block}{Head (cont.)}
\unvbox\flowtextbox
\end{block}
}
\end{minipage}
\end{beamercolorbox}
\end{column}
\end{columns}
\end{frame}
\end{document}
필수적인 아이디어는 LaTeX가 자료를 vbox에 조판하도록 하는 것입니다 \flowtextbox
. 첫 번째 상자를 사용하려는 지점에서 이 작업을 수행하면 현재 환경에서 올바른 너비 설정을 얻을 수 있습니다. (두 번째 열의 너비가 동일하다고 가정합니다.) 그런 다음 명령을 사용하여 \vsplit
이 상자에서 필요한 높이까지 수직 재료를 자릅니다. \columnheight
헤더를 위한 공간을 남겨두어야 하기 때문에 이 값은 귀하의 것보다 작을 것이므로 값을 로 계산했습니다 \columnheight - 2\baselineskip
. 이제 적절한 지점에 도달하면 vbox의 압축을 풀면 됩니다. 정의 환경 외부에 올바른 상자가 있는지 확인하기 위해 명령 앞에 \global
. \strut
줄 높이를 일치시키려면 몇 가지 명령을 입력해야 했습니다 .
이 문제가 발생하는 단계에서는 \vsplit
vbox가 부족하다는 경고가 표시됩니다. 보다이 질문그것을 억제하고 싶다면.
보다egreg의 또 다른 답변더 많은 영감을 얻으려면.