summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/animate/files
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
committerNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
commite0c6872cf40896c7be36b11dcc744620f10adf1d (patch)
tree60335e10d2f4354b0674ec22d7b53f0f8abee672 /macros/latex/contrib/animate/files
Initial commit
Diffstat (limited to 'macros/latex/contrib/animate/files')
-rw-r--r--macros/latex/contrib/animate/files/bye_0.eps317
-rw-r--r--macros/latex/contrib/animate/files/bye_1.eps314
-rw-r--r--macros/latex/contrib/animate/files/bye_2.eps317
-rw-r--r--macros/latex/contrib/animate/files/bye_3.eps314
-rw-r--r--macros/latex/contrib/animate/files/click.mp3bin0 -> 2574 bytes
-rw-r--r--macros/latex/contrib/animate/files/exp.mp121
-rw-r--r--macros/latex/contrib/animate/files/scarab.mp138
7 files changed, 1521 insertions, 0 deletions
diff --git a/macros/latex/contrib/animate/files/bye_0.eps b/macros/latex/contrib/animate/files/bye_0.eps
new file mode 100644
index 0000000000..3bb488a052
--- /dev/null
+++ b/macros/latex/contrib/animate/files/bye_0.eps
@@ -0,0 +1,317 @@
+%!PS-Adobe-3.0 EPSF-3.0
+%%Creator: (ImageMagick)
+%%CreationDate: (Mon Aug 20 12:29:46 2007)
+%%BoundingBox: 0 0 26 18
+%%HiResBoundingBox: 0 0 26 18
+%%DocumentData: Clean7Bit
+%%LanguageLevel: 1
+%%Pages: 1
+%%EndComments
+
+%%BeginDefaults
+%%EndDefaults
+
+%%BeginProlog
+%
+% Display a color image. The image is displayed in color on
+% Postscript viewers or printers that support color, otherwise
+% it is displayed as grayscale.
+%
+/DirectClassPacket
+{
+ %
+ % Get a DirectClass packet.
+ %
+ % Parameters:
+ % red.
+ % green.
+ % blue.
+ % length: number of pixels minus one of this color (optional).
+ %
+ currentfile color_packet readhexstring pop pop
+ compression 0 eq
+ {
+ /number_pixels 3 def
+ }
+ {
+ currentfile byte readhexstring pop 0 get
+ /number_pixels exch 1 add 3 mul def
+ } ifelse
+ 0 3 number_pixels 1 sub
+ {
+ pixels exch color_packet putinterval
+ } for
+ pixels 0 number_pixels getinterval
+} bind def
+
+/DirectClassImage
+{
+ %
+ % Display a DirectClass image.
+ %
+ systemdict /colorimage known
+ {
+ columns rows 8
+ [
+ columns 0 0
+ rows neg 0 rows
+ ]
+ { DirectClassPacket } false 3 colorimage
+ }
+ {
+ %
+ % No colorimage operator; convert to grayscale.
+ %
+ columns rows 8
+ [
+ columns 0 0
+ rows neg 0 rows
+ ]
+ { GrayDirectClassPacket } image
+ } ifelse
+} bind def
+
+/GrayDirectClassPacket
+{
+ %
+ % Get a DirectClass packet; convert to grayscale.
+ %
+ % Parameters:
+ % red
+ % green
+ % blue
+ % length: number of pixels minus one of this color (optional).
+ %
+ currentfile color_packet readhexstring pop pop
+ color_packet 0 get 0.299 mul
+ color_packet 1 get 0.587 mul add
+ color_packet 2 get 0.114 mul add
+ cvi
+ /gray_packet exch def
+ compression 0 eq
+ {
+ /number_pixels 1 def
+ }
+ {
+ currentfile byte readhexstring pop 0 get
+ /number_pixels exch 1 add def
+ } ifelse
+ 0 1 number_pixels 1 sub
+ {
+ pixels exch gray_packet put
+ } for
+ pixels 0 number_pixels getinterval
+} bind def
+
+/GrayPseudoClassPacket
+{
+ %
+ % Get a PseudoClass packet; convert to grayscale.
+ %
+ % Parameters:
+ % index: index into the colormap.
+ % length: number of pixels minus one of this color (optional).
+ %
+ currentfile byte readhexstring pop 0 get
+ /offset exch 3 mul def
+ /color_packet colormap offset 3 getinterval def
+ color_packet 0 get 0.299 mul
+ color_packet 1 get 0.587 mul add
+ color_packet 2 get 0.114 mul add
+ cvi
+ /gray_packet exch def
+ compression 0 eq
+ {
+ /number_pixels 1 def
+ }
+ {
+ currentfile byte readhexstring pop 0 get
+ /number_pixels exch 1 add def
+ } ifelse
+ 0 1 number_pixels 1 sub
+ {
+ pixels exch gray_packet put
+ } for
+ pixels 0 number_pixels getinterval
+} bind def
+
+/PseudoClassPacket
+{
+ %
+ % Get a PseudoClass packet.
+ %
+ % Parameters:
+ % index: index into the colormap.
+ % length: number of pixels minus one of this color (optional).
+ %
+ currentfile byte readhexstring pop 0 get
+ /offset exch 3 mul def
+ /color_packet colormap offset 3 getinterval def
+ compression 0 eq
+ {
+ /number_pixels 3 def
+ }
+ {
+ currentfile byte readhexstring pop 0 get
+ /number_pixels exch 1 add 3 mul def
+ } ifelse
+ 0 3 number_pixels 1 sub
+ {
+ pixels exch color_packet putinterval
+ } for
+ pixels 0 number_pixels getinterval
+} bind def
+
+/PseudoClassImage
+{
+ %
+ % Display a PseudoClass image.
+ %
+ % Parameters:
+ % class: 0-PseudoClass or 1-Grayscale.
+ %
+ currentfile buffer readline pop
+ token pop /class exch def pop
+ class 0 gt
+ {
+ currentfile buffer readline pop
+ token pop /depth exch def pop
+ /grays columns 8 add depth sub depth mul 8 idiv string def
+ columns rows depth
+ [
+ columns 0 0
+ rows neg 0 rows
+ ]
+ { currentfile grays readhexstring pop } image
+ }
+ {
+ %
+ % Parameters:
+ % colors: number of colors in the colormap.
+ % colormap: red, green, blue color packets.
+ %
+ currentfile buffer readline pop
+ token pop /colors exch def pop
+ /colors colors 3 mul def
+ /colormap colors string def
+ currentfile colormap readhexstring pop pop
+ systemdict /colorimage known
+ {
+ columns rows 8
+ [
+ columns 0 0
+ rows neg 0 rows
+ ]
+ { PseudoClassPacket } false 3 colorimage
+ }
+ {
+ %
+ % No colorimage operator; convert to grayscale.
+ %
+ columns rows 8
+ [
+ columns 0 0
+ rows neg 0 rows
+ ]
+ { GrayPseudoClassPacket } image
+ } ifelse
+ } ifelse
+} bind def
+
+/DisplayImage
+{
+ %
+ % Display a DirectClass or PseudoClass image.
+ %
+ % Parameters:
+ % x & y translation.
+ % x & y scale.
+ % label pointsize.
+ % image label.
+ % image columns & rows.
+ % class: 0-DirectClass or 1-PseudoClass.
+ % compression: 0-none or 1-RunlengthEncoded.
+ % hex color packets.
+ %
+ gsave
+ /buffer 512 string def
+ /byte 1 string def
+ /color_packet 3 string def
+ /pixels 768 string def
+
+ currentfile buffer readline pop
+ token pop /x exch def
+ token pop /y exch def pop
+ x y translate
+ currentfile buffer readline pop
+ token pop /x exch def
+ token pop /y exch def pop
+ currentfile buffer readline pop
+ token pop /pointsize exch def pop
+ /Times-Roman findfont pointsize scalefont setfont
+ x y scale
+ currentfile buffer readline pop
+ token pop /columns exch def
+ token pop /rows exch def pop
+ currentfile buffer readline pop
+ token pop /class exch def pop
+ currentfile buffer readline pop
+ token pop /compression exch def pop
+ class 0 gt { PseudoClassImage } { DirectClassImage } ifelse
+ grestore
+} bind def
+%%EndProlog
+%%Page: 1 1
+%%PageBoundingBox: 0 0 26 18
+userdict begin
+DisplayImage
+0 0
+26 18
+12.000000
+26 18
+0
+0
+ffffffffffffffffffffffffFEFEF2DAD5CBA59A7D7A6A3A654A0E654A0E7A6A3AA59A7D
+DAD5CBFEFEF2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffEAEAE2A59A7D6A5312AC8E10DBB012EECA1AEECA1A
+C6AA12A680086A5312A59A7DEAEAE2ffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffDAD5CB7262329A7A0EF1D21AFEDA1AFEDA1A
+FEDA1AFEDA1AF1D21AEECA1AE1BB13986D06726232DAD5CBffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffE2E2DA6A5312C6AA12FEDA1AFEE222
+FEE222FEE222FEE222FEE222FEE222FEDA1AF1D21AEEC20ABA8E0A6A5312E2E2DAffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffFEF2F2948A64AC8E10FEDA1A
+FEE222FEE222423212FEE222FEE222FEE222423212FEE222FEDA1AEECA1AE1BB139A7A0E
+948A64FEFEF2423212423212423212ffffffffffffffffffffffffffffffDAD5CB6A5312
+F1D21AFEE222FEE222FEE222423212FEE222FEE222FEE222423212FEE222FEE222F1D21A
+EEC20ADBB012423212423212BA8202EEC20ABA8202423212ffffffffffffffffffffffff
+A59A7DAC8E10FEDA1AFEE222FEE222FEE222423212FEE222FEE222FEE222423212FEE222
+FEE222FEDA1AEECA1ADBB012423212FEE29ABA8202BA8202EEC20A423212ffffffffffff
+ffffffffffff7A623AE1BB13FEDA1AFEE222FEE222FEE222423212FEE222FEE222FEE222
+423212FEE222FEE222FEDA1AEECA1AE1BB13423212423212FEE29ABA8202EEC20ABA8202
+423212ffffffffffffffffff654A0EEECA1AFEDA1AFEE222FEE222FEE222FEE222FEE222
+FEE222FEE222FEE222FEE222FEE222FEDA1AEECA1AE1BB13423212FEE29A423212FEE29A
+EEC20ABA8202423212ffffffffffffffffff654A0EEECA1AFEDA1AFEE222FEE222FEE222
+FEE222FEE222FEE222FEE222FEE222FEE222FEE222FEDA1AEECA1ADBB012423212EEC20A
+FEE29AFEE29AEEC20ABA8202423212ffffffffffffffffff726232DBB012F1D21AFEE222
+FEE222FEE222FEE222FEE222FEE222FEE222FEE222FEE222FEE222F1D21AEEC20ADBB012
+BA8E0A423212EEC20AEEC20ABA8202423212ffffffffffffffffffffffffA59A7DA68008
+EECA1AFEDA1A423212FEE222FEE222FEE222FEE222FEE222FEE222FEE222FEDA1A423212
+E1BB13D4A00A986D06A59A7D423212423212423212ffffffffffffffffffffffffffffff
+DAD5CB6A5312E1BB13F1D21AFEDA1A423212FEE222FEE222FEE222FEE222FEE222FEDA1A
+423212EEC20ADBB012D4A00A654A0EDAD5CBffffffffffffffffffffffffffffffffffff
+ffffffffffffFEF2F2948A64A68008EEC20AEECA1AF1D21A423212423212423212423212
+423212423212EEC20ADBB012D4A00A986D06948A64FEF2F2ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffE2E2DA6A5312BA8E0AE1BB13EEC20AEECA1AEECA1A
+EECA1AEECA1AEEC20AE1BB13DBB012D4A00AA680086A5312E2E2DAffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffDAD5CB726232986D06DBB012
+DBB012E1BB13E1BB13DBB012DBB012D4A00ACA9A0A8A6202726232DAD5CBffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffEAEAE2
+A59A7D654A0E986D06BA8E0AD4A00AD4A00ABA8E0A986D06654A0EA59A7DEAEAE2ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffFEFEF2DAD5CBA59A7D7A6A3A654A0E654A0E7A6A3AA59A7DDAD5CBFEFEF2
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+end
+%%PageTrailer
+%%Trailer
+%%EOF
diff --git a/macros/latex/contrib/animate/files/bye_1.eps b/macros/latex/contrib/animate/files/bye_1.eps
new file mode 100644
index 0000000000..18d367de4c
--- /dev/null
+++ b/macros/latex/contrib/animate/files/bye_1.eps
@@ -0,0 +1,314 @@
+%!PS-Adobe-3.0 EPSF-3.0
+%%Creator: (ImageMagick)
+%%CreationDate: (Mon Aug 20 12:29:47 2007)
+%%BoundingBox: 0 0 26 18
+%%HiResBoundingBox: 0 0 26 18
+%%DocumentData: Clean7Bit
+%%LanguageLevel: 1
+%%Pages: 1
+%%EndComments
+
+%%BeginDefaults
+%%EndDefaults
+
+%%BeginProlog
+%
+% Display a color image. The image is displayed in color on
+% Postscript viewers or printers that support color, otherwise
+% it is displayed as grayscale.
+%
+/DirectClassPacket
+{
+ %
+ % Get a DirectClass packet.
+ %
+ % Parameters:
+ % red.
+ % green.
+ % blue.
+ % length: number of pixels minus one of this color (optional).
+ %
+ currentfile color_packet readhexstring pop pop
+ compression 0 eq
+ {
+ /number_pixels 3 def
+ }
+ {
+ currentfile byte readhexstring pop 0 get
+ /number_pixels exch 1 add 3 mul def
+ } ifelse
+ 0 3 number_pixels 1 sub
+ {
+ pixels exch color_packet putinterval
+ } for
+ pixels 0 number_pixels getinterval
+} bind def
+
+/DirectClassImage
+{
+ %
+ % Display a DirectClass image.
+ %
+ systemdict /colorimage known
+ {
+ columns rows 8
+ [
+ columns 0 0
+ rows neg 0 rows
+ ]
+ { DirectClassPacket } false 3 colorimage
+ }
+ {
+ %
+ % No colorimage operator; convert to grayscale.
+ %
+ columns rows 8
+ [
+ columns 0 0
+ rows neg 0 rows
+ ]
+ { GrayDirectClassPacket } image
+ } ifelse
+} bind def
+
+/GrayDirectClassPacket
+{
+ %
+ % Get a DirectClass packet; convert to grayscale.
+ %
+ % Parameters:
+ % red
+ % green
+ % blue
+ % length: number of pixels minus one of this color (optional).
+ %
+ currentfile color_packet readhexstring pop pop
+ color_packet 0 get 0.299 mul
+ color_packet 1 get 0.587 mul add
+ color_packet 2 get 0.114 mul add
+ cvi
+ /gray_packet exch def
+ compression 0 eq
+ {
+ /number_pixels 1 def
+ }
+ {
+ currentfile byte readhexstring pop 0 get
+ /number_pixels exch 1 add def
+ } ifelse
+ 0 1 number_pixels 1 sub
+ {
+ pixels exch gray_packet put
+ } for
+ pixels 0 number_pixels getinterval
+} bind def
+
+/GrayPseudoClassPacket
+{
+ %
+ % Get a PseudoClass packet; convert to grayscale.
+ %
+ % Parameters:
+ % index: index into the colormap.
+ % length: number of pixels minus one of this color (optional).
+ %
+ currentfile byte readhexstring pop 0 get
+ /offset exch 3 mul def
+ /color_packet colormap offset 3 getinterval def
+ color_packet 0 get 0.299 mul
+ color_packet 1 get 0.587 mul add
+ color_packet 2 get 0.114 mul add
+ cvi
+ /gray_packet exch def
+ compression 0 eq
+ {
+ /number_pixels 1 def
+ }
+ {
+ currentfile byte readhexstring pop 0 get
+ /number_pixels exch 1 add def
+ } ifelse
+ 0 1 number_pixels 1 sub
+ {
+ pixels exch gray_packet put
+ } for
+ pixels 0 number_pixels getinterval
+} bind def
+
+/PseudoClassPacket
+{
+ %
+ % Get a PseudoClass packet.
+ %
+ % Parameters:
+ % index: index into the colormap.
+ % length: number of pixels minus one of this color (optional).
+ %
+ currentfile byte readhexstring pop 0 get
+ /offset exch 3 mul def
+ /color_packet colormap offset 3 getinterval def
+ compression 0 eq
+ {
+ /number_pixels 3 def
+ }
+ {
+ currentfile byte readhexstring pop 0 get
+ /number_pixels exch 1 add 3 mul def
+ } ifelse
+ 0 3 number_pixels 1 sub
+ {
+ pixels exch color_packet putinterval
+ } for
+ pixels 0 number_pixels getinterval
+} bind def
+
+/PseudoClassImage
+{
+ %
+ % Display a PseudoClass image.
+ %
+ % Parameters:
+ % class: 0-PseudoClass or 1-Grayscale.
+ %
+ currentfile buffer readline pop
+ token pop /class exch def pop
+ class 0 gt
+ {
+ currentfile buffer readline pop
+ token pop /depth exch def pop
+ /grays columns 8 add depth sub depth mul 8 idiv string def
+ columns rows depth
+ [
+ columns 0 0
+ rows neg 0 rows
+ ]
+ { currentfile grays readhexstring pop } image
+ }
+ {
+ %
+ % Parameters:
+ % colors: number of colors in the colormap.
+ % colormap: red, green, blue color packets.
+ %
+ currentfile buffer readline pop
+ token pop /colors exch def pop
+ /colors colors 3 mul def
+ /colormap colors string def
+ currentfile colormap readhexstring pop pop
+ systemdict /colorimage known
+ {
+ columns rows 8
+ [
+ columns 0 0
+ rows neg 0 rows
+ ]
+ { PseudoClassPacket } false 3 colorimage
+ }
+ {
+ %
+ % No colorimage operator; convert to grayscale.
+ %
+ columns rows 8
+ [
+ columns 0 0
+ rows neg 0 rows
+ ]
+ { GrayPseudoClassPacket } image
+ } ifelse
+ } ifelse
+} bind def
+
+/DisplayImage
+{
+ %
+ % Display a DirectClass or PseudoClass image.
+ %
+ % Parameters:
+ % x & y translation.
+ % x & y scale.
+ % label pointsize.
+ % image label.
+ % image columns & rows.
+ % class: 0-DirectClass or 1-PseudoClass.
+ % compression: 0-none or 1-RunlengthEncoded.
+ % hex color packets.
+ %
+ gsave
+ /buffer 512 string def
+ /byte 1 string def
+ /color_packet 3 string def
+ /pixels 768 string def
+
+ currentfile buffer readline pop
+ token pop /x exch def
+ token pop /y exch def pop
+ x y translate
+ currentfile buffer readline pop
+ token pop /x exch def
+ token pop /y exch def pop
+ currentfile buffer readline pop
+ token pop /pointsize exch def pop
+ /Times-Roman findfont pointsize scalefont setfont
+ x y scale
+ currentfile buffer readline pop
+ token pop /columns exch def
+ token pop /rows exch def pop
+ currentfile buffer readline pop
+ token pop /class exch def pop
+ currentfile buffer readline pop
+ token pop /compression exch def pop
+ class 0 gt { PseudoClassImage } { DirectClassImage } ifelse
+ grestore
+} bind def
+%%EndProlog
+%%Page: 1 1
+%%PageBoundingBox: 0 0 26 18
+userdict begin
+DisplayImage
+0 0
+24 18
+12.000000
+24 18
+0
+0
+ffffffffffffffffffffffffFEFEF2DAD5CBA59A7D7A6A3A654A0E654A0E7A6A3AA59A7D
+DAD5CBFEFEF2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffEAEAE2A59A7D6A5312AC8E10DBB012EECA1AEECA1AC6AA12A68008
+6A5312A59A7DEAEAE2ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffDAD5CB7262329A7A0EF1D21AFEDA1AFEDA1AFEDA1AFEDA1AF1D21AEECA1A
+E1BB13986D06726232DAD5CBffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffE2E2DA6A5312C6AA12FEDA1AFEE222FEE222FEE222FEE222FEE222FEE222FEDA1A
+F1D21AEEC20ABA8E0A6A5312E2E2DAffffffffffffffffffffffffffffffffffffffffff
+FEF2F2948A64AC8E10FEDA1AFEE222FEE222423212FEE222FEE222FEE222423212FEE222
+FEDA1AEECA1AE1BB139A7A0E948A64FEFEF2ffffff423212423212423212ffffffffffff
+DAD5CB6A5312F1D21AFEE222FEE222FEE222423212FEE222FEE222FEE222423212FEE222
+FEE222F1D21AEEC20ADBB012654A0EDAD5CB423212FEE29ABA8202EEC20A423212423212
+A59A7DAC8E10FEDA1AFEE222FEE222FEE222423212FEE222FEE222FEE222423212FEE222
+FEE222FEDA1AEECA1ADBB012986D06423212423212FEE29ABA8202EEC20ABA8202423212
+7A623AE1BB13FEDA1AFEE222FEE222FEE222423212FEE222FEE222FEE222423212FEE222
+FEE222FEDA1AEECA1AE1BB13423212FEE29A423212FEE29ABA8202EEC20ABA8202423212
+654A0EEECA1AFEDA1AFEE222FEE222FEE222FEE222FEE222FEE222FEE222FEE222FEE222
+FEE222FEDA1AEECA1AE1BB13423212EEC20AFEE29A423212FEE29AFEE29ABA8202423212
+654A0EEECA1AFEDA1AFEE222FEE222FEE222FEE222FEE222FEE222FEE222FEE222FEE222
+FEE222FEDA1AEECA1ADBB012CA9A0A423212EEC20AFEE29AFEE29AEEC20ABA8202423212
+726232DBB012F1D21AFEE222FEE222FEE222FEE222FEE222FEE222FEE222FEE222FEE222
+FEE222F1D21AEEC20ADBB012BA8E0A7A6A3A423212EEC20AEEC20ABA8202423212ffffff
+A59A7DA68008EECA1AFEDA1A423212FEE222FEE222FEE222FEE222FEE222FEE222FEE222
+FEDA1A423212E1BB13D4A00A986D06A59A7Dffffff423212423212423212ffffffffffff
+DAD5CB6A5312E1BB13F1D21AFEDA1A423212FEE222FEE222FEE222FEE222FEE222FEDA1A
+423212EEC20ADBB012D4A00A654A0EDAD5CBffffffffffffffffffffffffffffffffffff
+FEF2F2948A64A68008EEC20AEECA1AF1D21A423212423212423212423212423212423212
+EEC20ADBB012D4A00A986D06948A64FEF2F2ffffffffffffffffffffffffffffffffffff
+ffffffE2E2DA6A5312BA8E0AE1BB13EEC20AEECA1AEECA1AEECA1AEECA1AEEC20AE1BB13
+DBB012D4A00AA680086A5312E2E2DAffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffDAD5CB726232986D06DBB012DBB012E1BB13E1BB13DBB012DBB012D4A00A
+CA9A0A8A6202726232DAD5CBffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffEAEAE2A59A7D654A0E986D06BA8E0AD4A00AD4A00ABA8E0A986D06
+654A0EA59A7DEAEAE2ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffFEFEF2DAD5CBA59A7D7A6A3A654A0E654A0E7A6A3AA59A7D
+DAD5CBFEFEF2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+end
+%%PageTrailer
+%%Trailer
+%%EOF
diff --git a/macros/latex/contrib/animate/files/bye_2.eps b/macros/latex/contrib/animate/files/bye_2.eps
new file mode 100644
index 0000000000..e610c254d0
--- /dev/null
+++ b/macros/latex/contrib/animate/files/bye_2.eps
@@ -0,0 +1,317 @@
+%!PS-Adobe-3.0 EPSF-3.0
+%%Creator: (ImageMagick)
+%%CreationDate: (Mon Aug 20 12:29:48 2007)
+%%BoundingBox: 0 0 26 18
+%%HiResBoundingBox: 0 0 26 18
+%%DocumentData: Clean7Bit
+%%LanguageLevel: 1
+%%Pages: 1
+%%EndComments
+
+%%BeginDefaults
+%%EndDefaults
+
+%%BeginProlog
+%
+% Display a color image. The image is displayed in color on
+% Postscript viewers or printers that support color, otherwise
+% it is displayed as grayscale.
+%
+/DirectClassPacket
+{
+ %
+ % Get a DirectClass packet.
+ %
+ % Parameters:
+ % red.
+ % green.
+ % blue.
+ % length: number of pixels minus one of this color (optional).
+ %
+ currentfile color_packet readhexstring pop pop
+ compression 0 eq
+ {
+ /number_pixels 3 def
+ }
+ {
+ currentfile byte readhexstring pop 0 get
+ /number_pixels exch 1 add 3 mul def
+ } ifelse
+ 0 3 number_pixels 1 sub
+ {
+ pixels exch color_packet putinterval
+ } for
+ pixels 0 number_pixels getinterval
+} bind def
+
+/DirectClassImage
+{
+ %
+ % Display a DirectClass image.
+ %
+ systemdict /colorimage known
+ {
+ columns rows 8
+ [
+ columns 0 0
+ rows neg 0 rows
+ ]
+ { DirectClassPacket } false 3 colorimage
+ }
+ {
+ %
+ % No colorimage operator; convert to grayscale.
+ %
+ columns rows 8
+ [
+ columns 0 0
+ rows neg 0 rows
+ ]
+ { GrayDirectClassPacket } image
+ } ifelse
+} bind def
+
+/GrayDirectClassPacket
+{
+ %
+ % Get a DirectClass packet; convert to grayscale.
+ %
+ % Parameters:
+ % red
+ % green
+ % blue
+ % length: number of pixels minus one of this color (optional).
+ %
+ currentfile color_packet readhexstring pop pop
+ color_packet 0 get 0.299 mul
+ color_packet 1 get 0.587 mul add
+ color_packet 2 get 0.114 mul add
+ cvi
+ /gray_packet exch def
+ compression 0 eq
+ {
+ /number_pixels 1 def
+ }
+ {
+ currentfile byte readhexstring pop 0 get
+ /number_pixels exch 1 add def
+ } ifelse
+ 0 1 number_pixels 1 sub
+ {
+ pixels exch gray_packet put
+ } for
+ pixels 0 number_pixels getinterval
+} bind def
+
+/GrayPseudoClassPacket
+{
+ %
+ % Get a PseudoClass packet; convert to grayscale.
+ %
+ % Parameters:
+ % index: index into the colormap.
+ % length: number of pixels minus one of this color (optional).
+ %
+ currentfile byte readhexstring pop 0 get
+ /offset exch 3 mul def
+ /color_packet colormap offset 3 getinterval def
+ color_packet 0 get 0.299 mul
+ color_packet 1 get 0.587 mul add
+ color_packet 2 get 0.114 mul add
+ cvi
+ /gray_packet exch def
+ compression 0 eq
+ {
+ /number_pixels 1 def
+ }
+ {
+ currentfile byte readhexstring pop 0 get
+ /number_pixels exch 1 add def
+ } ifelse
+ 0 1 number_pixels 1 sub
+ {
+ pixels exch gray_packet put
+ } for
+ pixels 0 number_pixels getinterval
+} bind def
+
+/PseudoClassPacket
+{
+ %
+ % Get a PseudoClass packet.
+ %
+ % Parameters:
+ % index: index into the colormap.
+ % length: number of pixels minus one of this color (optional).
+ %
+ currentfile byte readhexstring pop 0 get
+ /offset exch 3 mul def
+ /color_packet colormap offset 3 getinterval def
+ compression 0 eq
+ {
+ /number_pixels 3 def
+ }
+ {
+ currentfile byte readhexstring pop 0 get
+ /number_pixels exch 1 add 3 mul def
+ } ifelse
+ 0 3 number_pixels 1 sub
+ {
+ pixels exch color_packet putinterval
+ } for
+ pixels 0 number_pixels getinterval
+} bind def
+
+/PseudoClassImage
+{
+ %
+ % Display a PseudoClass image.
+ %
+ % Parameters:
+ % class: 0-PseudoClass or 1-Grayscale.
+ %
+ currentfile buffer readline pop
+ token pop /class exch def pop
+ class 0 gt
+ {
+ currentfile buffer readline pop
+ token pop /depth exch def pop
+ /grays columns 8 add depth sub depth mul 8 idiv string def
+ columns rows depth
+ [
+ columns 0 0
+ rows neg 0 rows
+ ]
+ { currentfile grays readhexstring pop } image
+ }
+ {
+ %
+ % Parameters:
+ % colors: number of colors in the colormap.
+ % colormap: red, green, blue color packets.
+ %
+ currentfile buffer readline pop
+ token pop /colors exch def pop
+ /colors colors 3 mul def
+ /colormap colors string def
+ currentfile colormap readhexstring pop pop
+ systemdict /colorimage known
+ {
+ columns rows 8
+ [
+ columns 0 0
+ rows neg 0 rows
+ ]
+ { PseudoClassPacket } false 3 colorimage
+ }
+ {
+ %
+ % No colorimage operator; convert to grayscale.
+ %
+ columns rows 8
+ [
+ columns 0 0
+ rows neg 0 rows
+ ]
+ { GrayPseudoClassPacket } image
+ } ifelse
+ } ifelse
+} bind def
+
+/DisplayImage
+{
+ %
+ % Display a DirectClass or PseudoClass image.
+ %
+ % Parameters:
+ % x & y translation.
+ % x & y scale.
+ % label pointsize.
+ % image label.
+ % image columns & rows.
+ % class: 0-DirectClass or 1-PseudoClass.
+ % compression: 0-none or 1-RunlengthEncoded.
+ % hex color packets.
+ %
+ gsave
+ /buffer 512 string def
+ /byte 1 string def
+ /color_packet 3 string def
+ /pixels 768 string def
+
+ currentfile buffer readline pop
+ token pop /x exch def
+ token pop /y exch def pop
+ x y translate
+ currentfile buffer readline pop
+ token pop /x exch def
+ token pop /y exch def pop
+ currentfile buffer readline pop
+ token pop /pointsize exch def pop
+ /Times-Roman findfont pointsize scalefont setfont
+ x y scale
+ currentfile buffer readline pop
+ token pop /columns exch def
+ token pop /rows exch def pop
+ currentfile buffer readline pop
+ token pop /class exch def pop
+ currentfile buffer readline pop
+ token pop /compression exch def pop
+ class 0 gt { PseudoClassImage } { DirectClassImage } ifelse
+ grestore
+} bind def
+%%EndProlog
+%%Page: 1 1
+%%PageBoundingBox: 0 0 26 18
+userdict begin
+DisplayImage
+0 0
+26 18
+12.000000
+26 18
+0
+0
+ffffffffffffffffffffffffFEFEF2DAD5CBA59A7D7A6A3A654A0E654A0E7A6A3AA59A7D
+DAD5CBFEFEF2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffEAEAE2A59A7D6A5312AC8E10DBB012EECA1AEECA1A
+C6AA12A680086A5312A59A7DEAEAE2ffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffDAD5CB7262329A7A0EF1D21AFEDA1AFEDA1A
+FEDA1AFEDA1AF1D21AEECA1AE1BB13986D06726232DAD5CBffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffE2E2DA6A5312C6AA12FEDA1AFEE222
+FEE222FEE222FEE222FEE222FEE222FEDA1AF1D21AEEC20ABA8E0A6A5312E2E2DAffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffFEF2F2948A64AC8E10FEDA1A
+FEE222FEE222423212FEE222FEE222FEE222423212FEE222FEDA1AEECA1AE1BB139A7A0E
+948A64FEFEF2ffffffffffffffffff423212423212423212ffffffffffffDAD5CB6A5312
+F1D21AFEE222FEE222FEE222423212FEE222FEE222FEE222423212FEE222FEE222F1D21A
+EEC20ADBB012654A0EDAD5CBffffffffffffffffff423212FEE29ABA8202423212423212
+A59A7DAC8E10FEDA1AFEE222FEE222FEE222423212FEE222FEE222FEE222423212FEE222
+FEE222FEDA1AEECA1ADBB012986D06A59A7D423212423212423212FEE29ABA8202EEC20A
+BA82024232127A623AE1BB13FEDA1AFEE222FEE222FEE222423212FEE222FEE222FEE222
+423212FEE222FEE222FEDA1AEECA1AE1BB13BA8E0A7A6A3A423212FEE29A423212FEE29A
+BA8202EEC20ABA8202423212654A0EEECA1AFEDA1AFEE222FEE222FEE222FEE222FEE222
+FEE222FEE222FEE222FEE222FEE222FEDA1AEECA1AE1BB13CA9A0A6A5312423212FEE29A
+FEE29ABA8202EEC20ABA8202423212ffffff654A0EEECA1AFEDA1AFEE222FEE222FEE222
+FEE222FEE222FEE222FEE222FEE222FEE222FEE222FEDA1AEECA1ADBB012CA9A0A6A5312
+423212EEC20AFEE29AFEE29AEEC20ABA8202423212ffffff726232DBB012F1D21AFEE222
+FEE222FEE222FEE222FEE222FEE222FEE222FEE222FEE222FEE222F1D21AEEC20ADBB012
+BA8E0A7A6A3Affffff423212EEC20AEEC20ABA8202423212ffffffffffffA59A7DA68008
+EECA1AFEDA1A423212FEE222FEE222FEE222FEE222FEE222FEE222FEE222FEDA1A423212
+E1BB13D4A00A986D06A59A7Dffffffffffff423212423212423212ffffffffffffffffff
+DAD5CB6A5312E1BB13F1D21AFEDA1A423212FEE222FEE222FEE222FEE222FEE222FEDA1A
+423212EEC20ADBB012D4A00A654A0EDAD5CBffffffffffffffffffffffffffffffffffff
+ffffffffffffFEF2F2948A64A68008EEC20AEECA1AF1D21A423212423212423212423212
+423212423212EEC20ADBB012D4A00A986D06948A64FEF2F2ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffE2E2DA6A5312BA8E0AE1BB13EEC20AEECA1AEECA1A
+EECA1AEECA1AEEC20AE1BB13DBB012D4A00AA680086A5312E2E2DAffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffDAD5CB726232986D06DBB012
+DBB012E1BB13E1BB13DBB012DBB012D4A00ACA9A0A8A6202726232DAD5CBffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffEAEAE2
+A59A7D654A0E986D06BA8E0AD4A00AD4A00ABA8E0A986D06654A0EA59A7DEAEAE2ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffFEFEF2DAD5CBA59A7D7A6A3A654A0E654A0E7A6A3AA59A7DDAD5CBFEFEF2
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+end
+%%PageTrailer
+%%Trailer
+%%EOF
diff --git a/macros/latex/contrib/animate/files/bye_3.eps b/macros/latex/contrib/animate/files/bye_3.eps
new file mode 100644
index 0000000000..31eda8f61b
--- /dev/null
+++ b/macros/latex/contrib/animate/files/bye_3.eps
@@ -0,0 +1,314 @@
+%!PS-Adobe-3.0 EPSF-3.0
+%%Creator: (ImageMagick)
+%%CreationDate: (Mon Aug 20 12:29:49 2007)
+%%BoundingBox: 0 0 26 18
+%%HiResBoundingBox: 0 0 26 18
+%%DocumentData: Clean7Bit
+%%LanguageLevel: 1
+%%Pages: 1
+%%EndComments
+
+%%BeginDefaults
+%%EndDefaults
+
+%%BeginProlog
+%
+% Display a color image. The image is displayed in color on
+% Postscript viewers or printers that support color, otherwise
+% it is displayed as grayscale.
+%
+/DirectClassPacket
+{
+ %
+ % Get a DirectClass packet.
+ %
+ % Parameters:
+ % red.
+ % green.
+ % blue.
+ % length: number of pixels minus one of this color (optional).
+ %
+ currentfile color_packet readhexstring pop pop
+ compression 0 eq
+ {
+ /number_pixels 3 def
+ }
+ {
+ currentfile byte readhexstring pop 0 get
+ /number_pixels exch 1 add 3 mul def
+ } ifelse
+ 0 3 number_pixels 1 sub
+ {
+ pixels exch color_packet putinterval
+ } for
+ pixels 0 number_pixels getinterval
+} bind def
+
+/DirectClassImage
+{
+ %
+ % Display a DirectClass image.
+ %
+ systemdict /colorimage known
+ {
+ columns rows 8
+ [
+ columns 0 0
+ rows neg 0 rows
+ ]
+ { DirectClassPacket } false 3 colorimage
+ }
+ {
+ %
+ % No colorimage operator; convert to grayscale.
+ %
+ columns rows 8
+ [
+ columns 0 0
+ rows neg 0 rows
+ ]
+ { GrayDirectClassPacket } image
+ } ifelse
+} bind def
+
+/GrayDirectClassPacket
+{
+ %
+ % Get a DirectClass packet; convert to grayscale.
+ %
+ % Parameters:
+ % red
+ % green
+ % blue
+ % length: number of pixels minus one of this color (optional).
+ %
+ currentfile color_packet readhexstring pop pop
+ color_packet 0 get 0.299 mul
+ color_packet 1 get 0.587 mul add
+ color_packet 2 get 0.114 mul add
+ cvi
+ /gray_packet exch def
+ compression 0 eq
+ {
+ /number_pixels 1 def
+ }
+ {
+ currentfile byte readhexstring pop 0 get
+ /number_pixels exch 1 add def
+ } ifelse
+ 0 1 number_pixels 1 sub
+ {
+ pixels exch gray_packet put
+ } for
+ pixels 0 number_pixels getinterval
+} bind def
+
+/GrayPseudoClassPacket
+{
+ %
+ % Get a PseudoClass packet; convert to grayscale.
+ %
+ % Parameters:
+ % index: index into the colormap.
+ % length: number of pixels minus one of this color (optional).
+ %
+ currentfile byte readhexstring pop 0 get
+ /offset exch 3 mul def
+ /color_packet colormap offset 3 getinterval def
+ color_packet 0 get 0.299 mul
+ color_packet 1 get 0.587 mul add
+ color_packet 2 get 0.114 mul add
+ cvi
+ /gray_packet exch def
+ compression 0 eq
+ {
+ /number_pixels 1 def
+ }
+ {
+ currentfile byte readhexstring pop 0 get
+ /number_pixels exch 1 add def
+ } ifelse
+ 0 1 number_pixels 1 sub
+ {
+ pixels exch gray_packet put
+ } for
+ pixels 0 number_pixels getinterval
+} bind def
+
+/PseudoClassPacket
+{
+ %
+ % Get a PseudoClass packet.
+ %
+ % Parameters:
+ % index: index into the colormap.
+ % length: number of pixels minus one of this color (optional).
+ %
+ currentfile byte readhexstring pop 0 get
+ /offset exch 3 mul def
+ /color_packet colormap offset 3 getinterval def
+ compression 0 eq
+ {
+ /number_pixels 3 def
+ }
+ {
+ currentfile byte readhexstring pop 0 get
+ /number_pixels exch 1 add 3 mul def
+ } ifelse
+ 0 3 number_pixels 1 sub
+ {
+ pixels exch color_packet putinterval
+ } for
+ pixels 0 number_pixels getinterval
+} bind def
+
+/PseudoClassImage
+{
+ %
+ % Display a PseudoClass image.
+ %
+ % Parameters:
+ % class: 0-PseudoClass or 1-Grayscale.
+ %
+ currentfile buffer readline pop
+ token pop /class exch def pop
+ class 0 gt
+ {
+ currentfile buffer readline pop
+ token pop /depth exch def pop
+ /grays columns 8 add depth sub depth mul 8 idiv string def
+ columns rows depth
+ [
+ columns 0 0
+ rows neg 0 rows
+ ]
+ { currentfile grays readhexstring pop } image
+ }
+ {
+ %
+ % Parameters:
+ % colors: number of colors in the colormap.
+ % colormap: red, green, blue color packets.
+ %
+ currentfile buffer readline pop
+ token pop /colors exch def pop
+ /colors colors 3 mul def
+ /colormap colors string def
+ currentfile colormap readhexstring pop pop
+ systemdict /colorimage known
+ {
+ columns rows 8
+ [
+ columns 0 0
+ rows neg 0 rows
+ ]
+ { PseudoClassPacket } false 3 colorimage
+ }
+ {
+ %
+ % No colorimage operator; convert to grayscale.
+ %
+ columns rows 8
+ [
+ columns 0 0
+ rows neg 0 rows
+ ]
+ { GrayPseudoClassPacket } image
+ } ifelse
+ } ifelse
+} bind def
+
+/DisplayImage
+{
+ %
+ % Display a DirectClass or PseudoClass image.
+ %
+ % Parameters:
+ % x & y translation.
+ % x & y scale.
+ % label pointsize.
+ % image label.
+ % image columns & rows.
+ % class: 0-DirectClass or 1-PseudoClass.
+ % compression: 0-none or 1-RunlengthEncoded.
+ % hex color packets.
+ %
+ gsave
+ /buffer 512 string def
+ /byte 1 string def
+ /color_packet 3 string def
+ /pixels 768 string def
+
+ currentfile buffer readline pop
+ token pop /x exch def
+ token pop /y exch def pop
+ x y translate
+ currentfile buffer readline pop
+ token pop /x exch def
+ token pop /y exch def pop
+ currentfile buffer readline pop
+ token pop /pointsize exch def pop
+ /Times-Roman findfont pointsize scalefont setfont
+ x y scale
+ currentfile buffer readline pop
+ token pop /columns exch def
+ token pop /rows exch def pop
+ currentfile buffer readline pop
+ token pop /class exch def pop
+ currentfile buffer readline pop
+ token pop /compression exch def pop
+ class 0 gt { PseudoClassImage } { DirectClassImage } ifelse
+ grestore
+} bind def
+%%EndProlog
+%%Page: 1 1
+%%PageBoundingBox: 0 0 26 18
+userdict begin
+DisplayImage
+0 0
+24 18
+12.000000
+24 18
+0
+0
+ffffffffffffffffffffffffFEFEF2DAD5CBA59A7D7A6A3A654A0E654A0E7A6A3AA59A7D
+DAD5CBFEFEF2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffEAEAE2A59A7D6A5312AC8E10DBB012EECA1AEECA1AC6AA12A68008
+6A5312A59A7DEAEAE2ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffDAD5CB7262329A7A0EF1D21AFEDA1AFEDA1AFEDA1AFEDA1AF1D21AEECA1A
+E1BB13986D06726232DAD5CBffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffE2E2DA6A5312C6AA12FEDA1AFEE222FEE222FEE222FEE222FEE222FEE222FEDA1A
+F1D21AEEC20ABA8E0A6A5312E2E2DAffffffffffffffffffffffffffffffffffffffffff
+FEF2F2948A64AC8E10FEDA1AFEE222FEE222423212FEE222FEE222FEE222423212FEE222
+FEDA1AEECA1AE1BB139A7A0E948A64FEFEF2ffffff423212423212423212ffffffffffff
+DAD5CB6A5312F1D21AFEE222FEE222FEE222423212FEE222FEE222FEE222423212FEE222
+FEE222F1D21AEEC20ADBB012654A0EDAD5CB423212FEE29ABA8202EEC20A423212423212
+A59A7DAC8E10FEDA1AFEE222FEE222FEE222423212FEE222FEE222FEE222423212FEE222
+FEE222FEDA1AEECA1ADBB012986D06423212423212FEE29ABA8202EEC20ABA8202423212
+7A623AE1BB13FEDA1AFEE222FEE222FEE222423212FEE222FEE222FEE222423212FEE222
+FEE222FEDA1AEECA1AE1BB13423212FEE29A423212FEE29ABA8202EEC20ABA8202423212
+654A0EEECA1AFEDA1AFEE222FEE222FEE222FEE222FEE222FEE222FEE222FEE222FEE222
+FEE222FEDA1AEECA1AE1BB13423212EEC20AFEE29A423212FEE29AFEE29ABA8202423212
+654A0EEECA1AFEDA1AFEE222FEE222FEE222FEE222FEE222FEE222FEE222FEE222FEE222
+FEE222FEDA1AEECA1ADBB012CA9A0A423212EEC20AFEE29AFEE29AEEC20ABA8202423212
+726232DBB012F1D21AFEE222FEE222FEE222FEE222FEE222FEE222FEE222FEE222FEE222
+FEE222F1D21AEEC20ADBB012BA8E0A7A6A3A423212EEC20AEEC20ABA8202423212ffffff
+A59A7DA68008EECA1AFEDA1A423212FEE222FEE222FEE222FEE222FEE222FEE222FEE222
+FEDA1A423212E1BB13D4A00A986D06A59A7Dffffff423212423212423212ffffffffffff
+DAD5CB6A5312E1BB13F1D21AFEDA1A423212FEE222FEE222FEE222FEE222FEE222FEDA1A
+423212EEC20ADBB012D4A00A654A0EDAD5CBffffffffffffffffffffffffffffffffffff
+FEF2F2948A64A68008EEC20AEECA1AF1D21A423212423212423212423212423212423212
+EEC20ADBB012D4A00A986D06948A64FEF2F2ffffffffffffffffffffffffffffffffffff
+ffffffE2E2DA6A5312BA8E0AE1BB13EEC20AEECA1AEECA1AEECA1AEECA1AEEC20AE1BB13
+DBB012D4A00AA680086A5312E2E2DAffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffDAD5CB726232986D06DBB012DBB012E1BB13E1BB13DBB012DBB012D4A00A
+CA9A0A8A6202726232DAD5CBffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffEAEAE2A59A7D654A0E986D06BA8E0AD4A00AD4A00ABA8E0A986D06
+654A0EA59A7DEAEAE2ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffFEFEF2DAD5CBA59A7D7A6A3A654A0E654A0E7A6A3AA59A7D
+DAD5CBFEFEF2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+end
+%%PageTrailer
+%%Trailer
+%%EOF
diff --git a/macros/latex/contrib/animate/files/click.mp3 b/macros/latex/contrib/animate/files/click.mp3
new file mode 100644
index 0000000000..9c0f72db5b
--- /dev/null
+++ b/macros/latex/contrib/animate/files/click.mp3
Binary files differ
diff --git a/macros/latex/contrib/animate/files/exp.mp b/macros/latex/contrib/animate/files/exp.mp
new file mode 100644
index 0000000000..85c5c42969
--- /dev/null
+++ b/macros/latex/contrib/animate/files/exp.mp
@@ -0,0 +1,121 @@
+% Jan Holecek, Alexander Grahn
+% 2018/11/29
+
+prologues:=3;
+outputtemplate := "%j_%c.mps";
+outputformat := "mps";
+
+verbatimtex
+\documentclass{article}
+\usepackage[latin1]{inputenc}
+\usepackage[T1]{fontenc}
+%\usepackage{lmodern}
+ \usepackage[tt=false]{libertine}
+ \usepackage[libertine]{newtxmath}
+\usepackage{amsmath}
+\begin{document}
+etex
+
+e := 2.718282;
+N=8;
+size := 5cm;
+bars := 0.5mm;
+diff := 0.05;
+xmin := -2;
+xmax := 2;
+xo := -2;
+ymin := 0;
+ymax := e**xmax;
+xcoe := size / (xmax - xmin);
+ycoe := size / (ymax - ymin);
+
+
+pair xaxis[], yaxis[], npnt;
+xaxis[1] = (xmin * xcoe, 0); xaxis[2] = (xmax * xcoe, 0);
+yaxis[1] = (0, ymin * ycoe); yaxis[2] = (0, ymax * ycoe);
+npnt = (xmin * xcoe, ymax * ycoe);
+
+picture xlabel, ylabel, elabel, nlabel[];
+xlabel = btex $x$ etex;
+ylabel = btex $y$ etex;
+elabel = btex $y = e^x$ etex;
+nlabel[1] = btex $n = 1$ etex;
+nlabel[2] = btex $n = 2$ etex;
+nlabel[3] = btex $n = 3$ etex;
+nlabel[4] = btex $n = 4$ etex;
+nlabel[5] = btex $n = 5$ etex;
+nlabel[6] = btex $n = 6$ etex;
+nlabel[7] = btex $n = 7$ etex;
+nlabel[8] = btex $n = 8$ etex;
+
+
+def pnt (expr x,y)=
+ ( x * xcoe, y * ycoe )
+enddef;
+
+def exp (expr x)=
+ pnt (x , e**x)
+enddef;
+
+def taylor (expr s,x)=
+ begingroup
+ save i,v,w;
+ v = 1;
+ w = 1;
+ for i := 1 upto s:
+ w := (w * (x-xo)) / i;
+ v := v + w;
+ endfor;
+ pnt (x , v * (e**xo))
+ endgroup
+enddef;
+
+path pexp,ptaylor[];
+
+pexp = exp(xmin)
+for i:=xmin+diff step diff until xmax:
+ .. exp(i)
+endfor;
+
+for j:=1 upto N:
+ ptaylor[j] := taylor (j,xmin)
+ for i:=xmin+diff step diff until xmax:
+ .. taylor(j,i)
+ endfor;
+endfor;
+
+def axis=
+ drawarrow xaxis[1]--xaxis[2];
+ drawarrow yaxis[1]--yaxis[2];
+ for k:=-1,1:
+ draw (k * xcoe, -bars) -- (k * xcoe, bars);
+ endfor;
+ for k:=1 upto 6:
+ draw (-bars, k * ycoe) -- (bars, k * ycoe);
+ endfor;
+ draw pexp withcolor red;
+ label.lrt (xlabel, xaxis[2]);
+ label.ulft (ylabel, yaxis[2]);
+ label.top (elabel, point (length (pexp)) of pexp);
+enddef;
+
+path bounds;
+beginfig(0);
+ pickup pencircle scaled 0.4mm;
+ axis;
+ bounds:=bbox currentpicture;
+ setbounds currentpicture to bounds;
+ clip currentpicture to bounds;
+endfig;
+
+for i:=1 upto N:
+ beginfig(i);
+ pickup pencircle scaled 0.4mm;
+ draw ptaylor[i] withcolor blue;
+ label.lrt ( nlabel[i], npnt);
+ setbounds currentpicture to bounds;
+ clip currentpicture to bounds;
+ endfig;
+endfor;
+
+end.
diff --git a/macros/latex/contrib/animate/files/scarab.mp b/macros/latex/contrib/animate/files/scarab.mp
new file mode 100644
index 0000000000..7e04c256d2
--- /dev/null
+++ b/macros/latex/contrib/animate/files/scarab.mp
@@ -0,0 +1,138 @@
+% Maxime Chupin, Alexander Grahn
+% 2018/11/29
+
+prologues:=3;
+outputtemplate := "%j_%c.mps";
+outputformat := "mps";
+
+verbatimtex
+\documentclass{article}
+\usepackage[latin1]{inputenc}
+\usepackage[T1]{fontenc}
+%\usepackage{lmodern}
+ \usepackage[tt=false]{libertine}
+ \usepackage[libertine]{newtxmath}
+\usepackage{amsmath}
+\begin{document}
+etex
+
+u:=4cm;
+
+vardef proj(expr P,M,N)=
+ save H;
+ pair H;
+ H=whatever [M,N];
+ H-P=whatever * (M - N) rotated 90;
+ H
+enddef;
+
+path dr,cercle,drb,scara;
+pair A,B,C,D,Q,T,O',P,O,M;
+O:=(0,0);
+O':=(-u/3,0);
+A:=(u/sqrt(2),u/sqrt(2)) shifted O';
+B:=(u/sqrt(2),-u/sqrt(2)) shifted O';
+C:=(-u/sqrt(2),-u/sqrt(2))shifted O';
+D:=(-u/sqrt(2),u/sqrt(2)) shifted O';
+dr:=A--C;
+drb:=B--D;
+
+%scarabaeus construction
+for i:=0 upto 100:
+ if i=0:
+ P:=A;
+ Q:=O';
+ M:=proj(O,P,Q);
+ scara:=M;
+ else:
+ scara:=M;
+ for j:=1 upto 4:
+ k:=4*(i-1)+j;
+ if (k<200) or (k=200):
+ P:=point (k*0.005) of dr;
+ cercle:=halfcircle
+ scaled 2u rotated 45 shifted P;
+ if k=0:
+ Q:=O';
+ fi;
+ if (k<>0) and (k<>200):
+ Q:=cercle intersectionpoint drb;
+ fi;
+ if k=200:
+ Q:=O';
+ fi;
+ else:
+ P:= point (2-k*0.005) of dr;
+ cercle:=halfcircle
+ scaled 2u rotated (-135) shifted P;
+ if k<400:
+ Q:=cercle intersectionpoint drb;
+ fi;
+ if k=400:
+ Q:=O';
+ fi;
+ fi;
+ M:=proj(O,P,Q);
+ scara:=scara--M;
+ endfor;
+ fi;
+ beginfig(i) %red scarabaeus segments
+ setbounds currentpicture to
+ (u,1.2u)--(u,-1.2u)--(-1.5u,-1.2u)--(-1.5u,1.2u)--cycle;
+ pickup pencircle scaled 1pt;
+ draw scara withcolor red;
+ clip currentpicture to
+ (u,1.2u)--(u,-1.2u)--(-1.5u,-1.2u)--(-1.5u,1.2u)--cycle;
+ endfig;
+ beginfig(i+101) %moving construction lines and labels
+ setbounds currentpicture to
+ (u,1.2u)--(u,-1.2u)--(-1.5u,-1.2u)--(-1.5u,1.2u)--cycle;
+ draw 12[P,Q]--12[Q,P] dashed evenly;
+ draw O--M dashed evenly;
+ pickup pencircle scaled 1.4pt;
+ draw P--Q withcolor blue;
+ label.rt(btex $2l$ etex, 0.5[P,Q]);
+ dotlabel.urt(btex $P$ etex, P);
+ dotlabel.llft(btex $Q$ etex,Q);
+ dotlabel.top(btex $M$ etex,M);
+ clip currentpicture to
+ (u,1.2u)--(u,-1.2u)--(-1.5u,-1.2u)--(-1.5u,1.2u)--cycle;
+ endfig;
+ if (i/2.-floor(i/2.))=0: %gray lines every second image
+ beginfig(i/2+202)
+ setbounds currentpicture to
+ (u,1.2u)--(u,-1.2u)--(-1.5u,-1.2u)--(-1.5u,1.2u)--cycle;
+ draw P--Q withcolor 0.8 white;
+ clip currentpicture to
+ (u,1.2u)--(u,-1.2u)--(-1.5u,-1.2u)--(-1.5u,1.2u)--cycle;
+ endfig;
+ fi;
+endfor;
+
+%coordinate axes and stationary stuff
+beginfig(253);
+ setbounds currentpicture to
+ (u,1.2u)--(u,-1.2u)--(-1.5u,-1.2u)--(-1.5u,1.2u)--cycle;
+ path ida,mida;
+ drawarrow(-1.5u,0)--(1u,0);
+ drawarrow(0,-1.2u)--(0,1.2u);
+ ida:=12[A,C]--12[C,A];
+ mida:=(12[D,B]--12[B,D]);
+ draw ida dashed evenly;
+ draw mida dashed evenly;
+ label.top(btex $a$ etex, 0.5[O,O']);
+ label.top(btex $x$ etex, (0.8u,0));
+ label.rt(btex $y$ etex, (0,u));
+ label.bot(btex\itshape{\underline{scarabaeus}} etex,(-1.1u,1.1u));
+ label.bot(btex $r=l\cos 2t-a\cos t$ etex, (-u/2,1.1u));
+ dotlabel.urt(btex $O'$ etex, O');
+ dotlabel.urt(btex $O$ etex, O);
+ dotlabel.rt(btex $A$ etex,A);
+ dotlabel.rt(btex $B$ etex,B);
+ dotlabel.lft(btex $C$ etex,C);
+ dotlabel.lft(btex $D$ etex,D);
+ clip currentpicture to
+ (u,1.2u)--(u,-1.2u)--(-1.5u,-1.2u)--(-1.5u,1.2u)--cycle;
+endfig;
+
+end.