这投影机手册第 9.5 节规定:
这种方法的问题在于,它可能会导致行高出现轻微但令人讨厌的差异,这可能会导致整个框架在幻灯片之间“摆动”。如果替换文本有几行长,这个问题会变得更加严重。
为了解决这个问题,您可以使用两个环境:
overlayarea
和overprint
。第一个更灵活,但用户友好性较差。
因此我尝试利用这个overlayarea
环境来展示某种类型的解析器的工作进度。
从中创建的 MWE 如下所示(仅限 LuaLaTeX!):
\ifdefined\directlua\else
\errmessage{LuaTeX is required to typeset this document}
\csname @@end\expandafter\endcsname
\fi
\documentclass[english]{beamer}
\mode<presentation>
\usetheme{Darmstadt}
\usecolortheme{seahorse}
\usepackage{lua-visual-debug}
\begin{document}
\setbeamertemplate{itemize items}[circle]
\begin{frame}{Something's odd}
\begin{overlayarea}{\textwidth}{4cm}
\ttfamily
\begin{onlyenv}<1>
\begin{itemize}
\item Some text
\item Some more text
\end{itemize}
\end{onlyenv}
\begin{onlyenv}<2>
\begin{itemize}
\item Some text
\item Some more text ... really, possibly much more ...
\end{itemize}
\end{onlyenv}
\end{overlayarea}
\end{frame}
\end{document}
上述摆动效应也会在未启用的情况下发生lua-visual-debug
,但和这样人们就能更好地看到差异。
请注意,后续幻灯片的行为与第二张幻灯片一样,这就是我没有添加任何其他幻灯片的原因。也就是说:抖动发生在从第一张幻灯片到第二张幻灯片的过渡中,但在此之后不会发生。
在我制作的这个 GIF 中,你可以很清楚地看到这个问题:
第一项之前的垂直粘连仅出现在第二张幻灯片(以及后续幻灯片)上,但不出现在第一张幻灯片上。
问题:我怎样才能摆脱这种摆动效果,即使是幻灯片一和幻灯片二之间的过渡?
答案1
每当beamer
覆盖或颜色变化或任何其他“不可见”的东西影响间距时,它(几乎)总是由于节点以垂直模式出现。
因此,诀窍是先启动水平模式。
\ifdefined\directlua\else
\errmessage{LuaTeX is required to typeset this document}
\csname @@end\expandafter\endcsname
\fi
\documentclass[english]{beamer}
\mode<presentation>
\usetheme{Darmstadt}
\usecolortheme{seahorse}
\usepackage{lua-visual-debug}
\begin{document}
\setbeamertemplate{itemize items}[circle]
\begin{frame}{Something's odd}
\begin{overlayarea}{\textwidth}{4cm}
\ttfamily
\mbox{}\\[-\baselineskip]\begin{onlyenv}<1>
\begin{itemize}
\item Some text
\item Some more text
\end{itemize}
\end{onlyenv}
\begin{onlyenv}<2>
\begin{itemize}
\item Some text
\item Some more text ... really, possibly much more ...
\end{itemize}
\end{onlyenv}
\end{overlayarea}
\end{frame}
\end{document}