在 Beamer 中,我想进行随机构造,然后在 \pause(或使用 \onslide<>{})后向幻灯片添加更多信息。问题是,在新文本隐藏后,随机构造再次运行,因此它会发生变化,而我却没有。
有人知道如何在不再次编译随机数的情况下向幻灯片添加更多信息吗?
这是一个例子,随机向量在 \pause 之后发生变化。
\documentclass{beamer}
\usepackage{pgfmath}
\newcommand\randmin{}
\newcommand\randmax{}
\newcommand\setrand[2]%
{\def\randmin{#1}%
\def\randmax{#2}
}
\newcommand\nextrand
{\pgfmathparse{int(int((rnd*(\randmax-\randmin+1)+\randmin)))}%
\xdef\thisrand{\pgfmathresult}%
}
\begin{document}
\begin{frame}
\setrand{0}{1}
$(\nextrand\thisrand,\nextrand\thisrand,\nextrand\thisrand,\nextrand\thisrand)$
\pause
Text
\end{frame}
\end{document}
答案1
您可以将\newsavebox
, \savebox
,\usebox
序列与\savebox
之外创建的内容一起使用frame
。
\documentclass{beamer}
\usepackage{pgfmath}
\newcommand\randmin{}
\newcommand\randmax{}
\newcommand\setrand[2]%
{\def\randmin{#1}%
\def\randmax{#2}
}
\newcommand\nextrand
{\pgfmathparse{int(int((rnd*(\randmax-\randmin+1)+\randmin)))}%
\xdef\thisrand{\pgfmathresult}%
}
\newsavebox{\myrandlist}
\begin{document}
\setrand{0}{1}
\savebox{\myrandlist}{$(\nextrand\thisrand,\nextrand\thisrand,\nextrand\thisrand,\nextrand\thisrand)$}
\begin{frame}
\usebox{\myrandlist}
\pause
Text
\end{frame}
\end{document}