如何确定投影块的高度?

如何确定投影块的高度?

为了防止内容在beamer演示文稿的幻灯片之间跳转,我想使用overlayarea环境。通过反复试验,可以确定要保留的适当空间量。但是,我想自动确定它。为此,我想确定一个或多个环境的高度block

在以下示例中,“某些文本”的位置在第一张幻灯片和第二张幻灯片之间发生变化。我希望它不移动。为此,我想将块 1 和块 2 括在 中overlayarea。我想确定块 1 和块 2 的高度以及它们之间的垂直空间,然后将其用作 的高度参数overlayarea

\documentclass{beamer}

\mode<presentation>
{
  \usetheme{Frankfurt}
}

\begin{document}

\begin{frame}
 Some text

 \only<1>{
  \begin{block}{Block 1}
   Other text
  \end{block}

  \begin{block}{Block 2}
   Still more text
  \end{block}
}

  \only<2>{
    \begin{block}{Block 3}
     Yet more text
    \end{block}
}
\end{frame}

\end{document}

这就是我想要的结果:

\documentclass{beamer}

\mode<presentation>
{
  \usetheme{Frankfurt}
}

\begin{document}

\begin{frame}
 Some text

 \begin{overlayarea}{\textwidth}{\myheight} %\myheight is the quantity to be determined
   \only<1>{
  \begin{block}{Block 1}
   Other text
  \end{block}

  \begin{block}{Block 2}
   Still more text
  \end{block}
}

  \only<2>{
    \begin{block}{Block 3}
     Yet more text
    \end{block}
}
 \end{overlayarea}
\end{frame}

\end{document}

注意:这个问题是关于如何找到的宽度block,但我还没有找到任何关于找到高度的信息。

答案1

您可以通过将内容装箱,然后添加箱子的深度和高度来获得总高度:

\setbox0=\vtop{%
  \begin{block}{Block 1}
   Other text
  \end{block}%
}
\setlength{\myheight}{\ht0}%
\addtolength{\myheight}{\dp0}%

在此处输入图片描述

代码:

\documentclass{beamer}

\mode<presentation>
{
  \usetheme{Frankfurt}
}

\newlength{\myheight}
\begin{document}
\setbox0=\vtop{%
  \begin{block}{Block 1}
   Other text
  \end{block}%
}
\setlength{\myheight}{\ht0}%
\addtolength{\myheight}{\dp0}%

\begin{frame}
 Some text

 \begin{overlayarea}{\textwidth}{\myheight} %\myheight is the quantity to be determined
   \only<1>{
  \begin{block}{Block 1}
   Other text
  \end{block}

  \begin{block}{Block 2}
   Still more text
  \end{block}
}

  \only<2>{
    \begin{block}{Block 3}
     Yet more text
    \end{block}
}
 \end{overlayarea}
\end{frame}

\end{document}

答案2

不要将\only命令写在块外,\uncover而应该将\visible命令写入块内。这样 latex 会保留足够的空间。

在您的示例中,我不清楚您想要保持哪个块固定。

相关内容