\overprint inside \itemize 问题 - 框架不稳定

\overprint inside \itemize 问题 - 框架不稳定

我在做演示时遇到了麻烦。我想创建类似这样的内容

\documentclass{beamer}
\usepackage{ulem} % To strikeout text

\begin{document}
\begin{frame}
\begin{itemize}
\onslide<1->{
\item item 1
\item item 2
\item item 3}
\begin{overprint}
\onslide*<2>{\item item 4}
\onslide<3>{\item \sout{item 4} $\to$ Actually we'll going to put here another item: item 5}
\end{overprint}
\end{itemize}
\end{frame}
\end{document}

但框架会以奇怪的方式上下移动。你能帮我让框架保持固定吗?

答案1

您可以\sout像这样让覆盖规范感知:

\documentclass{beamer}
\usepackage{ulem} % To strikeout text
\renewcommand<>{\sout}[1]{\alt#2{\beameroriginal{\sout}{#1}}{#1}}
\begin{document}
\begin{frame}
\begin{itemize}
\item<1-> item 1
\item<1-> item 2
\item<1-> item 3
\item<2-> \sout<3>{item 4} \visible<3>{$\to$ Actually we'll going to put here another item: item 5}
\end{itemize}
\end{frame}
\end{document}

第 3 行重新定义\sout,使\sout<spec>{text}扩展为\alt<spec>{text}{\sout{text}}。然后你需要\visible而不是\only来确保即使没有显示文本,所显示文本所占用的空间也会被保留。

使用增量规范你可以编写:

\begin{frame}
\begin{itemize}
\item<+-> item 1
\item<.-> item 2
\item<.-> item 3
\item<+-> \sout<+>{item 4} \visible<.>{$\to$ Actually we'll going to put here another item: item 5}
\end{itemize}
\end{frame}

相关内容