投影机覆盖区域的问题

投影机覆盖区域的问题

投影机手册第 9.5 节规定:

这种方法的问题在于,它可能会导致行高出现轻微但令人讨厌的差异,这可能会导致整个框架在幻灯片之间“摆动”。如果替换文本有几行长,这个问题会变得更加严重。

为了解决这个问题,您可以使用两个环境:overlayareaoverprint。第一个更灵活,但用户友好性较差。

因此我尝试利用这个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}

相关内容