私はドキュメント クラスを使用してポスターを作成していますbeamer
。ポスターを 2 つの列に分割しました。各列にはコンテンツを含むブロックがいくつかあります。ブロックの本文が最初の列に収まらない場合に備えて、次の列にブロックの本文を継続したいと考えています。これは何とか可能でしょうか?
以下に、私の設定の最小限の例を示します。
\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 による。(編集: 元のソリューションを簡略化しました。資料が 1 つのビーマー スライドに収まるように、寸法とリプサム段落の選択を変更しました。
\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
。最初のボックスを使用する時点でこれを行うと、現在の環境から正しい幅設定が取得されます。(2 番目の列の幅が同じであると想定しています。) 次に、 コマンドを使用して、\vsplit
このボックスから必要な高さまで垂直方向の資料を切り取ります。\columnheight
ヘッダー用のスペースを残す必要があるため、この値は よりも小さくなります。そのため、 という値を計算してもらいました\columnheight - 2\baselineskip
。これで、適切なポイントに到達したら、vbox を展開するだけです。定義環境の外部に正しいボックスが存在することを確認するために、コマンドの前に を付けます。行の高さを一致させるために、\global
いくつかのコマンドを配置する必要もあったことに注意してください。\strut
発生した段階で、\vsplit
vboxの容量不足の警告が表示されます。この質問それを抑制したい場合。
見るegregによる別の回答さらなるインスピレーションを得るために。