在下面的例子中,我将文本存储到三个变量(\subTa
、、)中,然后使用这些变量来设置子部分、设置框架标题并在每张幻灯片上显示文本,全部使用如下例所示的方式\subTb
。\subTc
\only
\documentclass[pdf]{beamer}
\begin{document}
\def\subTa{$1^{st}$ Step}
\def\subTb{$2^{nd}$ Step}
\def\subTc{$3^{rd}$ Step}
\section{Solution}
\begin{frame}
\only<+>{\subsection{\subTa}}
\only<+>{\subsection{\subTb}}
\only<+>{\subsection{\subTc}}
\frametitle{\insertsection...\only<1>{\subTa}\only<2>{\subTb}\only<3>{\subTc}}
\only<1>{\subTa:}
\only<2>{\subTb:}
\only<3>{\subTc:}
\begin{align*}
\uncover<1->{2x-c&=2}
\uncover<2->{\\ 2x&=2+c}
\uncover<3->{\\ x&=1+0.5c}
\end{align*}
\end{frame}
\end{document}
有没有办法做到这一点,将我存储在三个变量中的文本存储在一个数组中(类似于\def\subTarray{{"$1^{st}$ Step","$2^{nd}$ Step,"$3^{rd}$ Step"}}
),然后通过循环遍历数组来设置子部分、框架标题和文本?至少文本和框架标题/子部分需要单独的循环,但使用单个数组是可取的。如果不可能为所有三个部分(框架标题、子部分和文本)设置一个数组,那么如何使用数组和循环分别对各个部分进行示例也将不胜感激。
我尝试过类似问题的解决方案(pgf-tikz-如何将字符串存储在数组中,循环包含图形, 和这个数组索引不适用于节点标签),我可以使用数组让文本部分工作,但不能在循环中工作。而且我对框架标题或子部分不太满意。
答案1
让 beamer 为你完成即可:
\documentclass{beamer}
\usepackage[super]{nth}
\makeatletter
\def\c@slideinframe{\beamer@slideinframe}
\def\beamerslideinframe{\beamer@slideinframe}
\makeatother
\begin{document}
\section{Solution}
\begin{frame}
\frametitle{\insertsection{} \nth{\beamerslideinframe} Step}
\begin{align*}
\uncover<1->{2x-c&=2}
\uncover<2->{\\ 2x&=2+c}
\uncover<3->{\\ x&=1+0.5c}
\end{align*}
\end{frame}
\end{document}