问题描述:使用了only命令,为什么出现了两页重复的内容?如图:
MWE代码如下
\documentclass[12pt]{ctexbeamer}
\begin{document}
\begin{frame}
\begin{itemize}
\item 测试 \pause
\item \only<+>{\underline{\phantom{\LaTeX}}}\only<+->{\underline{\LaTeX}} 是最好用的排版工具 \pause
\item \only<+>{\underline{\phantom{PHP}}}\only<+->{\underline{PHP}}是世界上最好的编程语言
\end{itemize}
\pause
为什么出现了两页重复的内容?
\end{frame}
\end{document}
这个和计数器 beamerpauses
有关系。先给出一个解决方案:
\documentclass[12pt]{ctexbeamer}
\begin{document}
\begin{frame}
\begin{itemize}[<+->]
\item 测试
\item \only<.>{\underline{\phantom{\LaTeX}}}
\only<+->{\underline{\LaTeX}} 是最好用的排版工具
\item \only<.>{\underline{\phantom{PHP}}}
\only<+->{\underline{PHP}} 是世界上最好的编程语言
\end{itemize}
\end{frame}
\end{document}
然后我们分析一下该问题的原因:
根据 beamer 手册 9.6.4 小节的讲解,我们知道计数器 beamerpauses
在遇到 +
和 \pause
会自增。所以第一个 \only<+>
会被替换为 \only<2>
,第二个 \only<+->
会被替换为 \only<3->
,而第二个 \only
和第三个之间有一个 \pause
,所以第三个 \only<+>
会被替换为 \only<5>
。这样一来,\underline{\LaTeX}是最好的排版语言
就会在第四帧中重复一次。