\onslide 之前的嵌套叠印中断

\onslide 之前的嵌套叠印中断

以下beamerMWE 由 5 张幻灯片组成。我使用嵌套overprint环境来实现没有抖动间距的叠加效果。在第 2 张和第 3 张幻灯片上,应该出现文本“two and three”,在第 3 张幻灯片上应该出现一个额外的“three”。第 4 张和第 5 张幻灯片也是如此。

但是,第二个嵌套overlay环境似乎破坏了第一个\onslide;它只是没有出现。overprint第一个嵌套中的单个嵌套\onslide工作正常(注释第二个嵌套套印以查看此内容)。

overprint不是设计时没有嵌套(我在文档中没有找到任何关于这方面的内容)或者这是一个错误?我怎样才能在不重复代码的情况下解决这个问题?

\documentclass{beamer}

\begin{document}

\begin{frame}
  Always

  \begin{overprint}
    \onslide<2-3>
      two and three

      \begin{overprint}
        \onslide<3>
          three
      \end{overprint}

    \onslide<4-5>
      four and five

      \begin{overprint}
        \onslide<5>
          five
      \end{overprint}
  \end{overprint}

  Always
\end{frame}

\end{document}

答案1

如果我理解正确的话,使用大括号应该可以解决你的问题:

\documentclass{beamer}

\begin{document}

\begin{frame}
  Always

  \begin{overprint}
    \onslide<2-3>{
      two and three}

      \begin{overprint}
        \onslide<3>{
          three}
      \end{overprint}

    \onslide<4-5>{
      four and five}

      \begin{overprint}
        \onslide<5>{
          five}
      \end{overprint}
  \end{overprint}
\end{frame}

\end{document}

在此处输入图片描述

编辑

使用文本位置包(绝对定位)

\documentclass{beamer}
\usepackage[absolute,overlay
%,showboxes
]{textpos}
\TPGrid{3}{5}

\begin{document}

\begin{frame}
    \begin{textblock}{1}(0.5,2)
Always

\onslide<2-3>{two and three}

\onslide<3>{three}
    \end{textblock}

    \begin{textblock}{1}(0.5,2)
\invisible{Always}

\onslide<4-5>{four and five}

\onslide<5>{five}

Always
    \end{textblock}

\end{frame}


\end{document}

在此处输入图片描述

答案2

对覆盖规格进行一些调整后:

\documentclass{beamer}

\begin{document}

\begin{frame}
  Always

  \begin{overprint}
    \only<1-3>{
      \onslide<2-3>{two and three

      \begin{overprint}
        \onslide<3>{
          three}
      \end{overprint}
      }
    }
    \only<4-5>{
      four and five

      \begin{overprint}
        \onslide<5>{
          five}
      \end{overprint}
    }
  \end{overprint}
\end{frame}

\end{document}

在此处输入图片描述

编辑:修正了额外的垂直空格。这可能是由于默认插入了换行符。添加适当的%行尾即可获得预期结果。

\documentclass{beamer}

\begin{document}

\begin{frame}
  Always

  \begin{overprint}
    \only<1-3>{%
      \onslide<2-3>{two and three

      \begin{overprint}
        \onslide<3>{three}%
      \end{overprint}%
      }%
    }%
    \only<4-5>{%
      four and five

      \begin{overprint}
        \onslide<5>{five}%
      \end{overprint}%
    }%
  \end{overprint}%

  Always
\end{frame}

\end{document}

在此处输入图片描述

相关内容