% Copyright 2019 by Till Tantau % % This file may be distributed and/or modified % % 1. under the LaTeX Project Public License and/or % 2. under the GNU Public License. % % See the file doc/generic/pgf/licenses/LICENSE for more details. \ProvidesFileRCS{pgfsys-dvisvgm.def} % Driver commands for dvisvgm % % Load common pdf commands: % \input pgfsys-common-svg.def \newif\ifpgf@sys@svg@inpicture \def\pgf@sys@svg@make@defs#1#2{{\let\#\pgf@sys@svg@hash\special{dvisvgm:rawset #1}\special{dvisvgm:rawdef #2}\special{dvisvgm:endrawset}}} \def\pgf@sys@svg@ref@defs#1{\special{dvisvgm:rawput #1}} \def\pgfsys@invoke#1{{\let\#\pgf@sys@svg@hash\special{dvisvgm:raw #1}}} \def\pgfsys@beginpicture{% \special{color push gray 0}% make dvisvgm *not* add anything to text \pgf@sys@svg@inpicturetrue% in a picture \pgfsys@svg@boxmodefalse% \pgfsys@invoke{}} \def\pgfsys@endpicture{\pgfsys@invoke{}\special{color pop}} \def\pgfsys@svg@newline{{?nl}} \let\pgf@sys@svg@last@stroke\relax% \def\pgfsys@hbox#1{% {% \setbox#1=\hbox{\box#1}% \wd#1=0pt% \ht#1=0pt% \dp#1=0pt% \pgfsys@begin@idscope% \pgfsys@invoke{}\box#1\pgfsys@invoke{}% \pgfsys@end@idscope% }% } \def\pgfsys@hboxsynced#1{% {% \setbox#1=\hbox{\box#1}% \wd#1=0pt% \ht#1=0pt% \dp#1=0pt% \pgfsys@begin@idscope% \pgfsys@beginscope% \pgflowlevelsynccm% \pgfsys@invoke{}\box#1\pgfsys@invoke{}% \pgfsys@endscope% \pgfsys@end@idscope% }% } \def\pgfsys@shadingoutsidepgfpicture#1{% \begingroup% #1% \setbox\pgfpic=\hbox to0pt{% \pgfsys@beginpicture% \pgfsys@beginscope% \pgf@sys@svg@sh@defs% \pgf@sys@svg@sh% \pgfsys@endscope% \pgfsys@endpicture% \hss% }% \pgf@process{\pgf@sys@svg@pos}% \pgf@picminx=0pt% \pgf@picminy=0pt% \pgf@picmaxx=\pgf@x% \pgf@picmaxy=\pgf@y% \def\pgf@trimleft@final{0pt}% \def\pgf@trimright@final{0pt}% \def\pgf@shift@baseline{0pt}% \pgfsys@typesetpicturebox\pgfpic% \endgroup% } \def\pgfsys@shadinginsidepgfpicture#1{% #1% \pgf@sys@svg@sh@defs% hmmm.... \pgf@process{\pgf@sys@svg@pos} \pgf@xa=-.5\pgf@x% \pgf@ya=-.5\pgf@y% \pgfsysprotocol@literal{}% \pgf@sys@svg@sh% \pgfsysprotocol@literal{}% } \def\pgfsys@papersize#1#2{% {% \pgf@x#1\relax% \pgf@y#2\relax% \pgf@xa-1in\relax% \special{dvisvgm:bbox fix \pgf@sys@tonumber\pgf@xa\space \pgf@sys@tonumber\pgf@xa\space \pgf@sys@tonumber\pgf@x\space \pgf@sys@tonumber\pgf@y}% }% } \def\pgfsys@prepare@papersize#1#2{% \expandafter\gdef\expandafter\pgfsys@atbegindocument\expandafter{\pgfsys@atbegindocument\pgfsys@papersize{#1}{#2}}% } \def\pgfsys@typesetpicturebox#1{% \pgf@ya=\pgf@shift@baseline\relax% \advance\pgf@ya by-\pgf@picminy\relax% % % \advance\pgf@picmaxy by-\pgf@picminy\relax% maxy is now the height \advance\pgf@picmaxx by-\pgf@picminx\relax% maxx is now the width \setbox#1=\hbox{\hskip-\pgf@picminx\lower\pgf@picminy\box#1}% \ht#1=\pgf@picmaxy% \wd#1=\pgf@picmaxx% \dp#1=0pt% \leavevmode% \pgf@xa=\pgf@trimleft@final\relax \ifdim\pgf@xa=0pt \else\kern\pgf@xa\fi% \raise-\pgf@ya\hbox{\ifpgf@sys@svg@inpicture\else\special{dvisvgm:bbox \pgf@sys@tonumber\pgf@picmaxx\space\pgf@sys@tonumber\pgf@picmaxy}\fi\box#1}% \pgf@xa=\pgf@trimright@final\relax \ifdim\pgf@xa=0pt \else\kern\pgf@xa\fi% } \def\pgfsys@text@to@black@hook{% \let\pgfsys@svg@set@color@orig\set@color% \let\pgfsys@svg@reset@color@orig\reset@color% \def\set@color{\special{dvisvgm:raw }\pgfsys@svg@set@color@orig}% \def\reset@color{\special{dvisvgm:raw }\pgfsys@svg@reset@color@orig}% } % Fadings % FIXME: Correct sizes! % % Opacity masks % % \def\pgfsys@fadingfrombox#1#2{% % \setbox#2=\hbox{% % \pgfsys@invoke{}% % \box#2% % \pgfsys@invoke{}% % }% % \wd#2=0pt% % \ht#2=0pt% % \dp#2=0pt% % \unskip\box#2% % } % \def\pgfsys@usefading#1#2#3#4#5#6#7{% % \pgf@sys@svg@gs@color{mask="url(\#pgfmask#1)"}% % } % % Position tracking (needs pdftex or luatex in dvi mode) % \ifx\savepos\@undefined \ifx\pdfsavepos\@undefined \else \let\pgf@savepos\pdfsavepos \let\pgf@lastxpos\pdflastxpos \let\pgf@lastypos\pdflastypos \fi \else \let\pgf@savepos\savepos \let\pgf@lastxpos\lastxpos \let\pgf@lastypos\lastypos \fi \ifx\pgf@savepos\@undefined \else \def\pgfsys@markposition#1{% \pgf@savepos% \edef\pgf@temp{#1}% \expandafter\pgfutil@writetoaux\expandafter{% \expandafter\noexpand\expandafter\pgfsyspdfmark\expandafter{\pgf@temp}{\the\pgf@lastxpos}{\the\pgf@lastypos}}% } \def\pgfsyspdfmark#1#2#3{% \expandafter\gdef\csname pgf@sys@pdf@mark@pos@#1\endcsname{\pgfqpoint{#2sp}{#3sp}}% \pgfutil@check@rerun{#1}{{#2}{#3}}% } \def\pgfsys@getposition#1#2{% \edef\pgf@marshal{\let\noexpand#2=\expandafter\noexpand\csname pgf@sys@pdf@mark@pos@#1\endcsname}% \pgf@marshal% } \def\pgf@sys@pdf@mark@pos@pgfpageorigin{\pgfpointorigin} \fi \endinput %%% Local Variables: %%% mode: latex %%% End: