假設我將在每個幀上始終使用兩個區塊。
然後,我想要一種簡單的方法來執行以下操作,無需複製/貼上過程:
在每一幀上(第一幀除外),
- 第一個塊應該是前一幀的第二個塊。
所以我想類似於下面的程式碼的東西是可能的並且有幫助的:
\begin{frame}
% code to call the second block from the previous frame
\begin{block} % the new block, to be used again on the next frame
\end{block}
\end{frame}
如果可以使用一些覆蓋層那就太好了。
任何想法?
答案1
這是一個無需人工幹預的解決方案;\dupbox
完成所有工作;最初,您定義初始內容,然後只需使用新文字呼叫它;\dupbox
還有一個可選參數,允許您指定區塊的標題:
\documentclass{beamer}
\usepackage{tikz}
\usetheme{Warsaw}
\usecolortheme{crane}
\newcommand\dupbox[2][]{%
\begin{block}{\duptitle}
\begin{minipage}{\linewidth}
\duptext
\end{minipage}
\end{block}
\begin{block}{#1}
\begin{minipage}{\linewidth}
#2
\end{minipage}
\end{block}
\gdef\duptext{#2}
\gdef\duptitle{#1}
}
\gdef\duptext{Initial text}
\gdef\duptitle{}
\begin{document}
\begin{frame}
\dupbox[Optional title]{Some text for frames one and two}
\end{frame}
\begin{frame}
\dupbox{Another test text for frames two and three with some math:
\[a=b.\]
}
\end{frame}
\begin{frame}
\dupbox[A simple TikZ drawing]{\tikz{\fill[blue] (0\linewidth,0) circle (13pt);
\fill[orange] (6,0) circle (13pt);}
}
\end{frame}
\begin{frame}
\dupbox{Even more text}
\end{frame}
\end{document}
答案2
像那樣?
\documentclass{beamer}
\begin{document}
\begin{frame}
\only<1>{\begin{block}{First} block \end{block}}
\only<1,2>{\begin{block}{Second} block \end{block}}
\only<2,3>{\begin{block}{Third} block \end{block}}
\only<3>{\begin{block}{4th} block \end{block}}
\end{frame}
\end{document}