diff options
Diffstat (limited to 'Master/texmf-dist/tex/latex/graphics-def/dvisvgm.def')
-rw-r--r-- | Master/texmf-dist/tex/latex/graphics-def/dvisvgm.def | 173 |
1 files changed, 173 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/latex/graphics-def/dvisvgm.def b/Master/texmf-dist/tex/latex/graphics-def/dvisvgm.def new file mode 100644 index 00000000000..777bb855448 --- /dev/null +++ b/Master/texmf-dist/tex/latex/graphics-def/dvisvgm.def @@ -0,0 +1,173 @@ +% Copyright 2015 by Till Tantau +% Copyright 2016 by Till Tantau and LaTeX3 Project +% +%% This work may be distributed and/or modified under the +%% conditions of the LaTeX Project Public License, either version 1.3c +%% of this license or (at your option) any later version. +%% The latest version of this license is in +%% http://www.latex-project.org/lppl.txt +%% and version 1.3c or later is part of all distributions of LaTeX +%% version 2005/12/01 or later. +%% +%% This work has the LPPL maintenance status `maintained'. +%% +%% The Current Maintainer of this work is the LaTeX3 Project. +%% +%% https://github.com/latex3/graphics-def/issues +% +\ProvidesFile{dvisvgm.def}[2016/05/09 v1.0a dvisvgm graphics driver for latex] +% The following is copied from dvips.def: +\def\c@lor@arg#1{% + \dimen@#1\p@ + \ifdim\dimen@<\z@\dimen@\maxdimen\fi + \ifdim\dimen@>\p@ + \PackageError{color}{Argument `#1' not in range [0,1]}\@ehd + \fi} +\def\color@gray#1#2{% + \c@lor@arg{#2}% + \edef#1{gray #2}% + } +\def\color@cmyk#1#2{\c@lor@@cmyk#2\@@#1} +\def\c@lor@@cmyk#1,#2,#3,#4\@@#5{% + \c@lor@arg{#4}% + \c@lor@arg{#1}% + \c@lor@arg{#2}% + \c@lor@arg{#3}% + \edef#5{cmyk #1 #2 #3 #4}% + } +\def\color@rgb#1#2{\c@lor@@rgb#2\@@#1} +\def\c@lor@@rgb#1,#2,#3\@@#4{% + \c@lor@arg{#1}% + \c@lor@arg{#2}% + \c@lor@arg{#3}% + \edef#4{rgb #1 #2 #3}% + } +\def\color@RGB#1#2{\c@lor@@RGB#2\@@#1} +\def\c@lor@@RGB#1,#2,#3\@@#4{% + \c@lor@RGB@rgb{#1}\@tempa + \c@lor@RGB@rgb{#2}\@tempb + \c@lor@RGB@rgb{#3}\@tempc + \c@lor@@rgb\@tempa,\@tempb,\@tempc\@@#4% + } +\def\c@lor@RGB@rgb#1#2{% + \dimen@#1\p@ + \divide\dimen@\@cclv + \edef#2{\strip@pt\dimen@}} +\def\color@hsb#1#2{\c@lor@@hsb#2\@@#1} +\def\c@lor@@hsb#1,#2,#3\@@#4{% + \c@lor@arg{#1}% + \c@lor@arg{#2}% + \c@lor@arg{#3}% + \edef#4{hsb #1 #2 #3}% + } +\def\color@named#1#2{\c@lor@@named#2,,\@@#1} +\def\c@lor@@named#1,#2,#3\@@#4{% + \@ifundefined{col@#1}% + {\PackageError{color}{Undefined color `#1'}\@ehd}% + {\edef#4{ #1}}% + } +\def\current@color{ Black} +\def\set@color{\special{color push \current@color}\aftergroup\reset@color} +\def\reset@color{\special{color pop}} +\def\set@page@color{\special{bgcolor \current@color}} +\def\define@color@named#1#2{\expandafter\let\csname col@#1\endcsname\@nnil} +\def\Grot@start{\special{dvisvgm:raw <g transform="translate({?x},{?y})scale(1,-1)rotate(\Grot@angle)scale(-1,1)translate({?x},{?y})scale(-1)">}} +\def\Grot@end{\special{dvisvgm:raw </g>}} +\def\Gscale@start{\special{dvisvgm:raw <g transform="translate({?x},{?y})scale(\Gscale@x,\Gscale@y)scale(-1)translate({?x},{?y})scale(-1)">}} +\def\Gscale@end{\special{dvisvgm:raw </g>}} +\def\Gin@extensions{.png,.jpg,.jpeg,.svg} +\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@}% +% \kern-\Gin@llx bp% + \raise\Gin@req@height\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\space\Gin@svg@view@base\space\Gin@svg@view@width\space\Gin@svg@view@height"> + <image width="\Gin@svg@real@width@bp" height="\Gin@svg@real@height@bp" + xlink:href="#1"/> + </svg> + </g>}% +% \special{dvisvgm: img \strip@pt\Gin@req@width\space \strip@pt\Gin@req@height\space #1} + }% +} + +\@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\dimen@0.99626\dimen@\edef\Gin@ury{\strip@pt\dimen@}} +\def\Gread@svg@height@double"#1"#2\relax{\afterassignment\Gin@gobble@till@relax\dimen@#1pt\relax\dimen@0.99626\dimen@\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\dimen@0.99626\dimen@\edef\Gin@urx{\strip@pt\dimen@}} +\def\Gread@svg@width@double"#1"#2\relax{\afterassignment\Gin@gobble@till@relax\dimen@#1pt\relax\dimen@0.99626\dimen@\edef\Gin@urx{\strip@pt\dimen@}} +\def\Gin@gobble@till@relax#1\relax{} + +\@namedef{Gin@rule@.jpg}#1{{bitmap}{.xbb}{#1}} +\@namedef{Gin@rule@.jpeg}#1{{bitmap}{.xbb}{#1}} +\@namedef{Gin@rule@.png}#1{{bitmap}{.xbb}{#1}} + +% Replace +\def\Gread@bitmap#1{% + \Gread@eps{#1}% + \dimen@\Gin@urx bp% + \advance\dimen@ by-\Gin@llx bp% + \edef\Gin@svg@real@width@bp{\strip@pt\dimen@}% + \dimen@\Gin@ury bp% + \advance\dimen@ by-\Gin@lly bp% + \edef\Gin@svg@real@height@bp{\strip@pt\dimen@}% +} + +\endinput +%% +%% End of file `dvisvgm.def'. + |