summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/animate
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2019-05-05 18:06:50 +0000
committerKarl Berry <karl@freefriends.org>2019-05-05 18:06:50 +0000
commitf0cc2d8030038bc728c1d758aaa39da12e0611ee (patch)
tree87fa54c15403d99ffc8f05f9d9deaa33ac8c2bcc /Master/texmf-dist/tex/latex/animate
parent9427dfbe861b203ec9fe309a1d590644668f2630 (diff)
animate (9apr19)
git-svn-id: svn://tug.org/texlive/trunk@51009 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/animate')
-rw-r--r--Master/texmf-dist/tex/latex/animate/animate.sty185
1 files changed, 141 insertions, 44 deletions
diff --git a/Master/texmf-dist/tex/latex/animate/animate.sty b/Master/texmf-dist/tex/latex/animate/animate.sty
index 20847c9d014..12ab6bd4289 100644
--- a/Master/texmf-dist/tex/latex/animate/animate.sty
+++ b/Master/texmf-dist/tex/latex/animate/animate.sty
@@ -13,7 +13,7 @@
\NeedsTeXFormat{LaTeX2e}
-\def\@anim@version{2019/03/06}
+\def\@anim@version{2019/04/09}
\ProvidesPackage{animate}
[\@anim@version\space PDF & SVG animations from files and inline graphics]
@@ -146,37 +146,52 @@
\if@anim@dvisvgm
\setboolean{@anim@export}{false}
-
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\AtBeginDocument{%
- % Add PS and PDF file inclusion (PDF files as of dvisvgm-2.4) to and
- % fix scaling/rotation/transformation in dvisvgm graphics driver
- \xdef\Gin@extensions{.eps,.pdf,\Gin@extensions}%
- \def\Ginclude@pdf#1{\@anim@include@psorpdf{#1}{pdffile}}%
- \def\Ginclude@eps#1{\let\Gin@page\@empty\@anim@include@psorpdf{#1}{PSfile}}%
- \def\@anim@include@psorpdf#1#2{% code taken from dvips.def
- \message{<#1>}%
- \bgroup%
+ % Add PS and PDF file inclusion (PDF files as of dvisvgm-2.6.3) and
+ % fix some scaling issues in the dvisvgm.def graphics driver
+ \def\GPT@space{ }
+ \def\Gin@extensions{.svg,.eps,.png,.jpg,.jpeg}
+ \def\Ginclude@pdf#1{\Ginclude@psorpdf{#1}{pdffile}}
+ \def\Ginclude@eps#1{\let\Gin@page\@empty\Ginclude@psorpdf{#1}{PSfile}}
+ \def\Ginclude@psorpdf#1#2{%
+ \message{<#1>}%
+ \bgroup
\def\@tempa{!}%
- \dimen@\Gin@req@width%
+ \dimen@\Gin@req@width
\dimen@ii.1bp%
- \divide\dimen@\dimen@ii%
- \@tempdima\Gin@req@height%
- \divide\@tempdima\dimen@ii%
- \special{#2="#1"\GPT@space%
- \ifx\Gin@page\@empty\else page=\Gin@page\GPT@space\fi%
- llx=\Gin@llx\GPT@space%
- lly=\Gin@lly\GPT@space%
- urx=\Gin@urx\GPT@space%
- ury=\Gin@ury\GPT@space%
- \ifx\Gin@scalex\@tempa\else rwi=\number\dimen@\GPT@space\fi%
- \ifx\Gin@scaley\@tempa\else rhi=\number\@tempdima\GPT@space\fi%
- \ifGin@clip clip\fi}%
- \egroup}%
- \@namedef{Gin@rule@.ps}#1{{eps}{.ps}{#1}}%
- \@namedef{Gin@rule@.eps}#1{{eps}{.eps}{#1}}%
- \@namedef{Gin@rule@.mps}#1{{eps}{.mps}{#1}}%
- \@namedef{Gin@rule@.pdf}#1{{pdf}{.xbb}{#1}}%
- % BoundingBox determination (from dvipdfmx.def)
+ \divide\dimen@\dimen@ii
+ \@tempdima\Gin@req@height
+ \divide\@tempdima\dimen@ii
+ \Gin@req@width0.99626\Gin@req@width%
+ \Gin@req@height0.99626\Gin@req@height%
+ \ifGin@clip\special{dvisvgm:raw
+ <g><clipPath id="GinClip\Gin@clip@id">%
+ <path d="M{?x},{?y}l\strip@pt\Gin@req@width,0l0,-\strip@pt\Gin@req@height
+ l-\strip@pt\Gin@req@width,0Z"/>%
+ </clipPath>%
+ <g clip-path="url(\Gin@hash@tag GinClip\Gin@clip@id)">}%
+ \fi%
+ \special{#2="#1"\GPT@space
+ \ifx\Gin@page\@empty\else page=\Gin@page\GPT@space\fi
+ llx=\Gin@llx\GPT@space
+ lly=\Gin@lly\GPT@space
+ urx=\Gin@urx\GPT@space
+ ury=\Gin@ury\GPT@space
+ \ifx\Gin@scalex\@tempa\else rwi=\number\dimen@\GPT@space\fi
+ \ifx\Gin@scaley\@tempa\else rhi=\number\@tempdima\GPT@space\fi
+ }%
+ \ifGin@clip%
+ \special{dvisvgm:raw </g></g>}%
+ \begingroup%
+ \count@\Gin@clip@id\advance\count@ by\@ne\xdef\Gin@clip@id{\the\count@}%
+ \endgroup%
+ \fi%
+ \egroup}
+ \@namedef{Gin@rule@.ps}#1{{eps}{.ps}{#1}}
+ \@namedef{Gin@rule@.eps}#1{{eps}{.eps}{#1}}
+ \@namedef{Gin@rule@.mps}#1{{eps}{.mps}{#1}}
+ \@namedef{Gin@rule@.pdf}#1{{pdf}{.xbb}{#1}}
\def\Gread@pdf#1{%
\Gread@generic{#1}\Gread@extractbb@aux%
}%
@@ -192,9 +207,13 @@
\let\@tempb\Gread@false%
\ifeof\@inputcheck%
\@latex@error%
- {Cannot run pipe command. Try --shell-escape^^J%
+ {Cannot run pipe command. Try --shell-escape\MessageBreak%
(--enable-pipes in MikTeX) option}%
- {}%
+ {Alternatively, execute\MessageBreak\space\space
+ extractbb
+ \ifx\Gin@page\@empty\else -p \Gin@page\GPT@space\fi
+ \ifx\Gin@pagebox\@empty\else -B \Gin@pagebox\GPT@space\fi
+ \Gin@base\Gin@ext\MessageBreak in a terminal.}%
\else%
\loop%
\read\@inputcheck to\@tempa%
@@ -207,20 +226,98 @@
\repeat%
\immediate\closein\@inputcheck%
\fi%
- }%
- % PS scaling and rotation (from dvips.def)
- \def\Grot@start{%
- \special{ps: gsave currentpoint
- currentpoint translate \Grot@angle\GPT@space neg
- rotate neg exch neg exch translate}}%
- \def\Grot@end{\special{ps: currentpoint grestore moveto}}%
- \def\Gscale@start{\special{ps: currentpoint currentpoint translate
- \Gscale@x\GPT@space \Gscale@y\GPT@space scale neg exch neg exch
- translate}}%
- \def\Gscale@end{\special{ps: currentpoint currentpoint translate
- 1 \Gscale@x\GPT@space div 1 \Gscale@y\GPT@space div scale
- neg exch neg exch translate}}%
+ }
+ \def\Ginclude@bitmap#1{%
+ \dimen@\Gin@urx pt%
+ \advance\dimen@ by-\Gin@llx pt%
+ \edef\Gin@svg@view@width{\strip@pt\dimen@}%
+ \dimen@\Gin@ury pt%
+ \advance\dimen@ by-\Gin@lly pt%
+ \edef\Gin@svg@view@height{\strip@pt\dimen@}%
+ \dimen@\Gin@svg@real@height@bp pt%
+ \advance\dimen@ by-\Gin@ury pt%
+ \edef\Gin@svg@view@base{\strip@pt\dimen@}%
+ \Gin@req@width0.99626\Gin@req@width%
+ \Gin@req@height0.99626\Gin@req@height%
+ \special{dvisvgm:bbox \strip@pt\Gin@req@width bp\GPT@space\strip@pt\Gin@req@height bp}%
+ \raise\strip@pt\Gin@req@height bp\hbox{%
+ \special{dvisvgm: raw
+ <g transform="translate({?x},{?y})">
+ <svg overflow="\ifGin@clip hidden\else visible\fi" width="\strip@pt\Gin@req@width" height="\strip@pt\Gin@req@height"
+ viewBox="\Gin@llx\GPT@space\Gin@svg@view@base\GPT@space\Gin@svg@view@width\GPT@space\Gin@svg@view@height">
+ <image width="\Gin@svg@real@width@bp" height="\Gin@svg@real@height@bp"
+ xlink:href="#1"/>
+ </svg>
+ </g>}%
+ }%
+ }
+ \@namedef{Gin@rule@.svg}#1{{svg}{.svg}{#1}}
+ \let\Ginclude@svg\Ginclude@bitmap
+ \def\Gread@svg#1{%
+ \begingroup
+ \catcode`\"12\relax%
+ \immediate\openin\@inputcheck#1 %
+ \ifeof\@inputcheck
+ \@latex@error{File `#1' not found}\@ehc
+ \else
+ \let\Gin@urx\relax
+ \let\Gin@ury\relax
+ \Gread@true
+ \let\@tempb\Gread@false
+ \loop
+ \read\@inputcheck to\@tempa
+ \ifeof\@inputcheck
+ \Gread@false
+ \else
+ \ifx\@tempa\Gin@partext\else
+ \ifx\Gin@ury\relax\expandafter\Gread@svg@height\@tempa height=\relax\fi%
+ \ifx\Gin@urx\relax\expandafter\Gread@svg@width\@tempa width=\relax\fi%
+ \fi%
+ \fi
+ \ifx\Gin@urx\relax\else\ifx\Gin@ury\relax\else\Gread@false\fi\fi%
+ \ifGread@
+ \repeat
+ \immediate\closein\@inputcheck
+ \ifx\Gin@urx\relax
+ \@latex@error{Cannot determine width of graphic in #1 (no BoundingBox)}\@ehc
+ \def\Gin@urx{72}%
+ \fi
+ \ifx\Gin@ury\relax
+ \@latex@error{Cannot determine height of graphic in #1 (no BoundingBox)}\@ehc
+ \def\Gin@ury{72}%
+ \fi
+ \fi
+ \edef\Gin@setter{\def\noexpand\Gin@urx{\Gin@urx}\def\noexpand\Gin@ury{\Gin@ury}}%
+ \expandafter\endgroup\Gin@setter%
+ \def\Gin@llx{0}%
+ \def\Gin@lly{0}%
+ \edef\Gin@svg@real@width@bp{\Gin@urx}%
+ \edef\Gin@svg@real@height@bp{\Gin@ury}%
+ }
+ \def\Gin@partext{\par}
+ \def\Gread@svg@height#1height={\@ifnextchar\relax{}{\@ifnextchar'\Gread@svg@height@apo\Gread@svg@height@double}}
+ \def\Gread@svg@height@apo'#1'#2\relax{\afterassignment\Gin@gobble@till@relax\dimen@#1pt\relax\edef\Gin@ury{\strip@pt\dimen@}}
+ \def\Gread@svg@height@double"#1"#2\relax{\afterassignment\Gin@gobble@till@relax\dimen@#1pt\relax\edef\Gin@ury{\strip@pt\dimen@}}
+ \def\Gread@svg@width#1width={\@ifnextchar\relax{}{\@ifnextchar'\Gread@svg@width@apo\Gread@svg@width@double}}
+ \def\Gread@svg@width@apo'#1'#2\relax{\afterassignment\Gin@gobble@till@relax\dimen@#1pt\relax\edef\Gin@urx{\strip@pt\dimen@}}
+ \def\Gread@svg@width@double"#1"#2\relax{\afterassignment\Gin@gobble@till@relax\dimen@#1pt\relax\edef\Gin@urx{\strip@pt\dimen@}}
+ \def\Gin@gobble@till@relax#1\relax{}
+ \edef\Gin@hash@tag{\string#}
+ \def\Gin@clip@id{0}
+ \@namedef{Gin@rule@.jpg}#1{{bitmap}{.xbb}{#1}}
+ \@namedef{Gin@rule@.jpeg}#1{{bitmap}{.xbb}{#1}}
+ \@namedef{Gin@rule@.png}#1{{bitmap}{.xbb}{#1}}
+ \def\Gread@bitmap#1{%
+ \Gread@generic{#1}\Gread@extractbb@aux%
+ \dimen@\Gin@urx pt%
+ \advance\dimen@ by-\Gin@llx pt%
+ \edef\Gin@svg@real@width@bp{\strip@pt\dimen@}%
+ \dimen@\Gin@ury pt%
+ \advance\dimen@ by-\Gin@lly pt%
+ \edef\Gin@svg@real@height@bp{\strip@pt\dimen@}%
+ }
}
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\fi
\if@anim@export