如何在 Beamer 中随机分配背景图片?

如何在 Beamer 中随机分配背景图片?

我正在阅读演示文稿这里每张幻灯片的背景图像都会发生变化。我在想如何在 Beamer 中做到这一点。伪代码

\documentclass{beamer}
\usetheme{Berkeley}    
% TODO random background generation here

\begin{document}
\usepackage{lipsum}
\begin{frame}
\frametitle{Normal}
% lorem
\end{frame}
\end{document}

如果 TeXLive 中有背景图片的测试集,那就最好使用它们。否则,虚拟测试图像也可以。

操作系统:Debian 9.1 Stretch
TeXLive:2017

答案1

下面使用pgf/tikz从 1、2 和 3 中生成一个随机数。在mwe包中(包含在中xcolor)有图像文件example-image-aexample-image-bexample-image-c,所以我们用 选择它们\@alph

\documentclass{beamer}
\usetheme{Berkeley}    

\usepackage{pgf}% or \usepackage{tikz}
\usepackage{lipsum}

\makeatletter
\newcommand*{\randimg}{%
  \pgfmathrandom{3}%
  \includegraphics[width=\paperwidth,height=\paperheight]%
    {example-image-\@alph{\pgfmathresult}}}
\makeatother

\setbeamertemplate{background}{%
  \randimg%
}

\begin{document}
\begin{frame}
\frametitle{Normal}
\lipsum
\end{frame}
\begin{frame}
  Foo
\end{frame}
\begin{frame}
  Bar
\end{frame}
\begin{frame}
  Baz
\end{frame}
\end{document}

下面使用一个 TeX 计数来\mycount循环播放图像,并且不再需要pgftikz(仅需要 的定义\randimg和 的初始化\mycount,其余部分保持不变):

\newcount\mycount
\newcommand*{\randimg}{%
  \global\advance\mycount by 1\relax%
  \ifnum\mycount>3\relax%
    \global\mycount=1\relax%
  \fi%
  \includegraphics[width=\paperwidth,height=\paperheight]%
    {example-image-\@alph{\mycount}}}

相关内容