summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/generic/pgf/systemlayer/pgfsys-common-postscript.def
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/tex/generic/pgf/systemlayer/pgfsys-common-postscript.def')
-rw-r--r--Master/texmf-dist/tex/generic/pgf/systemlayer/pgfsys-common-postscript.def211
1 files changed, 184 insertions, 27 deletions
diff --git a/Master/texmf-dist/tex/generic/pgf/systemlayer/pgfsys-common-postscript.def b/Master/texmf-dist/tex/generic/pgf/systemlayer/pgfsys-common-postscript.def
index 0f8ce5d0157..775878dddaf 100644
--- a/Master/texmf-dist/tex/generic/pgf/systemlayer/pgfsys-common-postscript.def
+++ b/Master/texmf-dist/tex/generic/pgf/systemlayer/pgfsys-common-postscript.def
@@ -1,4 +1,5 @@
% Copyright 2006 by Till Tantau
+% CMYK and grayscale shadings adaptation copyright 2019 by David Purton
%
% This file may be distributed and/or modified
%
@@ -191,16 +192,17 @@
\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{%
+ \xdef\pgfutil@tempa{\hbox to \the\pgf@max{%
\noexpand\vrule width0pt height\the\pgf@xa%
\noexpand\pgfsys@beginpurepicture%
\noexpand\pgfsys@rect{0pt}{0pt}{\the\pgf@max}{\the\pgf@xa}%
\noexpand\pgfsys@clipnext%
\noexpand\pgfsys@discardpath%
- \noexpand\pgfsys@invoke{\pgf@domb\space \pgf@sys@tonumber{\pgf@x} pgfH \pgf@psfuncs\space pop}%
+ \noexpand\pgfsys@invoke{\pgf@domb\space \pgf@sys@tonumber{\pgf@x} pgfH\pgf@shading@model\space \pgf@psfuncs\space pop}%
\hss%
\noexpand\pgfsys@endpurepicture}}%
}%
+ \global\expandafter\let\csname @pgfshading#1!\endcsname=\pgfutil@tempa
}
\def\pgfsys@vertshading#1#2#3{%
{%
@@ -210,16 +212,17 @@
\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{%
+ \xdef\pgfutil@tempa{\hbox to \the\pgf@xa{%
\noexpand\vrule width0pt height\the\pgf@max%
\noexpand\pgfsys@beginpurepicture%
\noexpand\pgfsys@rect{0pt}{0pt}{\the\pgf@xa}{\the\pgf@max}%
\noexpand\pgfsys@clipnext%
\noexpand\pgfsys@discardpath%
- \noexpand\pgfsys@invoke{\pgf@domb\space \pgf@sys@tonumber{\pgf@x} pgfV \pgf@psfuncs\space pop}%
+ \noexpand\pgfsys@invoke{\pgf@domb\space \pgf@sys@tonumber{\pgf@x} pgfV\pgf@shading@model\space \pgf@psfuncs\space pop}%
\hss%
\noexpand\pgfsys@endpurepicture}}%
}%
+ \global\expandafter\let\csname @pgfshading#1!\endcsname=\pgfutil@tempa
}
\def\pgfsys@radialshading#1#2#3{%
{%
@@ -231,15 +234,16 @@
\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{%
+ \xdef\pgfutil@tempa{\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}%
+ \pgf@domb\space \pgf@sys@tonumber{\pgf@y} \pgf@sys@tonumber{\pgf@x} \pgf@sys@tonumber{\pgf@max} pgfR1\pgf@shading@model\space
+ \pgf@psfuncs\space \pgf@firstcolor\space \pgf@doma\space pgfR2\pgf@shading@model}%
\hss%
\noexpand\pgfsys@endpurepicture}}%
}%
+ \global\expandafter\let\csname @pgfshading#1!\endcsname=\pgfutil@tempa
}
\def\pgfsys@functionalshading#1#2#3#4{%
{%
@@ -257,26 +261,27 @@
\pgf@sys@bp@correct{\pgf@yb}%
\pgf@xc=-\pgf@xa%
\pgf@yc=-\pgf@ya%
- \expandafter\xdef\csname @pgfshading#1!\endcsname{%
+ \xdef\pgfutil@tempa{%
\hbox to\the\pgf@x{\vbox to\the\pgf@y{\vfil
\noexpand\pgfsys@beginpurepicture%
\noexpand\pgfsys@invoke{%
\pgf@sys@tonumber{\pgf@xc} \pgf@sys@tonumber{\pgf@yc} translate
1.1 setlinewidth [] 0 setdash 0 setlinecap
- /pgfproc {#4} bind def
+ /pgfproc {#4} bind def
\pgf@sys@tonumber{\pgf@ya} 1 \pgf@sys@tonumber{\pgf@yb}
{
\pgf@sys@tonumber{\pgf@xa} 1 \pgf@sys@tonumber{\pgf@xb}
- { 1 index 2 copy pgfproc setrgbcolor moveto 1.1 0 rlineto stroke }
+ { 1 index 2 copy pgfproc \pgf@shading@ps@device\space moveto 1.1 0 rlineto stroke }
for
pop
}
- for
+ for
}%
\noexpand\pgfsys@endpurepicture
}\hfil}%
}%
}%
+ \global\expandafter\let\csname @pgfshading#1!\endcsname=\pgfutil@tempa
}
%
@@ -287,7 +292,7 @@
\def\pgfsys@declarepattern#1#2#3#4#5#6#7#8#9{%
% Start building the pattern dictionary:
\pgf@xa=#2\relax%
- \pgf@ya=#3\relax%
+ \pgf@ya=#3\relax%
\pgf@xb=#4\relax%
\pgf@yb=#5\relax%
\pgf@xc=#6\relax%
@@ -346,20 +351,20 @@
\def\pgfsys@atbegindocument{%
% Parameters to horizontal pre axishade: \pgf@domb x
- \pgf@sys@postscript@header{/pgfH{%
+ \pgf@sys@postscript@header{/pgfHrgb{%
/pgfheight exch def 0.75 setlinewidth [] 0 setdash
- /pgfshade {pgfA} def /pgfdir { dup 0 moveto
+ /pgfshade {pgfArgb} def /pgfdir { dup 0 moveto
dup 5 index lineto } bind def} bind def}%
-
+
% Parameters to vertical pre axishade: \pgf@domb x
- \pgf@sys@postscript@header{/pgfV{%
+ \pgf@sys@postscript@header{/pgfVrgb{%
/pgfheight exch def 0.75 setlinewidth [] 0 setdash
- /pgfshade {pgfA} def /pgfdir { dup 0 exch moveto dup 5 index
+ /pgfshade {pgfArgb} def /pgfdir { dup 0 exch moveto dup 5 index
exch lineto } bind def} bind def}%
-
+
% Parameters to axishade: end x, start x, r-, g-, b- of first color, r-, g-, b- of second color
% Stack afterwards: end x
- \pgf@sys@postscript@header{/pgfA{
+ \pgf@sys@postscript@header{/pgfArgb{
/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
@@ -373,18 +378,18 @@
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
+ } repeat
mark 15 1 roll cleartomark exch pop % leave only start x on stack
}bind def }
% Parameters to radialshade pre: \pgf@domb y x max
- \pgf@sys@postscript@header{/pgfR1{
+ \pgf@sys@postscript@header{/pgfR1rgb{
newpath dup dup dup 0 360 arc clip newpath
dup /pgfendx exch def
/pgfendy exch def
0.875 setlinewidth
[] 0 setdash
- /pgfshade {pgfR} def
+ /pgfshade {pgfRrgb} def
/pgfstartx exch def
/pgfstarty exch def
/pgfdiffx pgfendx pgfstartx sub def
@@ -393,13 +398,13 @@
}bind def }
% Parameters to radialshade post: \pgf@firstcolor \pgf@doma
- \pgf@sys@postscript@header{/pgfR2{
+ \pgf@sys@postscript@header{/pgfR2rgb{
newpath 0.5 add pgfcircx pgfcircy 3 2 roll 0 360 arc
setrgbcolor fill pop}bind def }%
% Parameters to radialshade: end x, start x, r-, g-, b- of first color, r-, g-, b- of second color
% Stack afterwards: end x
- \pgf@sys@postscript@header{/pgfR{
+ \pgf@sys@postscript@header{/pgfRrgb{
/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
@@ -421,14 +426,166 @@
4 -1 roll .25 sub % x += 0.25
/pgfcircx pgfcircx pgfxstep add def
/pgfcircy pgfcircy pgfystep add def
- } repeat
+ } repeat
mark 14 1 roll cleartomark exch pop % leave only start x on stack
}bind def}
+
+ % Parameters to horizontal pre axishade: \pgf@domb x
+ \pgf@sys@postscript@header{/pgfHcmyk{
+ /pgfheight exch def 0.75 setlinewidth [] 0 setdash
+ /pgfshade {pgfAcmyk} def /pgfdir { dup 0 moveto
+ dup 6 index lineto } bind def} bind def}%
+
+ % Parameters to vertical pre axishade: \pgf@domb x
+ \pgf@sys@postscript@header{/pgfVcmyk{
+ /pgfheight exch def 0.75 setlinewidth [] 0 setdash
+ /pgfshade {pgfAcmyk} def /pgfdir { dup 0 exch moveto dup 6 index
+ exch lineto } bind def} bind def}%
+
+ % Parameters to axishade: end x, start x, c-, m-, y-, k- of first color, c-, m-, y-, k- of second color
+ \pgf@sys@postscript@header{/pgfAcmyk{
+ /pgfdiff 10 index round cvi 10 index round cvi sub 2 mul 1 add def
+ 3 index 8 index sub pgfdiff div % put cyan-step on stack
+ 3 index 8 index sub pgfdiff div % put magenta-step on stack
+ 3 index 8 index sub pgfdiff div % put yellow-step on stack
+ 3 index 8 index sub pgfdiff div % put black-step on stack
+ pgfheight 12 index 12 index 12 index 12 index 18 index
+ pgfdiff {
+ 4 index 4 index 4 index 4 index setcmykcolor % Set color
+ pgfdir
+ stroke
+ 5 -1 roll 9 index add % cyan += inccyan
+ 5 -1 roll 8 index add % magenta += incmagenta
+ 5 -1 roll 7 index add % yellow += incyellow
+ 5 -1 roll 6 index add % black += incblack
+ 5 -1 roll .5 sub % x += 0.5
+ } repeat
+ mark 19 1 roll cleartomark exch pop % leave only start x on stack
+ }bind def }%
+
+ % Parameters to radialshade pre: \pgf@domb y x max
+ \pgf@sys@postscript@header{/pgfR1cmyk{
+ newpath dup dup dup 0 360 arc clip newpath
+ dup /pgfendx exch def
+ /pgfendy exch def
+ 0.875 setlinewidth
+ [] 0 setdash
+ /pgfshade {pgfRcmyk} def
+ /pgfstartx exch def
+ /pgfstarty exch def
+ /pgfdiffx pgfendx pgfstartx sub def
+ /pgfdiffy pgfendy pgfstarty sub def
+ dup /pgfdomb exch def
+ }bind def }%
+
+ % Parameters to radialshade post: \pgf@firstcolor \pgf@doma
+ \pgf@sys@postscript@header{/pgfR2cmyk{
+ newpath 0.5 add pgfcircx pgfcircy 3 2 roll 0 360 arc
+ setcmykcolor fill pop}bind def }%
+
+ % Parameters to radialshade: end x, start x, c-, m-, y-, k- of first color, c-, m-, y-, k- of second color
+ \pgf@sys@postscript@header{/pgfRcmyk{
+ /pgfdiff 10 index round cvi 10 index round cvi sub 4 mul 1 add def
+ /pgfcircx pgfstartx 11 index pgfdiffx pgfdomb div mul add def
+ /pgfcircy pgfstarty 11 index pgfdiffy pgfdomb div mul add def
+ /pgfcircxe pgfstartx 10 index pgfdiffx pgfdomb div mul add def
+ /pgfcircye pgfstarty 10 index pgfdiffy pgfdomb div mul add def
+ /pgfxstep pgfcircxe pgfcircx sub pgfdiff div def
+ /pgfystep pgfcircye pgfcircy sub pgfdiff div def
+ 3 index 8 index sub pgfdiff div % put cyan-step on stack
+ 3 index 8 index sub pgfdiff div % put magenta-step on stack
+ 3 index 8 index sub pgfdiff div % put yellow-step on stack
+ 3 index 8 index sub pgfdiff div % put black-step on stack
+ 11 index 11 index 11 index 11 index 17 index
+ pgfdiff {
+ 4 index 4 index 4 index 4 index setcmykcolor % Set color
+ pgfcircx pgfcircy 2 index 0 360 arc closepath
+ stroke
+ 5 -1 roll 8 index add % cyan += inccyan
+ 5 -1 roll 7 index add % magenta += incmagenta
+ 5 -1 roll 6 index add % yellow += incyellow
+ 5 -1 roll 5 index add % black += incblack
+ 5 -1 roll .25 sub % x += 0.25
+ /pgfcircx pgfcircx pgfxstep add def
+ /pgfcircy pgfcircy pgfystep add def
+ } repeat
+ mark 18 1 roll cleartomark exch pop % leave only start x on stack
+ }bind def}%
+
+ % Parameters to horizontal pre axishade: \pgf@domb x
+ \pgf@sys@postscript@header{/pgfHgray{
+ /pgfheight exch def 0.75 setlinewidth [] 0 setdash
+ /pgfshade {pgfAgray} def /pgfdir { dup 0 moveto
+ dup 3 index lineto } bind def} bind def}%
+
+ % Parameters to vertical pre axishade: \pgf@domb x
+ \pgf@sys@postscript@header{/pgfVgray{
+ /pgfheight exch def 0.75 setlinewidth [] 0 setdash
+ /pgfshade {pgfAgray} def /pgfdir { dup 0 exch moveto dup 3 index
+ exch lineto } bind def} bind def}%
+
+ % Parameters to axishade: end x, start x, g of first color, g of second color
+ \pgf@sys@postscript@header{/pgfAgray{
+ /pgfdiff 4 index round cvi 4 index round cvi sub 2 mul 1 add def
+ dup 2 index sub pgfdiff div % put gray-step on stack
+ pgfheight 3 index 6 index
+ pgfdiff {
+ 1 index setgray % Set color
+ pgfdir
+ stroke
+ exch 3 index add % gray += incgray
+ exch .5 sub % x += 0.5
+ } repeat
+ mark 7 1 roll cleartomark exch pop % leave only start x on stack
+ }bind def }%
+
+ % Parameters to radialshade pre: \pgf@domb y x max
+ \pgf@sys@postscript@header{/pgfR1gray{
+ newpath dup dup dup 0 360 arc clip newpath
+ dup /pgfendx exch def
+ /pgfendy exch def
+ 0.875 setlinewidth
+ [] 0 setdash
+ /pgfshade {pgfRgray} def
+ /pgfstartx exch def
+ /pgfstarty exch def
+ /pgfdiffx pgfendx pgfstartx sub def
+ /pgfdiffy pgfendy pgfstarty sub def
+ dup /pgfdomb exch def
+ }bind def }%
+
+ % Parameters to radialshade post: \pgf@firstcolor \pgf@doma
+ \pgf@sys@postscript@header{/pgfR2gray{
+ newpath 0.5 add pgfcircx pgfcircy 3 2 roll 0 360 arc
+ setgray fill pop}bind def }%
+
+ % Parameters to radialshade: end x, start x, g of first color, g of second color
+ \pgf@sys@postscript@header{/pgfRgray{
+ /pgfdiff 4 index round cvi 4 index round cvi sub 4 mul 1 add def
+ /pgfcircx pgfstartx 5 index pgfdiffx pgfdomb div mul add def
+ /pgfcircy pgfstarty 5 index pgfdiffy pgfdomb div mul add def
+ /pgfcircxe pgfstartx 4 index pgfdiffx pgfdomb div mul add def
+ /pgfcircye pgfstarty 4 index pgfdiffy pgfdomb div mul add def
+ /pgfxstep pgfcircxe pgfcircx sub pgfdiff div def
+ /pgfystep pgfcircye pgfcircy sub pgfdiff div def
+ dup 2 index sub pgfdiff div % put gray-step on stack
+ 2 index 5 index
+ pgfdiff {
+ 1 index setgray % Set color
+ pgfcircx pgfcircy 2 index 0 360 arc closepath
+ stroke
+ exch 2 index add % gray += incgray
+ exch .25 sub % x += 0.25
+ /pgfcircx pgfcircx pgfxstep add def
+ /pgfcircy pgfcircy pgfystep add def
+ } repeat
+ mark 6 1 roll cleartomark exch pop % leave only start x on stack
+ }bind def}%
}
\endinput
-%%% Local Variables:
+%%% Local Variables:
%%% mode: latex
-%%% End:
+%%% End: