Beamer 枚举,继续计数但将项目保持在固定位置

Beamer 枚举,继续计数但将项目保持在固定位置

我想要一个枚举列表。但是列表应该固定在其位置。此外,始终只应显示 1 个项目。所以我想要的是这样的

\documentclass{beamer}
\begin{document}
\begin{frame}{Test}
\only<1>{%
  \begin{enumerate}
    \item[1.]<1> Item 1
   \end{enumerate}
}
\only<2>{%
  \begin{enumerate}
    \item[2.]<2> Item 2
  \end{enumerate}
}
\only<3>{%
  \begin{enumerate}
    \item[3.]<3> Item 3
  \end{enumerate}
}
\end{frame}
\end{document}

能不能用一种简单的方式实现?例如,有没有一种选择?这样你就可以使用

\documentclass{beamer}
\begin{document}
\begin{frame}{Test}
\begin{enumerate}
\item<1> Item 1
\item<2> Item 2
\item<3> Item 3
\end{frame}
\end{document}

答案1

您可以将<only@+>默认操作传递给枚举环境以一次自动显示一个项目:

\documentclass{beamer}
\begin{document}
\begin{frame}
  \begin{enumerate}[<only@+>]
    \item Item 1
    \item Item 2
    \item Item 3
  \end{enumerate}
\end{frame}
\end{document}

在此处输入图片描述

答案2

继续Werner's answer,但没有对产品编号进行硬编码:

在此处输入图片描述

代码:

\documentclass{beamer}
\usepackage{etoolbox}

\makeatletter
\def\c@slideinframe{\beamer@slideinframe}
\def\beamerslideinframe{\beamer@slideinframe}
\makeatother
\def\AdvCnt{\setcounter{enumi}{\numexpr\arabic{slideinframe}-1\relax}}
\pretocmd{\item}{\AdvCnt}{}{}

\begin{document}
\begin{frame}{Test}
  \begin{enumerate}
    \only<+>{\item Item 1}
    \only<+>{\item Item 2}
    \only<+>{\item Item 3}
  \end{enumerate}
\end{frame}
\end{document}

答案3

更简单的方法是使用

在此处输入图片描述

\documentclass{beamer}
\usepackage{lmodern}% http://tex.stackexchange.com/q/58087/5764
\begin{document}
\begin{frame}{Test}
  \begin{enumerate}
    \only<1>{\item[1.] Item 1}
    \only<2>{\item[2.] Item 2}
    \only<3>{\item[3.] Item 3}
  \end{enumerate}
\end{frame}
\end{document}

相关内容