使用 beamer 时,是否有办法显示覆盖区域周围的轮廓以更快地确定正确的高度?如果没有,建议采用什么方法来确定要设置的正确高度?我目前的方法是反复试验,看看它是否看起来居中。
答案1
是的,你可以添加它。这是一个稍微复杂一些的版本,可以通过开关打开和关闭。
\documentclass{beamer}
\makeatletter
\newif\ifbeamer@show@overlayarea
\pgfkeys{/beamer/overlayarea/.cd,show frame/.is if=beamer@show@overlayarea,
show frame/.default=true}
\beamer@show@overlayareafalse
\mode
<presentation>
{\renewenvironment{overlayarea}[3][]{%
\pgfkeys{/beamer/overlayarea/.cd,#1}%
\beamer@animht=#2\relax
\beamer@animwd=#3\relax
\setbox\beamer@areabox=\vbox to\beamer@animwd\bgroup
\strut\begin{minipage}[t]{\beamer@animht}%
% Make the minipage behave like the main part of the slide
\normalfont
\raggedright
}
{%
\end{minipage}\endgraf\vfil
\egroup
\wd\beamer@areabox=\beamer@animht
\ht\beamer@areabox=\beamer@animwd
\dp\beamer@areabox=0pt %
\ifbeamer@show@overlayarea
\bgroup\fboxsep=0pt\relax
\hspace*{-0.4pt}\vspace*{-0.4pt}%
\fbox{\box\beamer@areabox}\hspace*{-0.4pt}\vspace*{-0.4pt}%
\egroup
\else
\box\beamer@areabox
\fi
}}
\makeatother
\begin{document}
\begin{frame}[t]
\frametitle{W/o show}
\begin{overlayarea}{\textwidth}{3cm}
\only<1>{Some text for the first slide.\\Possibly several lines long.}
\only<2>{Replacement on the second slide.}
\end{overlayarea}
\end{frame}
\begin{frame}[t]
\frametitle{W/ show}
\begin{overlayarea}[show frame]{\textwidth}{3cm}
\only<1>{Some text for the first slide.\\Possibly several lines long.}
\only<2>{Replacement on the second slide.}
\end{overlayarea}
\end{frame}
\end{document}
如果你想为所有 s 打开框架overlayarea
(除了你说的那些show frame=false
),你可以使用
\pgfkeys{/beamer/overlayarea/show frame=true}
在您的文档中的某个时刻,会发生此更改。