我正在做一个 Beamer 演示,比如说:
\begin{frame}
\only<1>{\Huge}\onslide<1->{Text 1.}
\begin{itemize}
\item<2->\only<2>{\Huge} Item 1.
\item<3->\only<3>{\Huge} Item 2.
\end{itemize}
\end{frame}
目标是使每张幻灯片以大字体显示当前介绍的文本,同时使其余文本可见但尺寸小得多。
这是可行的,但是
(1)这需要在每张幻灯片上写下大量的命令。
(2) 相当脆弱——如果我必须重新排序,我可能需要花费大量时间重新编号。
有没有办法让它在解析看起来更像的源代码时做同样的工作,例如,
\begin{frame}
Text 1.
\slide
\begin{itemize}
\item Item 1.
\item Item 2.
\end{itemize}
或者也许使用最少量的额外命令来分离幻灯片?
我没有太多创建命令的经验,但是尝试过这个,但没有效果:
\newcounter{slidenum}
\setcounter{slidenum}{1}
\newcommand{\next}[1]{\only<\theslidenum>{\Huge}\onslide<\theslidenum->{#1}\addtocounter{slidenum}{1}}
按照我想象的工作原理,我可以将每个下一个叠加层放入命令中\next{...}
,并在每一帧开始时重新启动计数器。但是当我尝试在幻灯片中使用它时,其中的项目\next{...}
既不会变大,也不会隐藏在第一个叠加层上。
答案1
下面的操作能达到您的要求吗?
\documentclass{beamer}
\newcommand{\hugeOnce}[1]{{\only<.>{\Huge} #1}}
\begin{document}
\begin{frame}[<+->]
\only<+->{\hugeOnce{Text 1.}}
\begin{itemize}
\item \hugeOnce{Item 1.}
\item \hugeOnce{Item 2.}
\end{itemize}
\end{frame}
\end{document}
答案2
你可以使用类似的技巧https://topanswers.xyz/tex?q=1334#a1579并创建一个新的 beamer 动作:
\documentclass{beamer}
\newenvironment{hugeenv}{\only{\Huge}}{}
\begin{document}
\begin{frame}
\only<+>{\Huge} Text
\begin{itemize}[<huge@+|+->]
\item Item 1.
\item Item 2.
\end{itemize}
\end{frame}
\end{document}