在 Beamer 中创建一次显示一张幻灯片的命令

在 Beamer 中创建一次显示一张幻灯片的命令

我正在编写一个命令来制作多个分项投影仪幻灯片,其中每个项目都会在下一张幻灯片上显示(但仍然可以看到未来的项目符号)。

不幸的是,它不太管用。项目符号的间距一开始就不正确,甚至直到生成的最后一张幻灯片才显示最后一个项目符号。

我的错误解决方案是使用嵌套的 multido 命令而不是 foreach,因为我需要使用索引。

以下是 MWE:

\documentclass{beamer}
\setbeamertemplate{frametitle}[default][center]
\usepackage{multido, arrayjob, ifthen} %arrays, etc, for the multiSlideItems command

%command for multi-slide lists in beamer    
%usage: \multiSlideItems{SlidesTitle}{Pre-listContent}{listLength}{List-as-&-separatedArray}{Post-listContent}
\newcommand{\multiSlideItems}[5]{
\newarray\SlideItems
\readarray{SlideItems}{#4}
\multido{\i=1+1}{#3}{%
    {\begin{frame}
        \frametitle{#1}
        #2 %The pre-list stuff
        {\begin{itemize}
            {\multido{\ii=1+1}{#3}{%
                \ifthenelse{\i<\ii}{%
                    \item \phantom{\SlideItems(\ii)}}{%
                    \item \SlideItems(\ii)}}}
        \end{itemize}
        \ifthenelse{\i<#3}{\phantom{#5}}{#5}} %post-list stuff to display if the list has been fully revealed
    \end{frame}}}
}

\begin{document}
\multiSlideItems{X}{}{3}{A&B&C}{}
\end{document}

答案1

你可以让 beamer 为你完成工作:

\documentclass{beamer}
\setbeamertemplate{frametitle}[default][center]

\newenvironment{myitemize}{%
\begingroup
    \setbeamercolor{itemize item}{parent=structure}
    \setbeamercolor{alerted text}{fg=black}
    \setbeamercolor{itemize/enumerate body}{fg=white}
    \begin{itemize}[<alert@+->]
}{
    \end{itemize}
\endgroup
}


\begin{document}

\begin{frame}
\frametitle{X}
\begin{myitemize}
    \item A
    \item B
    \item C
\end{myitemize}
\end{frame}
\end{document}

相关内容