对于假期,我想跟进有关使用 tikz 制作烟花的问题(怎样燃放烟花?):
我们如何仅使用文字来制作烟花?
我在下面做了一个粗略的尝试。出于某种原因,我无法将每个烟花爆炸放入一个盒子中,以便我可以轻松操纵它。如果我要求超过 12 次旋转,就会开始发生奇怪的事情(见右栏)。
请帮助我改进这个例子或者提出更好的建议。
请,不tikz、pstricks、Metapost 或图片模式!仅限文本,但欢迎使用任何风格的 TeX。
\documentclass{article}
\usepackage{rotating, color}
\newcounter{degrees}
\newcounter{degreeIncrement}
% More than 360 repetitions will max out TeX's memory
% Print error message and end document if more than 360 reps are requested
\newcommand{\textwheelErrorTest}[1]{%
\ifnum#1 > 360
\typeout{%
ERROR: You asked for #1 repetitions in
\noexpand\textwheel, but the maximum is 360.
I am stopping before TeX exceeds its memory capacity.%
}%
\def\erroraction{\end{document}}
\else
\def\erroraction{\relax}
\fi
\erroraction
}
% For calculating length of string for kerning
\newlength{\strlen}
% #1 text to repeat, #2 color of text, #3 number of times to repeat it
\newcommand{\textwheel}[3]{%
\textwheelErrorTest{#3}
%
\setcounter{degreeIncrement}{360}
\setcounter{degrees}{0}
\divide\value{degreeIncrement} by #3
\settowidth{\strlen}{#1}
%
\loop
\rlap{%
\turnbox{\value{degrees}}{\color{#2}\quad#1}%
}\kern -0.5\strlen%
%
\addtocounter{degrees}{\value{degreeIncrement}}
\ifnum\value{degrees} < 360
\repeat%
}
\begin{document}
\pagecolor{black}
\begin{minipage}{0.45\linewidth}
%
\textwheel{\TeX}{yellow}{6}
\vspace{10\baselineskip}
\textwheel{\LaTeX}{cyan}{12}
\vspace{10\baselineskip}
\textwheel{Xe\TeX}{red}{8}
\vspace{10\baselineskip}
\textwheel{Lua\TeX}{green}{5}
\vspace{15\baselineskip}
\textwheel{Con\TeX t}{magenta}{4}
%
\end{minipage}%
\hfill%
\begin{minipage}{0.45\linewidth}
%
\textwheel{\LaTeX}{white}{20}
\vspace{10\baselineskip}
\textwheel{\LaTeX}{green}{45}
\vspace{15\baselineskip}
\textwheel{\LaTeX}{yellow}{90}
\vspace{25\baselineskip}
\textwheel{\LaTeX}{red}{180}
%
\end{minipage}
\end{document}
答案1
2016 圣诞版
我尝试使用和这样的简单字形在烟花核心附近制作一个几何图形+
。-
当通过旋转和移动进行复制时,我认为这种效果是突出事件的非常好的方式。
2015 圣诞版
在这里,我介绍我的第一个三连发烟花,其中“为我们”作为内部连发,“一个孩子诞生了”作为第二连发,“主啊!”作为外部连发。代码可以在本文后面的 MWE 中找到。祝大家圣诞快乐。
2015 新年版
2014 年版:
圣诞节快乐!
语法是
\textwheel{string}{inner_color}{outer_color}{reps}{fade_length}
其中reps
是重复次数,fade_length
是从内色到外色的渐变长度(根据最近的编辑,现在可以小于或大于长度string
并正常工作)。如果设置为 0pt,则将 设置fade_length
为 的长度string
。
请参阅文章末尾的程序逻辑的描述。
编辑嵌套的文本轮(我感觉就像带有本轮的托勒密),可以这样表述:
\savestack\ST{\tiny\smash{\textwheel{Hallelujah!}{red}{blue}{13}{1.4cm}}}
\textwheel{MerryChristmas~~\ST}{yellow}{red}{28}{0pt}
其中 一个\textwheel
被 保存 进 一个 盒子 ( \ST
) 然后 被 放在 随后 的 末尾\textwheeel
.
编辑以移除杂散空格。编辑以移除\strut
产生少量椭圆化的偏差。编辑以通过以千分之一度为单位工作来最小化舍入误差。重新编辑(基于评论建议)以重新引入可选的\strut
偏差级别,现在由两个参数控制:\biasfrac
和。当(默认值)\biaslength
时,对称性得以保留。\biaslength=0pt
在第二个图形中,内部烟花说了 28 次“圣诞快乐”。并且在每个“圣诞快乐”结束时,都会有一个\tiny
爆炸,说 13 次“哈利路亚!”。
PS 我刚刚偶然意识到 28x13 个“哈利路亚!”等于 364……一年中的每一天都是一个。上帝保佑!
\documentclass{article}
\usepackage{rotating, xcolor}
\usepackage[margin=4cm]{geometry}
\newcounter{Kdegrees}
\newcounter{KdegreeIncrement}
\newcounter{degrees}
% More than 360 repetitions will max out TeX's memory
% Print error message and end document if more than 360 reps are requested
\newcommand{\textwheelErrorTest}[1]{%
\ifnum#1 > 360
\typeout{%
ERROR: You asked for #1 repetitions in
\noexpand\textwheel, but the maximum is 360.
I am stopping before TeX exceeds its memory capacity.%
}%
\def\erroraction{\end{document}}
\else
\def\erroraction{\relax}
\fi
\erroraction
}
% For calculating length of string for kerning
\newlength{\strlen}
\newlength\biaslength
\def\biasfrac{.0}% 0 to 1
\biaslength=0pt% \ge 0pt (0pt produces circular symmetry
\def\biasstrut{\rule[-\biasfrac\biaslength]{0pt}{\biaslength}}
% #1 text to repeat, #2 color of text, #3 number of times to repeat it
\newcommand{\textwheel}[5]{\leavevmode\smash{%
\gdef\innercolor{#2}%
\gdef\outercolor{#3}%
\textwheelErrorTest{#4}%
\def\FadeL{#5}%
%
\setcounter{KdegreeIncrement}{360000}%
\setcounter{Kdegrees}{0}%
\divide\value{KdegreeIncrement} by #4%
\settowidth{\strlen}{#1}%
\ifdim\FadeL=0pt\def\FadeL{\the\strlen}\fi%
%
\loop
\setcounter{degrees}{\value{Kdegrees}}%
\divide\value{degrees} by 1000\relax%
\ifnum\value{degrees}<90
\rlap{\rotatebox[origin=l]{\value{degrees}}{%
\biasstrut\color{#2}\smash{\FadeAfter{\FadeL}{#1}}}%
}%
\else
\ifnum\value{degrees}<270%
\kern+\biaslength%
\llap{\rotatebox[origin=l]{\value{degrees}}{%
\biasstrut\color{#2}\smash{\FadeAfter{\FadeL}{#1}}}%
}%
\kern-\biaslength%
\else
\rlap{\rotatebox[origin=l]{\value{degrees}}{%
\biasstrut\color{#2}\smash{\FadeAfter{\FadeL}{#1}}}%
}%
\fi
\fi
\addtocounter{Kdegrees}{\value{KdegreeIncrement}}%
\ifnum\value{Kdegrees} < 359000%
\repeat%
}}
%%%
\usepackage{xcolor,ifthen}
\newcounter{tmpcounter}
\newlength\cumlength
\newlength\critlength
\newlength\tmplength
\newcount\mynum
\newcount\myden
\makeatletter
\newcommand\FadeAfter[2]{%
\critlength=#1\relax\cumlength=0pt\relax%
\def\cumstring{}\fahelp{#1}{#2}}
\newcommand\fahelp[2]{\prefahelper#2 \relax\fahelper#2\relax}
\def\prefahelper#1 #2\relax{\gdef\wordremaining{#1}}
\def\fahelper#1#2\relax{%
\global\protected@edef\cumstring{\cumstring#1}%
\ifthenelse{\equal{#1}{\wordremaining}}{%
\global\protected@edef\cumstring{\cumstring\ }}{}%
\setbox0=\hbox{\cumstring}%
\tmplength=.01\critlength\relax%
\mynum=\wd0\relax%
\myden=\tmplength\relax%
\divide\mynum by\myden%
\setcounter{tmpcounter}{\numexpr100-\the\mynum}%
\ifnum\thetmpcounter<0\setcounter{tmpcounter}{0}\fi%
\textcolor{\innercolor!\thetmpcounter!\outercolor!90}{#1}%
\ifthenelse{\equal{#1}{\wordremaining}}{\ }{}%
\ifx\relax#2\relax\else\fahelp{\critlength}{#2}\fi%
}
\makeatother
\usepackage{stackengine}
\begin{document}
% CAN EXPERIMENT WITH ASYMMETRIC BIAS WITH THESE TWO PARAMETERS
%\def\biasfrac{.4}% 0 to 1 ROTATES THE ASYMMETRY OF \biaslength
%\biaslength=8pt% \ge 0pt (0pt produces circular symmetry)
\pagecolor{black}
\begin{minipage}{0.45\linewidth}
%
\vspace{-1cm}
\textwheel{Thisisatest}{red}{blue}{35}{2cm}
\vspace{2.8cm}
\savestack\ST{\tiny\smash{\textwheel{Hallelujah!}{red}{blue}{13}{1.3cm}}}
\ST\hspace{6cm}
\textwheel{MerryChristmas~~\ST}{yellow}{red}{28}{2.6cm}
\vspace{6.3cm}
\textwheel{FFFFFadingTest}{yellow}{red}{28}{1.5cm}
\hspace{5cm}
\textwheel{FFFFFadingTest}{yellow}{red}{28}{3cm}
%2015 NEW YEAR'S EDITION
\vspace{6.9cm}
\savestack\ST{\scriptsize\smash{\textwheel{~New~Year!}{orange}{cyan}{7}{2.3cm}}}
\textwheel{~~Have~a~Happy~~\ST}{yellow}{green}{7}{6cm}
%2015 CHRISTMAS EDITION
\hspace{10.15cm}
\savestack\XT{\tiny\smash{\textwheel{~Lord!}{blue!80!orange}{green}{6}{.7cm}}}
\savestack\ST{\scriptsize\smash{\textwheel{~a child is born~\XT}{%
orange!90!red}{blue!80!orange}{4}{2.1cm}}}
\LARGE\textwheel{~~For unto us~\ST}{red}{orange!90!red}{15}{4cm}
\end{minipage}
\clearpage
\begin{minipage}{0.45\linewidth}
\vspace{2cm}
%2016 CHRISTMAS EDITION
\hspace{1.15cm}
\savestack\ST{\small\smash{\textwheel{~Deo!}{yellow!60!orange}{green!60!orange}{6}{1.2cm}}}
\LARGE\textwheel{+-~Gloria in excelsis~\ST}{red}{blue}{21}{8cm}
\end{minipage}
\end{document}
以下是上图的放大图:
以下显示了两个仅发生改变的情况fade_length
(从 1.5 厘米到 3 厘米):
最后,\strut
引入非零的偏差不对称的一个例子\biaslength
:
% CAN EXPERIMENT WITH ASYMMETRIC BIAS WITH THESE TWO PARAMETERS
\def\biasfrac{.4}% 0 to 1 ROTATES THE ASYMMETRY OF \biaslength
\biaslength=8pt% \ge 0pt (0pt produces circular symmetry)
注意与上图的区别,尤其是“烟花”中心附近。此外,烟花略有偏心。
程序逻辑
OP 要求对逻辑进行描述。OP 使用了\turnbox
宏,在 spinning.sty 文档中将其描述为“旋转环境的宏版本”。我不熟悉该宏,所以我坚持使用我所知道的,即\rotatebox
graphicx.sty 的宏,使用[origin=l]
选项围绕框的左边缘旋转。
我知道我想(通过搭接)\rotatebox
以同心方式放置一组 es,而 OP 已经为这种循环制定了逻辑,我直接使用了它。对我的帖子的多次编辑表明,在此过程中必须进行许多更正。对于 90 到 270 之间的旋转,一个问题是,框的“尾部”不能向左推过 x=0 位置,因此框的左侧原点被向右推。对此的补救措施是\llap
在 90 到 270 之间以及\rlap
圆上的其他地方使用。\ifnum\value{degrees}...
内部的分支逻辑\textwheel
解决了这一点。
下一个问题是,旋转后的框的垂直高度也限制了框向左的推力。这在 90 度和 270 度旋转时引入了不连续性。这就是我所说的\strut
-bias,因为不同的垂直高度会引入不同程度的不连续性。我最初的修正是\kern
在 90 度和 270 度旋转之间引入。但即使是字距修正也留下了略微椭圆的结果。
后来,我意识到\smash
旋转文本可以解决这个问题,使结果完美对称。\strut
然而,一位用户实际上错过了 -bias,所以我通过\biaslength
(重新引入的支柱的总高度)和(应用在基线以下的\biasfrac
那部分)将其重新引入为可控参数。\biaslength
我早期改进 OP 问题外观的想法之一是使用烟花的连续颜色过渡。我最近回答了这个问题如何在一定长度之后“淡出”文本?我让文本从黑色淡化为白色。我抓住了这种\FadeAfter
逻辑,并对其进行了一点调整,使其从颜色 1 变为颜色 2。它本质上是逐个字母地抓取参数,测量到该点的累积长度,并使用该累积长度(相对于指定的淡出长度)来决定该字母的颜色。而在原始逻辑中,我在达到“淡出长度”后关闭了淡出,因为它是白色的,在这里我只是继续使用颜色 2 处理字符串。
出现的另一个问题是 TeX 的\divide
命令将结果截断为整数。此宏用于将 360 除以重复次数以获得角度增量。坏消息是它可能会给出错误的结果(我发现要求重复 28 次实际上得到的是 30 次)。此外,所有舍入误差在最终框和 0 度框之间变得非常明显。我的解决方案是以千分之一度为单位进行计算(因此循环到 360000),这样舍入误差会更小。即便如此,循环设置为仅放置不超过 359 度的框,以避免两个几乎重叠的框(在 0 度和 359.xx 度)。
也许我对 OP 的提议做出的最好的补充就是引入了嵌套盒子。为此,我使用了\savestack
来自我的stackengine
包的 (尽管\savebox
/\usebox
也同样有效)。这很简单。只需将一个小的保存\textwheel
在一个盒子中,然后将该盒子用作核心的一部分\textwheel
,将其放在字符串的末尾。由于两个轮子可以有不同的颜色组合,因此可能性是无穷无尽的。
由于重叠和粉碎, s\textwheel
的高度和宽度为零。非零值\biaslength
实际上可能会稍微改变这一点,我不确定,这就是我\smash
编辑嵌套\textwheel
s 的原因。因此,我使用一系列\vspace
es 和\hspace
es 将 s 放在页面周围。如果需要,\textwheel
可以轻松重叠两个独立的s。\textwheel
答案2
Fireworks,有任何 TeX 版本,但仅限文本吗?
那么旧包happy4th
就满足要求了。实际上只是一个小小的混淆的 TeX 文件:
% Author: Brian Blackmore <[email protected]>
% Date: July 4, 2007
% Version: 20120102
% Original source: efnet #TeX
% License: Public Domain
% Requirements: Plain TeX
%
\nopagenumbers \centerline{Fireworks Display} \centerline{Brian Blackmore}
\centerline{Page Down As Quickly As You Wish}\centerline{Enjoy}\vfill\eject
\catcode`~\active\let~\catcode~`[\active \let[\let~`]\active ~`Y=1[]\active
~`@=2~`|=][|\expandafter ~`>][>\advance~`:][:\romannumeral~`+][+\count~`H10
~`&][&\def~`*][*\multiply[~\dimen[]\endcsname[[\csname&\burst{\bst{30}{29@}
&\bdYO} &\ss{\rsta{-2.2}{.2}{3@H\rstaY-2.2}{-0.5}{8@ \rsta{-2.2}{0.45}{0}@%
&\ssf{\dra\adva} &\draY+0=1H\loop\dr{x:+0}{y:+0}\vskip-\baselineskip >+0by1
\ifnum+0<\bc\repeat\vfill\eject}&\msa{\rsta{-2}Y0}{4.24@\rsta{-1.5}0Y4.24}}
&\adv#1#2#3#4{ ~0=[#1] ~1=[#3] >~0Hby~1 |\edef[#1]{[the]~0@ ~0=[#2] ~1=[#4]
>~0by~1 |\edef[#2]{[the]~0}~0=[#4]H~1=0.3in>~0by~1|\edef[#4]{\the~0}>+0by1}
&\sf{[ssf]\ssf\ssf\ssf\ssf\ssf@\catcode`!0&\fs{!let\vyi\vxi&\ssfY\sdra\adva
~0=\yi >~0by0inH\ifdim~0<8in \elseH&\yi{8in}&\vyi{0in}\fi}\mf@ +3=\the\time
&\rs{*+3 by12 >+3 by5H+1=+3 [divide]+1by151 *+1by151 >+3by-+1}&\mf{\ssf\ssf
[ssf]&\bd{o}\ssf\ssf} &\asm{\rsta{[email protected]}&!bd{\ifnum+0=1{\bf\TeX}\else
o!fi}} &\adva{+0=1H\loop \adv{x:+0@Yy:+0@{vx:+0}{vy:+0}\ifnum+0<\bc\repeat@
&\ms{[msa][asm][sf]} &\dr#1#2{\vbox to0pt{\parindent0pt\vskip-1in\vskip[#2]
\hboxHto\hsize{\hskip-1in!hskip[#1]\hbox to 0ptY\hss[bd]\hss}\hss}\vss}@\rs
&\gen{|\edef[x:+0]{\xi}|\edef[y:+0]{\yi} +1=+3>+3by+0\rs~0=+3pt\rs\divide~0
by151*~0 by151H>~0by-50.5pt|\edef[vx:+0]Y\the~0}~0=+3pt\rs\divide~0by151*~0
by151>~0by-60.5pt>+3by+1|!edef[vy:+0]Y\the~0}@&\bst#1#2{+0=1 \loop\gen>+0by
1 \ifnum+0<#1\repeat&\bc{#2}&\bd{$\bullet$}}&\sdra{\dra~0=\yi \divide~0Hby3
[font]\tf=cmr10 at~0H!vbox to 0pt{[parindent]0pt\vskip-1in\vskip\yi\hboxHto
\hsize{\hskip-1in\hskip\xi\hbox to0pt{\hss\tf\TeX\hss@\hss}\vss}}&\mburstY%
\bst{60}{59@}&\rst#1#2#3Y&\yi{11in@&\xi{#3in}&!vyi{#1in}&\vxiY#2in}&!uat{O@
\ambd&\bc{1}}&\ambd{&\bdY\ifnum+0=1O\else o\fi}&!bc{10@}H\catcode`\Z\active
&\rsta{\sbm\rst}&\sbm{\sf\burst\mf}\rstY-2@{-0.2}{5.25}!ss\sf&Z{bye@&!ssY13
wEbeDonE37}&!bc{1}\rsta{[email protected]}\ms\mburst&\vxi{0in}\fs!sf\sdra[vskip]%
-\baselineskip\centerline{H\char`\HappyHHJuly 4th\char`\!H}\expandafter[Z]Z
生成的页面是一个包含很多页面的 PDF,很可能在你的硬盘上(texdoc happy4th
如果你使用 TeXLive 或 MikTeX,请运行它。对于使用其他 TeX 发行版的更奇怪的人,你可以下载 PDF来自 CTAN)。PDF 只有在全屏模式下快速按下 Page Down 时才有趣。但对于懒人来说,你可以通过 Paul Gaborit 制作的这个动画来看到效果:
玩得开心。祝大家7 月 4 日新年快乐。
答案3
Brian Blackmore / Frans 的例子声音添加使用media9
& 动画使用animate
。
抱歉,需要 Windows 或 Mac 上的 A-Reader。
运行pdflatex -shell-escape
代码两次或三次。
声音文件在查看 PDF 时从网络加载。如需离线使用,请下载 mp3 并在构建 PDF 之前调整addresource=...
和代码行。source=...
\documentclass{standalone}
\usepackage{animate}
\usepackage{media9}
\usepackage{filecontents}
\usepackage{multido}
\begin{filecontents*}{\jobname-frames.tex}
\nopagenumbers \centerline{Fireworks Display} \centerline{Brian Blackmore}
\centerline{Enjoy}\vfill\eject%
\catcode`~\active\let~\catcode~`[\active \let[\let~`]\active ~`Y=1[]\active
~`@=2~`|=][|\expandafter ~`>][>\advance~`:][:\romannumeral~`+][+\count~`H10
~`&][&\def~`*][*\multiply[~\dimen[]\endcsname[[\csname&\burst{\bst{30}{29@}
&\bdYO} &\ss{\rsta{-2.2}{.2}{3@H\rstaY-2.2}{-0.5}{8@ \rsta{-2.2}{0.45}{0}@%
&\ssf{\dra\adva} &\draY+0=1H\loop\dr{x:+0}{y:+0}\vskip-\baselineskip >+0by1
\ifnum+0<\bc\repeat\vfill\eject}&\msa{\rsta{-2}Y0}{4.24@\rsta{-1.5}0Y4.24}}
&\adv#1#2#3#4{ ~0=[#1] ~1=[#3] >~0Hby~1 |\edef[#1]{[the]~0@ ~0=[#2] ~1=[#4]
>~0by~1 |\edef[#2]{[the]~0}~0=[#4]H~1=0.3in>~0by~1|\edef[#4]{\the~0}>+0by1}
&\sf{[ssf]\ssf\ssf\ssf\ssf\ssf@\catcode`!0&\fs{!let\vyi\vxi&\ssfY\sdra\adva
~0=\yi >~0by0inH\ifdim~0<8in \elseH&\yi{8in}&\vyi{0in}\fi}\mf@ +3=\the\time
&\rs{*+3 by12 >+3 by5H+1=+3 [divide]+1by151 *+1by151 >+3by-+1}&\mf{\ssf\ssf
[ssf]&\bd{o}\ssf\ssf} &\asm{\rsta{[email protected]}&!bd{\ifnum+0=1{\bf\TeX}\else
o!fi}} &\adva{+0=1H\loop \adv{x:+0@Yy:+0@{vx:+0}{vy:+0}\ifnum+0<\bc\repeat@
&\ms{[msa][asm][sf]} &\dr#1#2{\vbox to0pt{\parindent0pt\vskip-1in\vskip[#2]
\hboxHto\hsize{\hskip-1in!hskip[#1]\hbox to 0ptY\hss[bd]\hss}\hss}\vss}@\rs
&\gen{|\edef[x:+0]{\xi}|\edef[y:+0]{\yi} +1=+3>+3by+0\rs~0=+3pt\rs\divide~0
by151*~0 by151H>~0by-50.5pt|\edef[vx:+0]Y\the~0}~0=+3pt\rs\divide~0by151*~0
by151>~0by-60.5pt>+3by+1|!edef[vy:+0]Y\the~0}@&\bst#1#2{+0=1 \loop\gen>+0by
1 \ifnum+0<#1\repeat&\bc{#2}&\bd{$\bullet$}}&\sdra{\dra~0=\yi \divide~0Hby3
[font]\tf=cmr10 at~0H!vbox to 0pt{[parindent]0pt\vskip-1in\vskip\yi\hboxHto
\hsize{\hskip-1in\hskip\xi\hbox to0pt{\hss\tf\TeX\hss@\hss}\vss}}&\mburstY%
\bst{60}{59@}&\rst#1#2#3Y&\yi{11in@&\xi{#3in}&!vyi{#1in}&\vxiY#2in}&!uat{O@
\ambd&\bc{1}}&\ambd{&\bdY\ifnum+0=1O\else o\fi}&!bc{10@}H\catcode`\Z\active
&\rsta{\sbm\rst}&\sbm{\sf\burst\mf}\rstY-2@{-0.2}{5.25}!ss\sf&Z{bye@&!ssY13
wEbeDonE37}&!bc{1}\rsta{[email protected]}\ms\mburst&\vxi{0in}\fs!sf\sdra[vskip]%
0pt\expandafter[Z]Z
\end{filecontents*}
\immediate\write18{pdftex \jobname-frames.tex}
\newwrite\TimeLineFile
\immediate\openout\TimeLineFile=\jobname-tln.txt
\multido{\i=0+1}{103}{
\def\js{}
\ifthenelse{
\i=7 \OR \i=18 \OR \i=29 \OR \i=46 \OR \i=57 \OR \i=68 \OR \i=80 \OR \i=91
}{
\def\js{:annotRM.boom.callAS('rewind');annotRM.boom.callAS('play');}
}{}
\immediate\write\TimeLineFile{::\i \js}
}
\immediate\write\TimeLineFile{::102:anim.fworks.frameNum=1;}
\immediate\closeout\TimeLineFile
\begin{document}
\makebox[0pt][r]{\includemedia[
width=1ex,height=1ex,
label=boom,
activate=pageopen,transparent,noplaybutton,
flashvars={
source=http://www.freesfx.co.uk/rx2/mp3s/4/5269_1334666108.mp3
% source=5269_1334666108.mp3 % uncomment for offline use
&hideBar=true
}
% addresource=5269_1334666108.mp3 % uncomment for offline use
]{}{APlayer.swf}}%
\animategraphics[
width=\linewidth,
timeline=\jobname-tln.txt,
controls,
label=fworks]{6}{\jobname-frames}{}{}
\end{document}