pgflayeron 无法与 \onlayer 配合使用

pgflayeron 无法与 \onlayer 配合使用

下面是一个 MWE(嗯,不能工作,但是...),我的目标是逐个显示一些要点,最后我希望将块叠加在逐项文本上。我无法让它工作,并希望得到任何帮助。

\documentclass{beamer}
\usetheme{Madrid}
\usepackage{tikz}

\begin{document}
\begin{frame}[t]
\frametitle{Open problems}

  \begin{itemize}
    \item<1-> Open problem 1
    \begin{itemize}
        \item Bullet 1
        \item Bullet 2
    \end{itemize}

    \item<2-> Open problem 2
    \begin{itemize}
        \item Bullet 1
        \item Bullet 2
    \end{itemize}

    \item<3-> Open problem 3
    \begin{itemize}
    \item Bullet 1
    \item Bullet 2
    \end{itemize}

    \item<4-> Open problem 4
    \begin{itemize}
    \item Bullet 1
    \item Bullet 2
    \end{itemize}

    \item<5-> Open problem 5
    \begin{itemize}
    \item Bullet 1
    \item Bullet 2
    \end{itemize}

\end{itemize}

\onslide<6>{
    \vspace{-3cm}

    \pgfdeclarelayer{fg}
    \pgfsetlayers{fg,main}
    \begin{pgfonlayer}{fg}
        \onslide<6>{
            \begin{block}{This is most important}
                Whatever
            \end{block}
        }
    \end{pgfonlayer}
}
\end{frame}
\end{document}

答案1

Beamer 允许您自动延迟每个列表,\item而无需像您那样手动执行。只需使用选项[<+->]\begin{itemize}[<+->] 但为了不延迟子列表,只需[<.->]在每个子列表上放置选项即可:\begin{itemize}[<.->]

要显示block,也不需要手动延迟,块本身就有这个选项:\begin{block}<6->{This is most important}

我评论了不必要的行但没有删除它们。

\documentclass[]{beamer}
\usetheme{Madrid}
\usepackage{tikz}

\begin{document}
\begin{frame}[t]
\frametitle{Open problems}

  \begin{itemize}[<+->]
    \item Open problem 1
    \begin{itemize}[<.->]
        \item Bullet 1
        \item Bullet 2
    \end{itemize}

    \item Open problem 2
    \begin{itemize}[<.->]
        \item Bullet 1
        \item Bullet 2
    \end{itemize}

    \item Open problem 3
    \begin{itemize}[<.->]
    \item Bullet 1
    \item Bullet 2
    \end{itemize}

    \item Open problem 4
    \begin{itemize}[<.->]
    \item Bullet 1
    \item Bullet 2
    \end{itemize}

    \item Open problem 5
    \begin{itemize}[<.->]
    \item Bullet 1
    \item Bullet 2
    \end{itemize}

\end{itemize}

%\onslide<6>{
    \vspace{-3cm}

%    \pgfdeclarelayer{fg}
%    \pgfsetlayers{fg,main}
%    \begin{pgfonlayer}{fg}
%    \onslide<6>{
            \begin{block}<6->{This is most important}
                Whatever
            \end{block}
%    }
%    \end{pgfonlayer}
%}
\end{frame}
\end{document}

相关内容