我想创建一个包含计时器进度条的投影仪,如下所示: (这些图片来自 powerpoint)
这是为我的学生准备的,每张幻灯片都是一个问题,所以我希望能够制作一个像上面一样的进度条,每张幻灯片上都有不同的计时器。
我发现最好的解决方案是使用时钟制作一个计时器的包,但它是无法倒计时所以我们无法轻易知道还剩多少时间。
这是一个可编译的代码:
\documentclass[french]{beamer}
\usepackage{babel}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usetheme{Warsaw}
\usecolortheme{beaver}
\usepackage{tikz}
\usepackage[font=Times,timeinterval=1, timeduration=2,resetatpages=all]{tdclock}
\begin{document}
\initclock
\begin{frame}
\begin{tikzpicture}[remember picture, overlay,shift={(current page.south west)}]
\draw (11.8,8) node{\boxed{{\Huge\cronoseconds}}} ;
\draw (12,7.2) node{/45s} ;
\end{tikzpicture}
\end{frame}
\end{document}
任何帮助都将不胜感激。谢谢。
答案1
生成阴影的最简单方法是pgf
(或tikz
)。这也可以用于创建一个循环,循环执行 n 次不同的阴影迭代。然后可以使用 Beamer 自动显示每张幻灯片 1 秒\transduration{1}
(这假设您的计算机速度无限快,不需要任何时间来渲染幻灯片。您可能需要用稍短的时间替换 1。)
\documentclass{beamer}
\usepackage{tikz}
\begin{document}
\begin{frame}
\transduration{1}
\foreach \x in {0,...,50}{\only<+>{
\pgfdeclarehorizontalshading{myshade}{1em}{%
color(0\textwidth)=(rgb:green,50;-green,\x;red,\x);
color(\x*0.0175\textwidth)=(rgb:green,50;-green,\x;red,\x);
color(0.1\textwidth+\x*0.0175\textwidth)=(white);
color(\textwidth)=(white)
}
\begin{pgfpicture}{0pt}{0pt}{\textwidth}{1em}
\pgfpathrectangle{\pgfpointorigin}{\pgfpoint{\textwidth}{1em}}
\pgfusepath{clip}
\pgftext[left,base]{\pgfuseshading{myshade}}
\pgftext[x=.9\textwidth,y=0.5em] {\x s / 50s}
\end{pgfpicture}
}}
\end{frame}
\end{document}
快速将其移动到页面顶部:
\documentclass{beamer}
\usepackage{tikz}
\begin{document}
\begin{frame}[t]
\transduration{1}
\foreach \x in {0,...,50}{\only<+>{
\pgfdeclarehorizontalshading{myshade}{1em}{%
color(0\paperwidth)=(rgb:green,50;-green,\x;red,\x);
color(\x*0.0179\paperwidth)=(rgb:green,50;-green,\x;red,\x);
color(0.1\paperwidth+\x*0.0179\paperwidth)=(white);
color(\paperwidth)=(white)
}
\begin{tikzpicture}[remember picture, overlay,xshift=-1cm,yshift=0.3cm]
\pgfpathrectangle{\pgfpointorigin}{\pgfpoint{\paperwidth}{1em}}
\pgfusepath{clip}
\pgftext[left,base]{\pgfuseshading{myshade}}
\pgftext[x=.9\paperwidth,y=0.5em] {\x s / 50s}
\end{tikzpicture}
}}
\end{frame}
\end{document}