问题描述:使用了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}是最好的排版语言 就会在第四帧中重复一次。