summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/generic/pgf/systemlayer/pgfsys-dvips.def
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/tex/generic/pgf/systemlayer/pgfsys-dvips.def')
-rw-r--r--Master/texmf-dist/tex/generic/pgf/systemlayer/pgfsys-dvips.def244
1 files changed, 244 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/generic/pgf/systemlayer/pgfsys-dvips.def b/Master/texmf-dist/tex/generic/pgf/systemlayer/pgfsys-dvips.def
new file mode 100644
index 00000000000..e6ef83b5ade
--- /dev/null
+++ b/Master/texmf-dist/tex/generic/pgf/systemlayer/pgfsys-dvips.def
@@ -0,0 +1,244 @@
+\ProvidesFileRCS $Header: /cvsroot/pgf/pgf/generic/pgf/systemlayer/pgfsys-dvips.def,v 1.9 2005/10/18 18:03:38 tantau Exp $
+
+% Copyright 2005 by Till Tantau <tantau@cs.tu-berlin.de>.
+%
+% This program can be redistributed and/or modified under the terms
+% of the GNU Public License, version 2.
+
+
+
+
+% Driver commands for dvips
+
+%
+% Load common postscript commands:
+%
+\input pgfsys-common-postscript.def
+
+
+%
+% dvips-specific stuff:
+%
+\def\pgfsys@invoke#1{\special{ps:: #1}}
+\def\pgfsys@outerinvoke#1{\special{ps: #1}}
+
+\def\pgfsys@beginpicture{\special{ps: }\special{ps::[begin]}\pgfsys@invoke{pgfo}}
+\def\pgfsys@endpicture{\pgfsys@invoke{pgfc}\special{ps::[end]}}
+\def\pgfsys@hbox#1{%
+ \pgfsys@invoke{pgfs}%
+ \special{ps::[end]}%
+ \wd#1=0pt%
+ \ht#1=0pt%
+ \dp#1=0pt%
+ \box#1
+ \special{ps::[begin]}%
+ \pgfsys@invoke{pgfr}%
+}
+\def\pgfsys@begininvisible{%
+ \special{ps::[begin]}%
+ \pgfsys@invoke{gsave nulldevice}%
+ \special{ps::[end]}}
+\def\pgfsys@endinvisible{%
+ \special{ps::[begin]}%
+ \pgfsys@invoke{grestore}%
+ \special{ps::[end]}%
+}
+\def\pgfsys@color@unstacked#1{\special{ps: \XC@usecolor{#1}}}
+\newcount\pgf@objectcount
+\def\pgfsys@defobject#1#2#3#4{%
+ \global\advance\pgf@objectcount by 1
+ \expandafter\xdef\csname#1\endcsname{\the\pgf@objectcount}
+ \pgfsysprotocol@getcurrentprotocol\pgfsys@temp%
+ {%
+ \pgfsysprotocol@setcurrentprotocol\@empty%
+ \pgfsysprotocol@bufferedtrue%
+ #4%
+ \pgfsysprotocol@getcurrentprotocol\pgfsys@@temp%
+ \special{! /pgf\csname#1\endcsname{gsave exec \pgfsys@@temp\space grestore} bind def}%
+ }%
+ \pgfsysprotocol@setcurrentprotocol\pgfsys@temp%
+}
+\def\pgfsys@useobject#1#2{%
+ \pgfsysprotocol@getcurrentprotocol\pgfsys@temp%
+ {%
+ \pgfsysprotocol@setcurrentprotocol\@empty%
+ \pgfsysprotocol@bufferedfalse%
+ #2%
+ \pgfsysprotocol@invokecurrentprotocol%
+ \pgfsys@invoke{pgf\csname#1\endcsname}%
+ }%
+ \pgfsysprotocol@setcurrentprotocol\pgfsys@temp}
+\def\pgfsys@imagesuffixlist{epsi:eps:ps}
+\def\pgfsys@horishading#1#2#3{%
+ {%
+ \pgf@parsefunc{#3}%
+ \setlength\pgf@x{#2}%
+ \pgf@xa=\pgf@x%
+ \pgf@sys@bp@correct{\pgf@x}%
+ \pgf@y=\pgf@max%
+ \pgf@sys@bp@correct{\pgf@y}%
+ \expandafter\xdef\csname @pgfshading#1!\endcsname{\hbox to \the\pgf@max{%
+ \noexpand\vrule width0pt height\the\pgf@xa%
+ \noexpand\pgfsys@beginpurepicture%
+ \noexpand\pgfsys@rect{0pt}{0pt}{\the\pgf@y}{\the\pgf@x}%
+ \noexpand\pgfsys@clipnext%
+ \noexpand\pgfsys@discardpath%
+ \noexpand\pgfsys@invoke{\pgf@domb\space \pgf@sys@tonumber{\pgf@x} pgfH \pgf@psfuncs\space pop}%
+ \hss%
+ \noexpand\pgfsys@endpurepicture}}%
+ }%
+}
+\def\pgfsys@vertshading#1#2#3{%
+ {%
+ \pgf@parsefunc{#3}%
+ \setlength\pgf@x{#2}%
+ \pgf@xa=\pgf@x%
+ \pgf@sys@bp@correct{\pgf@x}%
+ \pgf@y=\pgf@max%
+ \pgf@sys@bp@correct{\pgf@y}%
+ \expandafter\xdef\csname @pgfshading#1!\endcsname{\hbox to\the\pgf@xa{%
+ \noexpand\vrule width0pt height\the\pgf@max%
+ \noexpand\pgfsys@beginpurepicture%
+ \noexpand\pgfsys@rect{0pt}{0pt}{\the\pgf@x}{\the\pgf@y}%
+ \noexpand\pgfsys@clipnext%
+ \noexpand\pgfsys@discardpath%
+ \noexpand\pgfsys@invoke{\pgf@domb\space \pgf@sys@tonumber{\pgf@x} pgfV \pgf@psfuncs\space pop}%
+ \hss%
+ \noexpand\pgfsys@endpurepicture}}%
+ }%
+}
+\def\pgfsys@radialshading#1#2#3{%
+ {%
+ \pgf@parsefunc{#3}%
+ \pgf@process{#2}%
+ \pgf@xa=2\pgf@max%
+ \pgf@sys@bp@correct{\pgf@max}%
+ \advance\pgf@x by \pgf@max%
+ \advance\pgf@y by \pgf@max%
+ \expandafter\xdef\csname @pgfshading#1!\endcsname{\hbox to \the\pgf@xa{%
+ \noexpand\vrule width0pt height\the\pgf@xa%
+ \noexpand\pgfsys@beginpurepicture%
+ \noexpand\pgfsys@invoke{%
+ \pgf@domb\space \pgf@sys@tonumber{\pgf@y} \pgf@sys@tonumber{\pgf@x} \pgf@sys@tonumber{\pgf@max} pgfR1
+ \pgf@psfuncs\space \pgf@firstcolor\space \pgf@doma\space pgfR2}%
+ \hss%
+ \noexpand\pgfsys@endpurepicture}}%
+ }%
+}
+
+\AtBeginDocument{
+ % Always present specials.
+ \special{!
+ /pgfsc{}B% stroke color is empty by default
+ /pgffc{}B% fill color is empty by default
+ /pgfstr{stroke}B%
+ /pgffill{fill}B%
+ /pgfeofill{eofill}B%
+ /pgfe{a dup 0 rlineto exch 0 exch rlineto neg 0 rlineto closepath}B% rectangle
+ /pgfw{setlinewidth}B% setlinewidth
+ /pgfs{save pgfpd 72 Resolution div 72 VResolution div neg scale
+ magscale{1 DVImag div dup scale}if
+ pgfx neg pgfy neg translate pgffoa .setopacityalpha}B% save
+ /pgfr{pgfsd restore}B %restore
+ userdict begin%
+ /pgfo{pgfsd /pgfx currentpoint /pgfy exch def def @beginspecial}B %open
+ /pgfc{newpath @endspecial pgfpd}B %close
+ /pgfsd{globaldict /pgfdelta /delta where {pop delta} {0} ifelse put}B% save delta
+ /pgfpd{/delta globaldict /pgfdelta get def}B % put delta
+ /.setopacityalpha where {pop} {/.setopacityalpha{pop}def} ifelse % install .setopacityalpha
+ /.pgfsetfillopacityalpha{/pgffoa exch def
+ /pgffill{gsave pgffoa .setopacityalpha fill 1 .setopacityalpha newpath fill grestore}B
+ /pgfeofill{gsave pgffoa .setopacityalpha eofill1 .setopacityalpha newpath eofill grestore}B}B
+ /.pgfsetstrokeopacityalpha{/pgfsoa exch def
+ /pgfstr{gsave pgfsoa .setopacityalpha stroke grestore}B}B
+ /pgffoa 1 def
+ /pgfsoa 1 def
+ end
+ }
+
+ % Parameters to horizontal pre axishade: \pgf@domb x
+ \special{! /pgfH{%
+ /pgfheight exch def 0.75 setlinewidth [] 0 setdash
+ /pgfshade {pgfA} def /pgfdir { dup 0 moveto
+ dup 5 index lineto } bind def} B}%
+
+ % Parameters to vertical pre axishade: \pgf@domb x
+ \special{! /pgfV{%
+ /pgfheight exch def 0.75 setlinewidth [] 0 setdash
+ /pgfshade {pgfA} def /pgfdir { dup 0 exch moveto dup 5 index
+ exch lineto } bind def} B}%
+
+ % Parameters to axishade: end x, start x, r-, g-, b- of first color, r-, g-, b- of second color
+ % Stack afterwards: end x
+ \special{! /pgfA{
+ /pgfdiff 8 index round cvi 8 index round cvi sub 2 mul 1 add def
+ 2 index 6 index sub pgfdiff div % put red-step on stack
+ 2 index 6 index sub pgfdiff div % put green-step on stack
+ 2 index 6 index sub pgfdiff div % put green-step on stack
+ pgfheight 9 index 9 index 9 index 14 index
+ pgfdiff {
+ 3 index 3 index 3 index setrgbcolor % Set color
+ pgfdir
+ stroke
+ 4 -1 roll 7 index add % red += incred
+ 4 -1 roll 6 index add % green += incgreen
+ 4 -1 roll 5 index add % blue += incblue
+ 4 -1 roll .5 sub % x += 0.5
+ } repeat
+ mark 15 1 roll cleartomark exch pop % leave only start x on stack
+ }B }
+
+ % Parameters to radialshade pre: \pgf@domb y x max
+ \special{! /pgfR1{
+ newpath dup dup dup 0 360 arc clip newpath
+ dup /pgfendx exch def
+ /pgfendy exch def
+ 0.875 setlinewidth
+ [] 0 setdash
+ /pgfshade {pgfR} def
+ /pgfstartx exch def
+ /pgfstarty exch def
+ /pgfdiffx pgfendx pgfstartx sub def
+ /pgfdiffy pgfendy pgfstarty sub def
+ dup /pgfdomb exch def
+ }B }
+
+ % Parameters to radialshade post: \pgf@firstcolor \pgf@doma
+ \special{! /pgfR2{
+ newpath 0.5 add pgfcircx pgfcircy 3 2 roll 0 360 arc
+ setrgbcolor fill pop}B }%
+
+ % Parameters to radialshade: end x, start x, r-, g-, b- of first color, r-, g-, b- of second color
+ % Stack afterwards: end x
+ \special{! /pgfR{
+ /pgfdiff 8 index round cvi 8 index round cvi sub 4 mul 1 add def
+ /pgfcircx pgfstartx 9 index pgfdiffx pgfdomb div mul add def
+ /pgfcircy pgfstarty 9 index pgfdiffy pgfdomb div mul add def
+ /pgfcircxe pgfstartx 8 index pgfdiffx pgfdomb div mul add def
+ /pgfcircye pgfstarty 8 index pgfdiffy pgfdomb div mul add def
+ /pgfxstep pgfcircxe pgfcircx sub pgfdiff div def
+ /pgfystep pgfcircye pgfcircy sub pgfdiff div def
+ 2 index 6 index sub pgfdiff div % put red-step on stack
+ 2 index 6 index sub pgfdiff div % put green-step on stack
+ 2 index 6 index sub pgfdiff div % put green-step on stack
+ 8 index 8 index 8 index 13 index
+ pgfdiff {
+ 3 index 3 index 3 index setrgbcolor % Set color
+ pgfcircx pgfcircy 2 index 0 360 arc closepath
+ stroke
+ 4 -1 roll 6 index add % red += incred
+ 4 -1 roll 5 index add % green += incgreen
+ 4 -1 roll 4 index add % blue += incblue
+ 4 -1 roll .25 sub % x += 0.25
+ /pgfcircx pgfcircx pgfxstep add def
+ /pgfcircy pgfcircy pgfystep add def
+ } repeat
+ mark 14 1 roll cleartomark exch pop % leave only start x on stack
+ }B}
+}
+
+\endinput
+
+%%% Local Variables:
+%%% mode: latex
+%%% End: