如何为每个投影仪框架随机选择一个背景颜色?
笔记:
这个问题是为了完善问题每次翻页时随机为 PDF 中的背景分配颜色要求提供一种解决方案,在pdf
显示时改变颜色。相比之下,本问题涉及在编译期间随机分配颜色。
答案1
这是在 ConTeXt 中执行此操作的一种方法。要设置页面的颜色,我们需要:
\definebackgrounds[page][background=color, backgroundcolor=...name...]
在每一页上,都会重新评估setups
指定的definebackgrounds
值。因此,要更改每页的颜色,我们可以简单地将背景颜色的值更改为随机颜色。在 Lua 中这样做更容易。因此,这是一个完整的示例:
\startluacode
local random = math.random
local format = string.format
commands.change_color = function()
options = { format("r=%0.3f, g=%0.3f, b=%0.3f", random(), random(), random()) }
context.definecolor( {"randomcolor"}, options)
end
\stopluacode
\startsetups change:color
\ctxcommand{change_color()}
\stopsetups
\setupbackgrounds
[page]
[
background=color,
setups=change:color,
backgroundcolor=randomcolor,
]
% Just to visualize the result
\setuppapersize[A6][A2,landscape]
\setuppaper[nx=5,ny=3]
\setuparranging[XY]
\starttext
\dorecurse{15}{\null\page}
\stoptext
这使
答案2
\documentclass{beamer}
\usepackage{pgf}
\usepackage{pgffor}
\pgfmathsetseed{\number\pdfrandomseed} % seed for random generator
\setbeamertemplate{background canvas}{%
\pgfmathsetmacro{\R}{random(0,10000)/10000}%
\pgfmathsetmacro{\G}{random(0,10000)/10000}%
\pgfmathsetmacro{\B}{random(0,10000)/10000}%
\definecolor{bgcolor}{rgb}{\R,\G,\B}%
\color{bgcolor!40}\rule{\paperwidth}{\paperheight}
}
\begin{document}
\foreach \n in {1,...,100}{
\begin{frame}
test
\end{frame}
}
\end{document}