Bloque de continuación de Beamer en la siguiente columna

Bloque de continuación de Beamer en la siguiente columna

Estoy haciendo un cartel usando la beamerclase de documento. Lo que he hecho es que dividí el cartel en dos columnas. En cada columna tengo algunos bloques con contenido. Lo que quiero hacer es continuar el cuerpo de un bloque en la siguiente columna en caso de que no quepa en la primera. ¿Es eso posible de alguna manera?

A continuación proporciono un ejemplo mínimo de cómo es mi configuración.

\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}

Respuesta1

Aquí hay una solución basada enesta respuestapor egreg. (EDITAR: He simplificado mi solución original). He cambiado sus dimensiones y la elección de los párrafos de labios para que el material encaje en una diapositiva del proyector.

\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}

Salida de muestra

La idea esencial es conseguir que LaTeX escriba el material en un vbox \flowtextbox. Al hacer esto en el punto donde deseamos usar el primer cuadro, obtenemos la configuración de ancho correcta del entorno actual. (Esto supone que la segunda columna tendrá el mismo ancho). Luego usamos el comando \vsplitpara cortar el material vertical de este cuadro a la altura requerida. Esto será menor que tu \columnheight, porque necesitamos dejar espacio para un encabezado, así que he calculado un valor que es \columnheight - 2\baselineskip. Ahora, cuando lleguemos a los puntos apropiados, simplemente desempaquetamos nuestras vboxes. Para asegurarnos de que existan los cuadros correctos fuera del entorno de definición, anteponemos los comandos con \global. Tenga en cuenta que también fue necesario poner un par de \strutcomandos para que las alturas de las líneas coincidieran.

En el momento en que esto \vsplitocurra, recibirá una advertencia de vbox insuficiente. Veresta preguntasi desea suprimir eso.

Verotra respuesta de egregpara más inspiración.

información relacionada