summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/source/latex/pgf-cmykshadings
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2018-10-23 20:44:07 +0000
committerKarl Berry <karl@freefriends.org>2018-10-23 20:44:07 +0000
commitb2d85c17c9d9577a0395372219abcf13949d50a7 (patch)
tree32d101fe009b9bdf39e8002113dcd72749fa0854 /Master/texmf-dist/source/latex/pgf-cmykshadings
parentba8ca340d0f3c38699715adddc605dde56ee9ab2 (diff)
pgf-cmykshadings (23oct18)
git-svn-id: svn://tug.org/texlive/trunk@48976 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/source/latex/pgf-cmykshadings')
-rw-r--r--Master/texmf-dist/source/latex/pgf-cmykshadings/pgf-cmykshadings.dtx504
-rw-r--r--Master/texmf-dist/source/latex/pgf-cmykshadings/pgf-cmykshadings.ins17
2 files changed, 497 insertions, 24 deletions
diff --git a/Master/texmf-dist/source/latex/pgf-cmykshadings/pgf-cmykshadings.dtx b/Master/texmf-dist/source/latex/pgf-cmykshadings/pgf-cmykshadings.dtx
index 43d25e264a5..9ed149122ae 100644
--- a/Master/texmf-dist/source/latex/pgf-cmykshadings/pgf-cmykshadings.dtx
+++ b/Master/texmf-dist/source/latex/pgf-cmykshadings/pgf-cmykshadings.dtx
@@ -13,7 +13,6 @@
%<*driver>
\documentclass[a4paper]{l3doc}
\usepackage{microtype}
-\usepackage{metalogo}
\usepackage{pgf-cmykshadings}
\usepackage{tikz}
\usepackage{listings}
@@ -28,18 +27,16 @@
%
% \title{The \pkg{pgf-cmykshadings} package}
% \author{David Purton\thanks{Email: \url{dcpurton@marshwiggle.net}}}
-% \date{2018/10/17 v1.0}
+% \date{2018/10/23 v1.1}
%
% \maketitle
%
% \begin{abstract}
% The \pkg{pgf-cmykshadings} package provides support for CMYK and grayscale
% shadings for the \pkg{pgf} package. By default \pkg{pgf} only supports RGB
-% shadings. Horizontal, vertical, radial, and functional shadings are
-% supported for pdf\LaTeX, \LuaLaTeX, and \XeLaTeX. \pkg{pgf-cmykshadings}
-% attempts to produce shadings consistent with the currently selected
-% \pkg{xcolor} colour model. The |rgb|, |cmyk|, and |gray| colour models
-% from the \pkg{xcolor} package are supported.
+% shadings. \pkg{pgf-cmykshadings} attempts to produce shadings consistent
+% with the currently selected \pkg{xcolor} colour model. The |rgb|, |cmyk|,
+% and |gray| colour models from the \pkg{xcolor} package are supported.
% \end{abstract}
%
% \tableofcontents
@@ -105,10 +102,9 @@
% \section{Acknowledgements}
%
% Substantial parts of the code for the \pkg{pgf-cmykshadings} package are
-% taken from the \pkg{pgf} package files |pgfcoreshade.code.tex|,
-% |pgfsys-pdftex.def|, |pgfsys-dvipdfmx.def|, and |pgfsys-luatex.def| copyright
-% © 2006 Till Tantau and then slightly modified to support CMYK and grayscale
-% shadings.
+% taken from the \pkg{pgf} package file |pgfcoreshade.code.tex| along with the
+% driver files |pgfsys-*.def| copyright © 2006 Till Tantau and then slightly
+% modified to support CMYK and grayscale shadings.
%
% \section{Bug Reports and Feature Requests}
%
@@ -565,7 +561,7 @@
%
% \begin{macrocode}
\ProvidesPackage{pgf-cmykshadings}%
- [2018/10/17 CMYK shadings support for PGF (DCP)]
+ [2018/10/23 CMYK shadings support for PGF (DCP)]
% \end{macrocode}
%
% \begin{macrocode}
@@ -955,8 +951,8 @@
\expandafter\expandafter\expandafter\@@args%
\expandafter\expandafter\expandafter{%
\csname pgf@args\pgf@shadingname\endcsname}%
- \expandafter\expandafter\expandafter\@temp\expandafter\@args\@@args%
- %
+ \expandafter\expandafter\expandafter\@temp
+ \expandafter\@args\@@args%
}%
}%
{}%
@@ -988,23 +984,27 @@
\XC@sdef\pgf@mod@test{\XC@tgt@mod{natural}}%
\def\pgf@shading@functional@range{0 1 0 1 0 1}%
\def\pgf@shading@device{/DeviceRGB}%
+ \def\pgf@shading@ps@device{setrgbcolor}%
\def\pgf@shading@model{rgb}%
\ifx\pgf@mod@test\XC@mod@natural
\ifpgfcmykshadingdefault
\def\pgf@shading@functional@range{0 1 0 1 0 1 0 1}%
\def\pgf@shading@device{/DeviceCMYK}%
+ \def\pgf@shading@ps@device{setcmykcolor}%
\def\pgf@shading@model{cmyk}%
\pgfshadingmodelrgbfalse
\pgfshadingmodelcmyktrue
\else
\def\pgf@shading@functional@range{0 1 0 1 0 1}%
\def\pgf@shading@device{/DeviceRGB}%
+ \def\pgf@shading@ps@device{setrgbcolor}%
\def\pgf@shading@model{rgb}%
\fi
\fi
\ifx\pgf@mod@test\XC@mod@cmyk
\def\pgf@shading@functional@range{0 1 0 1 0 1 0 1}%
\def\pgf@shading@device{/DeviceCMYK}%
+ \def\pgf@shading@ps@device{setcmykcolor}%
\def\pgf@shading@model{cmyk}%
\pgfshadingmodelrgbfalse
\pgfshadingmodelcmyktrue
@@ -1012,10 +1012,25 @@
\ifx\pgf@mod@test\XC@mod@gray
\def\pgf@shading@functional@range{0 1}%
\def\pgf@shading@device{/DeviceGray}%
+ \def\pgf@shading@ps@device{setgray}%
\def\pgf@shading@model{gray}%
\pgfshadingmodelrgbfalse
\pgfshadingmodelgraytrue
\fi
+% \end{macrocode}
+% \changes{v1.1}{2018/10/19}{Support dvisvgm driver}
+% \begin{macrocode}
+ \edef\pgf@sys@driver@dvisvgm{pgfsys-dvisvgm.def}%
+ \ifx\pgfsysdriver\pgf@sys@driver@dvisvgm
+ \def\pgf@shading@model{rgb}%
+ \fi
+% \end{macrocode}
+% \changes{v1.1}{2018/10/19}{Support tex4ht driver}
+% \begin{macrocode}
+ \edef\pgf@sys@driver@texforht{pgfsys-tex4ht.def}%
+ \ifx\pgfsysdriver\pgf@sys@driver@texforht
+ \def\pgf@shading@model{rgb}%
+ \fi
}
% \end{macrocode}
%
@@ -1090,7 +1105,7 @@
\edef\pgfsyscmykshadingsdriver{pgfsys-cmykshadings-#1}%
}
\pgfutilgetcmykshadingsdriver
-\input\pgfsyscmykshadingsdriver
+\pgfutil@InputIfFileExists{\pgfsyscmykshadingsdriver}{}{}
% \end{macrocode}
%
% \noindent Style options to use CMYK shadings by default or not when the
@@ -1101,8 +1116,11 @@
\DeclareOption{cmyk}{%
\pgfcmykshadingdefaulttrue
}
+% \end{macrocode}
+% \changes{v1.1}{2018/10/18}{Fix typo for {\ttfamily rgb} option}
+% \begin{macrocode}
\DeclareOption{rgb}{%
- \pgfcmykshadin@defaultfalse
+ \pgfcmykshadingdefaultfalse
}
\ExecuteOptions{cmyk}
\ProcessOptions\relax
@@ -1114,7 +1132,7 @@
%
% \subsection{Drivers}
%
-% \subsubsection{pdftex driver}
+% \subsubsection*{pdftex driver}
%
% \begin{macrocode}
%<*pdftex-driver>
@@ -1257,7 +1275,7 @@
%</pdftex-driver>
% \end{macrocode}
%
-% \subsubsection{xetex driver}
+% \subsubsection*{xetex driver}
%
% \begin{macrocode}
%<*xetex-driver>
@@ -1276,7 +1294,7 @@
%</xetex-driver>
% \end{macrocode}
%
-% \subsubsection{luatex driver}
+% \subsubsection*{luatex driver}
%
% \begin{macrocode}
%<*luatex-driver>
@@ -1419,7 +1437,7 @@
%</luatex-driver>
% \end{macrocode}
%
-% \subsubsection{dvipdfmx driver}
+% \subsubsection*{dvipdfmx driver}
%
% \begin{macrocode}
%<*dvipdfmx-driver>
@@ -1577,6 +1595,452 @@
%</dvipdfmx-driver>
% \end{macrocode}
%
+% \subsubsection*{dvipdfm driver}
+%
+% \changes{v1.1}{2018/10/18}{Support dvipdfm driver}
+%
+% \begin{macrocode}
+%<*dvipdfm-driver>
+% \end{macrocode}
+%
+% \begin{macrocode}
+\ProvidesFile{pgfsys-cmykshadings-dvipdfm.def}%
+ [2018/10/18 CMYK shadings support for PGF dvipdfm driver (DCP)]
+% \end{macrocode}
+%
+% \begin{macrocode}
+\def\pgfsys@horishading#1#2#3{%
+ {%
+ \pgf@parsefunc{#3}%
+ \pgf@process{\pgfpoint{\pgf@max}{#2}}%
+ \edef\@temp{\noexpand\pgfutil@insertatbegincurrentpage{%
+ \special{pdf: beginxobj @pgfshade#1 width \the\pgf@max\space
+ height \the\pgf@y}}}\@temp%
+ \edef\@temp{\noexpand\pgfutil@insertatbegincurrentpage{%
+ \special{pdf: put @resources <<
+ /Shading << /Sh << /ShadingType 2
+ /ColorSpace \pgf@shading@device\space
+ /Domain [\pgf@pdfparseddomain]
+ /Coords [\pgf@doma\space0 \pgf@domb\space0]
+ /Function \pgf@pdfparsedfunction
+ /Extend [false false] >> >> >>}}}\@temp% <<
+ \pgfutil@insertatbegincurrentpage{\special{pdf: content /Sh sh}%
+ \special{pdf: endxobj}}%
+ \expandafter\xdef\csname @pgfshading#1!\endcsname{%
+ \hbox to\the\pgf@max{\vbox to#2{%
+ \vfil\special{pdf: usexobj @pgfshade#1}}\hfil}}%
+ \expandafter\xdef\csname @pgfshading#1@model!\endcsname{%
+ \pgf@shading@model}%
+ }%
+}
+\def\pgfsys@vertshading#1#2#3{%
+ {%
+ \pgf@parsefunc{#3}%
+ \pgf@process{\pgfpoint{\pgf@max}{#2}}%
+ \edef\@temp{\noexpand\pgfutil@insertatbegincurrentpage{%
+ \special{pdf: beginxobj @pgfshade#1 width \the\pgf@y\space
+ height \the\pgf@max\space}}}\@temp%
+ \edef\@temp{\noexpand\pgfutil@insertatbegincurrentpage{%
+ \special{pdf: put @resources <<
+ /Shading << /Sh << /ShadingType 2
+ /ColorSpace \pgf@shading@device\space
+ /Domain [\pgf@pdfparseddomain]
+ /Coords [0 \pgf@doma\space0 \pgf@domb]
+ /Function \pgf@pdfparsedfunction
+ /Extend [false false] >> >> >>}}}\@temp% <<
+ \pgfutil@insertatbegincurrentpage{\special{pdf: content /Sh sh}%
+ \special{pdf: endxobj}}%
+ \expandafter\xdef\csname @pgfshading#1!\endcsname{%
+ \hbox to#2{\vbox to\the\pgf@max{\vfil\special{%
+ pdf: usexobj @pgfshade#1}}\hfil}}%
+ \expandafter\xdef\csname @pgfshading#1@model!\endcsname{%
+ \pgf@shading@model}%
+ }%
+}
+\def\pgfsys@radialshading#1#2#3{%
+ {%
+ \pgf@parsefunc{#3}%
+ \pgf@process{#2}%
+ \pgf@xa=\pgf@x%
+ \pgf@ya=\pgf@y%
+ \pgf@process{\pgfpoint{\pgf@max}{\pgf@max}}%
+ \advance\pgf@xa by \pgf@x\relax%
+ \advance\pgf@ya by \pgf@y\relax%
+ \pgf@sys@bp@correct{\pgf@x}%
+ \pgf@sys@bp@correct{\pgf@y}%
+ \pgf@sys@bp@correct{\pgf@xa}%
+ \pgf@sys@bp@correct{\pgf@ya}%
+ \pgfutil@tempdima=2\pgf@max\relax%
+ \edef\@temp{\noexpand\pgfutil@insertatbegincurrentpage{%
+ \special{pdf: beginxobj @pgfshade#1 width
+ \the\pgfutil@tempdima\space height \the\pgfutil@tempdima}}}\@temp%
+ \edef\@temp{\noexpand\pgfutil@insertatbegincurrentpage{%
+ \special{pdf: put @resources <<
+ /Shading << /Sh << /ShadingType 3
+ /ColorSpace \pgf@shading@device\space
+ /Domain [\pgf@pdfparseddomain]
+ /Coords [\pgf@sys@tonumber{\pgf@xa} \pgf@sys@tonumber{\pgf@ya}
+ \pgf@doma\space \pgf@sys@tonumber{\pgf@x} \pgf@sys@tonumber{\pgf@y}
+ \pgf@domb]
+ /Function \pgf@pdfparsedfunction
+ /Extend [true false] >> >> >>}}}\@temp% <<
+ \pgfutil@insertatbegincurrentpage{\special{pdf: content /Sh sh}%
+ \special{pdf: endxobj}}%
+ \expandafter\xdef\csname @pgfshading#1!\endcsname{%
+ \hbox to\the\pgfutil@tempdima{\vbox to\the\pgfutil@tempdima{%
+ \vfil\special{pdf: usexobj @pgfshade#1}}\hfil}}%
+ \expandafter\xdef\csname @pgfshading#1@model!\endcsname{%
+ \pgf@shading@model}%
+ }%
+}%
+% \end{macrocode}
+%
+% \begin{macrocode}
+%</dvipdfm-driver>
+% \end{macrocode}
+%
+% \changes{v1.1}{2018/10/23}{Support PostScript® drivers}
+%
+% \subsubsection*{dvips driver}
+%
+% \begin{macrocode}
+%<*dvips-driver>
+% \end{macrocode}
+%
+% \begin{macrocode}
+\ProvidesFile{pgfsys-cmykshadings-dvips.def}%
+ [2018/10/23 CMYK shadings support for PGF dvips driver (DCP)]
+% \end{macrocode}
+%
+% \begin{macrocode}
+\input pgfsys-cmykshadings-common-postscript.def
+% \end{macrocode}
+%
+% \begin{macrocode}
+%</dvips-driver>
+% \end{macrocode}
+%
+% \subsubsection*{textures driver}
+%
+% \begin{macrocode}
+%<*textures-driver>
+% \end{macrocode}
+%
+% \begin{macrocode}
+\ProvidesFile{pgfsys-cmykshadings-textures.def}%
+ [2018/10/23 CMYK shadings support for PGF textures driver (DCP)]
+% \end{macrocode}
+%
+% \begin{macrocode}
+\input pgfsys-cmykshadings-common-postscript.def
+% \end{macrocode}
+%
+% \begin{macrocode}
+%</textures-driver>
+% \end{macrocode}
+%
+% \subsubsection*{vtex driver}
+%
+% \begin{macrocode}
+%<*vtex-driver>
+% \end{macrocode}
+%
+% \begin{macrocode}
+\ProvidesFile{pgfsys-cmykshadings-vtex.def}%
+ [2018/10/23 CMYK shadings support for PGF vtex driver (DCP)]
+% \end{macrocode}
+%
+% \begin{macrocode}
+\input pgfsys-cmykshadings-common-postscript.def
+% \end{macrocode}
+%
+% \begin{macrocode}
+%</vtex-driver>
+% \end{macrocode}
+%
+% \subsubsection*{PostScript® driver common code}
+%
+% \begin{macrocode}
+%<*common-ps-driver>
+% \end{macrocode}
+%
+% \begin{macrocode}
+\ProvidesFile{pgfsys-cmykshadings-common-postscript.def}%
+ [2018/10/23 CMYK shadings support for PGF PostScript driver (DCP)]
+% \end{macrocode}
+%
+% \TeX\space shading macros.
+%
+% \begin{macrocode}
+\def\pgfsys@horishading#1#2#3{%
+ {%
+ \pgf@parsefunc{#3}%
+ \pgfmathsetlength\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@max}{\the\pgf@xa}%
+ \noexpand\pgfsys@clipnext%
+ \noexpand\pgfsys@discardpath%
+ \noexpand\pgfsys@invoke{\pgf@domb\space \pgf@sys@tonumber{\pgf@x}
+ pgfH\pgf@shading@model\space \pgf@psfuncs\space pop}%
+ \hss%
+ \noexpand\pgfsys@endpurepicture}}%
+ \expandafter\xdef\csname @pgfshading#1@model!\endcsname{%
+ \pgf@shading@model}%
+ }%
+}
+\def\pgfsys@vertshading#1#2#3{%
+ {%
+ \pgf@parsefunc{#3}%
+ \pgfmathsetlength\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@xa}{\the\pgf@max}%
+ \noexpand\pgfsys@clipnext%
+ \noexpand\pgfsys@discardpath%
+ \noexpand\pgfsys@invoke{\pgf@domb\space \pgf@sys@tonumber{\pgf@x}
+ pgfV\pgf@shading@model\space \pgf@psfuncs\space pop}%
+ \hss%
+ \noexpand\pgfsys@endpurepicture}}%
+ \expandafter\xdef\csname @pgfshading#1@model!\endcsname{%
+ \pgf@shading@model}%
+ }%
+}
+\def\pgfsys@radialshading#1#2#3{%
+ {%
+ \pgf@parsefunc{#3}%
+ \pgf@process{#2}%
+ \pgf@sys@bp@correct{\pgf@x}%
+ \pgf@sys@bp@correct{\pgf@y}%
+ \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@shading@model\space
+ \pgf@psfuncs\space \pgf@firstcolor\space \pgf@doma\space
+ pgfR2\pgf@shading@model}%
+ \hss%
+ \noexpand\pgfsys@endpurepicture}}%
+ \expandafter\xdef\csname @pgfshading#1@model!\endcsname{%
+ \pgf@shading@model}%
+ }%
+}
+\def\pgfsys@functionalshading#1#2#3#4{%
+ {%
+ \pgf@process{#2}%
+ \pgf@xa=\pgf@x%
+ \pgf@ya=\pgf@y%
+ \pgf@process{#3}%
+ \pgf@xb=\pgf@x%
+ \pgf@yb=\pgf@y%
+ \advance\pgf@x by-\pgf@xa%
+ \advance\pgf@y by-\pgf@ya%
+ \pgf@sys@bp@correct{\pgf@xa}%
+ \pgf@sys@bp@correct{\pgf@ya}%
+ \pgf@sys@bp@correct{\pgf@xb}%
+ \pgf@sys@bp@correct{\pgf@yb}%
+ \pgf@xc=-\pgf@xa%
+ \pgf@yc=-\pgf@ya%
+ \expandafter\xdef\csname @pgfshading#1!\endcsname{%
+ \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
+ \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 \pgf@shading@ps@device\space
+ moveto 1.1 0 rlineto stroke }
+ for
+ pop
+ }
+ for
+ }%
+ \noexpand\pgfsys@endpurepicture
+ }\hfil}%
+ }%
+ \expandafter\xdef\csname @pgfshading#1@model!\endcsname{%
+ \pgf@shading@model}%
+ }%
+}
+% \end{macrocode}
+%
+% PostScript® support code.
+%
+% \begin{macrocode}
+\g@addto@macro\pgfsys@atbegindocument{%
+% \end{macrocode}
+%
+% Define RGB PostScript® shading functions.
+%
+% \begin{macrocode}
+ \pgf@sys@postscript@header{/pgfHrgb { pgfH } bind def}%
+ \pgf@sys@postscript@header{/pgfVrgb { pgfV } bind def}%
+ \pgf@sys@postscript@header{/pgfR1rgb { pgfR1 } bind def}%
+ \pgf@sys@postscript@header{/pgfR2rgb { pgfR2 } bind def}%
+% \end{macrocode}
+%
+% Define CMYK PostScript® shding functions.
+%
+% \begin{macrocode}
+ \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}%
+ \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}%
+ \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 }
+ \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 }
+ \pgf@sys@postscript@header{/pgfR2cmyk{
+ newpath 0.5 add pgfcircx pgfcircy 3 2 roll 0 360 arc
+ setcmykcolor fill pop}bind def }%
+ \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}
+% \end{macrocode}
+%
+% Define grayscale PostScript® shding functions.
+%
+% \begin{macrocode}
+ \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}%
+ \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}%
+ \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 }
+ \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 }
+ \pgf@sys@postscript@header{/pgfR2gray{
+ newpath 0.5 add pgfcircx pgfcircy 3 2 roll 0 360 arc
+ setgray fill pop}bind def }%
+ \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}
+}
+% \end{macrocode}
+%
+% \begin{macrocode}
+%</common-ps-driver>
+% \end{macrocode}
+%
% \end{implementation}
%
% \PrintChanges
diff --git a/Master/texmf-dist/source/latex/pgf-cmykshadings/pgf-cmykshadings.ins b/Master/texmf-dist/source/latex/pgf-cmykshadings/pgf-cmykshadings.ins
index d874a799505..9f49b5e7b9e 100644
--- a/Master/texmf-dist/source/latex/pgf-cmykshadings/pgf-cmykshadings.ins
+++ b/Master/texmf-dist/source/latex/pgf-cmykshadings/pgf-cmykshadings.ins
@@ -39,13 +39,17 @@ pgf-cmykshadings.dtx, README.md, and the derived files
- pgfsys-cmykshadgins-xetex.def
- pgfsys-cmykshadings-luatex.def
- pgfsys-cmykshadings-dvipdfmx.def
+ - pgfsys-cmykshadings-dvipdfm.def
+ - pgfsys-cmykshadings-dvips.def
+ - pgfsys-cmykshadings-textures.def
+ - pgfsys-cmykshadings-vtex.def
+ - pgfsys-cmykshadings-common-postscript.def
- pgf-cmykshadings.pdf
-Substantial parts of the code for this package are taken from the pgf
-package files pgfcoreshade.code.tex, pgfsys-pdftex.def,
-pgfsys-luatex.def, and pgfsys-dvipdfmx.def copyright (c) 2006 Till
-Tantau and then slightly modified to support CMYK and grayscale
+Substantial parts of the code for this package are taken from the pgf package
+file pgfcoreshade.code.tex, along with the driver files pgfsys-*.def, copyright
+(c) 2006 Till Tantau and then slightly modified to support CMYK and grayscale
shadings.
\endpreamble
@@ -60,6 +64,11 @@ shadings.
\file{pgfsys-cmykshadings-xetex.def}{\from{pgf-cmykshadings.dtx}{xetex-driver}}
\file{pgfsys-cmykshadings-luatex.def}{\from{pgf-cmykshadings.dtx}{luatex-driver}}
\file{pgfsys-cmykshadings-dvipdfmx.def}{\from{pgf-cmykshadings.dtx}{dvipdfmx-driver}}
+ \file{pgfsys-cmykshadings-dvipdfm.def}{\from{pgf-cmykshadings.dtx}{dvipdfm-driver}}
+ \file{pgfsys-cmykshadings-dvips.def}{\from{pgf-cmykshadings.dtx}{dvips-driver}}
+ \file{pgfsys-cmykshadings-textures.def}{\from{pgf-cmykshadings.dtx}{textures-driver}}
+ \file{pgfsys-cmykshadings-vtex.def}{\from{pgf-cmykshadings.dtx}{vtex-driver}}
+ \file{pgfsys-cmykshadings-common-postscript.def}{\from{pgf-cmykshadings.dtx}{common-ps-driver}}
}
\endbatchfile