texlive[51009] Master/texmf-dist: animate (9apr19)

commits+karl at tug.org commits+karl at tug.org
Sun May 5 20:06:50 CEST 2019


Revision: 51009
          http://tug.org/svn/texlive?view=revision&revision=51009
Author:   karl
Date:     2019-05-05 20:06:50 +0200 (Sun, 05 May 2019)
Log Message:
-----------
animate (9apr19)

Modified Paths:
--------------
    trunk/Master/texmf-dist/doc/latex/animate/ChangeLog
    trunk/Master/texmf-dist/doc/latex/animate/animate.pdf
    trunk/Master/texmf-dist/tex/latex/animate/animate.sty

Modified: trunk/Master/texmf-dist/doc/latex/animate/ChangeLog
===================================================================
--- trunk/Master/texmf-dist/doc/latex/animate/ChangeLog	2019-05-05 18:06:25 UTC (rev 51008)
+++ trunk/Master/texmf-dist/doc/latex/animate/ChangeLog	2019-05-05 18:06:50 UTC (rev 51009)
@@ -1,38 +1,41 @@
+2019-04-09
+	* fix: improved patching of `dvisvgm.def'
+
 2019-03-06
-	* change : jbig2 format support removed; dvisvgm-related code moved to
+	* change: jbig2 format support removed; dvisvgm-related code moved to
 	pdfbase.sty (media9)
 
 2019-01-23
-	* new : support for embedding PDF with `dvisvgm', multipage PDF support with
+	* new: support for embedding PDF with `dvisvgm', multipage PDF support with
 	`dvisvgm' and `dvipdfmx' driver
 
 2018-12-19
-	* fix : wrong scaling of repeatedly embedded external graphics; JS-related
+	* fix: wrong scaling of repeatedly embedded external graphics; JS-related
 	issue in case of side-by-side animations in one SVG
 
 2018-11-30
-	* fix : `setTimeout' JS method (used by timeline feature) differs bewteen
+	* fix: `setTimeout' JS method (used by timeline feature) differs bewteen
 	browsers and PDF viewers
 
 2018-11-29
-	* fix : SVG usability issues on touch (mobile) devices; documentation
+	* fix: SVG usability issues on touch (mobile) devices; documentation
 	updated
 
 2018-11-20
-	* fix : `autoplay' (non-functional in SVG output); documentation
+	* fix: `autoplay' (non-functional in SVG output); documentation
 	updated (additions in section on SVG)
 
 2018-11-19
-	* new : support for `dvisvgm' output driver
+	* new: support for `dvisvgm' output driver
 
 2018-08-22
-	* new : `export' package option
+	* new: `export' package option
 
 2018-06-27
-	* fix : documentation fixed (repository)
+	* fix: documentation fixed (repository)
 
 2018-06-07
-	* fix : adjustments after migration to GitLab
+	* fix: adjustments after migration to GitLab
 
 2018-02-28
 	* fix: test for XeTeX; test for eTeX removed

Modified: trunk/Master/texmf-dist/doc/latex/animate/animate.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/tex/latex/animate/animate.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/animate/animate.sty	2019-05-05 18:06:25 UTC (rev 51008)
+++ trunk/Master/texmf-dist/tex/latex/animate/animate.sty	2019-05-05 18:06:50 UTC (rev 51009)
@@ -13,7 +13,7 @@
 
 \NeedsTeXFormat{LaTeX2e}
 
-\def\@anim at version{2019/03/06}
+\def\@anim at version{2019/04/09}
 \ProvidesPackage{animate}
 [\@anim at version\space PDF & SVG animations from files and inline graphics]
 
@@ -146,37 +146,52 @@
 
 \if at anim@dvisvgm
   \setboolean{@anim at 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 at extensions{.eps,.pdf,\Gin at extensions}%
-    \def\Ginclude at pdf#1{\@anim at include@psorpdf{#1}{pdffile}}%
-    \def\Ginclude at eps#1{\let\Gin at page\@empty\@anim at include@psorpdf{#1}{PSfile}}%
-    \def\@anim at 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 at space{ }
+    \def\Gin at extensions{.svg,.eps,.png,.jpg,.jpeg}
+    \def\Ginclude at pdf#1{\Ginclude at psorpdf{#1}{pdffile}}
+    \def\Ginclude at eps#1{\let\Gin at page\@empty\Ginclude at psorpdf{#1}{PSfile}}
+    \def\Ginclude at psorpdf#1#2{%
+     \message{<#1>}%
+      \bgroup
       \def\@tempa{!}%
-      \dimen@\Gin at req@width%
+      \dimen@\Gin at req@width
       \dimen at ii.1bp%
-      \divide\dimen@\dimen at ii%
-      \@tempdima\Gin at req@height%
-      \divide\@tempdima\dimen at ii%
-        \special{#2="#1"\GPT at space%
-          \ifx\Gin at page\@empty\else page=\Gin at page\GPT at space\fi%
-          llx=\Gin at llx\GPT at space%
-          lly=\Gin at lly\GPT at space%
-          urx=\Gin at urx\GPT at space%
-          ury=\Gin at ury\GPT at space%
-          \ifx\Gin at scalex\@tempa\else rwi=\number\dimen@\GPT at space\fi%
-          \ifx\Gin at scaley\@tempa\else rhi=\number\@tempdima\GPT at space\fi%
-          \ifGin at clip clip\fi}%
-      \egroup}%
-    \@namedef{Gin at rule@.ps}#1{{eps}{.ps}{#1}}%
-    \@namedef{Gin at rule@.eps}#1{{eps}{.eps}{#1}}%
-    \@namedef{Gin at rule@.mps}#1{{eps}{.mps}{#1}}%
-    \@namedef{Gin at rule@.pdf}#1{{pdf}{.xbb}{#1}}%
-    % BoundingBox determination (from dvipdfmx.def)
+      \divide\dimen@\dimen at ii
+      \@tempdima\Gin at req@height
+      \divide\@tempdima\dimen at ii
+      \Gin at req@width0.99626\Gin at req@width%
+      \Gin at req@height0.99626\Gin at req@height%
+        \ifGin at clip\special{dvisvgm:raw
+          <g><clipPath id="GinClip\Gin at clip@id">%
+            <path d="M{?x},{?y}l\strip at pt\Gin at req@width,0l0,-\strip at pt\Gin at req@height
+              l-\strip at pt\Gin at req@width,0Z"/>%
+          </clipPath>%
+          <g clip-path="url(\Gin at hash@tag GinClip\Gin at clip@id)">}%
+        \fi%
+        \special{#2="#1"\GPT at space
+          \ifx\Gin at page\@empty\else page=\Gin at page\GPT at space\fi
+          llx=\Gin at llx\GPT at space
+          lly=\Gin at lly\GPT at space
+          urx=\Gin at urx\GPT at space
+          ury=\Gin at ury\GPT at space
+          \ifx\Gin at scalex\@tempa\else rwi=\number\dimen@\GPT at space\fi
+          \ifx\Gin at scaley\@tempa\else rhi=\number\@tempdima\GPT at space\fi
+        }%
+        \ifGin at clip%
+          \special{dvisvgm:raw </g></g>}%
+          \begingroup%
+            \count@\Gin at clip@id\advance\count@ by\@ne\xdef\Gin at clip@id{\the\count@}%
+          \endgroup%
+        \fi%
+      \egroup}
+    \@namedef{Gin at rule@.ps}#1{{eps}{.ps}{#1}}
+    \@namedef{Gin at rule@.eps}#1{{eps}{.eps}{#1}}
+    \@namedef{Gin at rule@.mps}#1{{eps}{.mps}{#1}}
+    \@namedef{Gin at rule@.pdf}#1{{pdf}{.xbb}{#1}}
     \def\Gread at pdf#1{%
       \Gread at generic{#1}\Gread at extractbb@aux%
     }%
@@ -192,9 +207,13 @@
       \let\@tempb\Gread at false%
       \ifeof\@inputcheck%
         \@latex at 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 at page\@empty\else -p \Gin at page\GPT at space\fi
+             \ifx\Gin at pagebox\@empty\else -B \Gin at pagebox\GPT at space\fi
+             \Gin at base\Gin at 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 at start{%
-      \special{ps: gsave currentpoint
-        currentpoint translate \Grot at angle\GPT at space neg
-        rotate neg exch neg exch translate}}%
-    \def\Grot at end{\special{ps: currentpoint grestore moveto}}%
-    \def\Gscale at start{\special{ps:  currentpoint currentpoint translate
-      \Gscale at x\GPT at space \Gscale at y\GPT at space scale neg exch neg exch
-      translate}}%
-    \def\Gscale at end{\special{ps:  currentpoint currentpoint translate
-      1 \Gscale at x\GPT at space div 1 \Gscale at y\GPT at space div scale
-      neg exch neg exch translate}}%
+    }
+    \def\Ginclude at bitmap#1{%
+      \dimen@\Gin at urx pt%
+      \advance\dimen@ by-\Gin at llx pt%
+      \edef\Gin at svg@view at width{\strip at pt\dimen@}%
+      \dimen@\Gin at ury pt%
+      \advance\dimen@ by-\Gin at lly pt%
+      \edef\Gin at svg@view at height{\strip at pt\dimen@}%
+      \dimen@\Gin at svg@real at height@bp pt%
+      \advance\dimen@ by-\Gin at ury pt%
+      \edef\Gin at svg@view at base{\strip at pt\dimen@}%
+      \Gin at req@width0.99626\Gin at req@width%
+      \Gin at req@height0.99626\Gin at req@height%
+      \special{dvisvgm:bbox \strip at pt\Gin at req@width bp\GPT at space\strip at pt\Gin at req@height bp}%
+      \raise\strip at pt\Gin at req@height bp\hbox{%
+        \special{dvisvgm: raw
+          <g transform="translate({?x},{?y})">
+            <svg overflow="\ifGin at clip hidden\else visible\fi" width="\strip at pt\Gin at req@width" height="\strip at pt\Gin at req@height"
+                 viewBox="\Gin at llx\GPT at space\Gin at svg@view at base\GPT at space\Gin at svg@view at width\GPT at space\Gin at svg@view at height">
+              <image width="\Gin at svg@real at width@bp" height="\Gin at svg@real at height@bp" 
+                     xlink:href="#1"/>
+            </svg>
+          </g>}%
+      }%
+    }
+    \@namedef{Gin at rule@.svg}#1{{svg}{.svg}{#1}}
+    \let\Ginclude at svg\Ginclude at bitmap
+    \def\Gread at svg#1{%
+      \begingroup
+      \catcode`\"12\relax%
+      \immediate\openin\@inputcheck#1 %
+      \ifeof\@inputcheck
+        \@latex at error{File `#1' not found}\@ehc
+      \else
+         \let\Gin at urx\relax
+         \let\Gin at ury\relax
+         \Gread at true
+         \let\@tempb\Gread at false
+         \loop
+           \read\@inputcheck to\@tempa
+           \ifeof\@inputcheck
+             \Gread at false
+           \else
+             \ifx\@tempa\Gin at partext\else
+               \ifx\Gin at ury\relax\expandafter\Gread at svg@height\@tempa height=\relax\fi%
+               \ifx\Gin at urx\relax\expandafter\Gread at svg@width\@tempa width=\relax\fi%
+             \fi%
+           \fi
+           \ifx\Gin at urx\relax\else\ifx\Gin at ury\relax\else\Gread at false\fi\fi%
+         \ifGread@
+         \repeat
+         \immediate\closein\@inputcheck
+         \ifx\Gin at urx\relax
+           \@latex at error{Cannot determine width of graphic in #1 (no BoundingBox)}\@ehc
+           \def\Gin at urx{72}%
+         \fi
+         \ifx\Gin at ury\relax
+           \@latex at error{Cannot determine height of graphic in #1 (no BoundingBox)}\@ehc
+           \def\Gin at ury{72}%
+         \fi
+      \fi
+      \edef\Gin at setter{\def\noexpand\Gin at urx{\Gin at urx}\def\noexpand\Gin at ury{\Gin at ury}}%
+      \expandafter\endgroup\Gin at setter%
+      \def\Gin at llx{0}% 
+      \def\Gin at lly{0}%
+      \edef\Gin at svg@real at width@bp{\Gin at urx}%
+      \edef\Gin at svg@real at height@bp{\Gin at ury}%  
+    }
+    \def\Gin at partext{\par}
+    \def\Gread at svg@height#1height={\@ifnextchar\relax{}{\@ifnextchar'\Gread at svg@height at apo\Gread at svg@height at double}}
+    \def\Gread at svg@height at apo'#1'#2\relax{\afterassignment\Gin at gobble@till at relax\dimen@#1pt\relax\edef\Gin at ury{\strip at pt\dimen@}}
+    \def\Gread at svg@height at double"#1"#2\relax{\afterassignment\Gin at gobble@till at relax\dimen@#1pt\relax\edef\Gin at ury{\strip at pt\dimen@}}
+    \def\Gread at svg@width#1width={\@ifnextchar\relax{}{\@ifnextchar'\Gread at svg@width at apo\Gread at svg@width at double}}
+    \def\Gread at svg@width at apo'#1'#2\relax{\afterassignment\Gin at gobble@till at relax\dimen@#1pt\relax\edef\Gin at urx{\strip at pt\dimen@}}
+    \def\Gread at svg@width at double"#1"#2\relax{\afterassignment\Gin at gobble@till at relax\dimen@#1pt\relax\edef\Gin at urx{\strip at pt\dimen@}}
+    \def\Gin at gobble@till at relax#1\relax{}
+    \edef\Gin at hash@tag{\string#}
+    \def\Gin at clip@id{0}
+    \@namedef{Gin at rule@.jpg}#1{{bitmap}{.xbb}{#1}}
+    \@namedef{Gin at rule@.jpeg}#1{{bitmap}{.xbb}{#1}}
+    \@namedef{Gin at rule@.png}#1{{bitmap}{.xbb}{#1}}
+    \def\Gread at bitmap#1{%
+      \Gread at generic{#1}\Gread at extractbb@aux%
+      \dimen@\Gin at urx pt%
+      \advance\dimen@ by-\Gin at llx pt%
+      \edef\Gin at svg@real at width@bp{\strip at pt\dimen@}%
+      \dimen@\Gin at ury pt%
+      \advance\dimen@ by-\Gin at lly pt%
+      \edef\Gin at svg@real at height@bp{\strip at pt\dimen@}%
+    }
   }
+  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \fi
 
 \if at anim@export



More information about the tex-live-commits mailing list