다음 열의 비머 계속 블록

다음 열의 비머 계속 블록

문서 클래스를 사용하여 포스터를 만들고 있습니다 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줄 높이를 일치시키려면 몇 가지 명령을 입력해야 했습니다 .

이 문제가 발생하는 단계에서는 \vsplitvbox가 부족하다는 경고가 표시됩니다. 보다이 질문그것을 억제하고 싶다면.

보다egreg의 또 다른 답변더 많은 영감을 얻으려면.

관련 정보