diff options
author | Karl Berry <karl@freefriends.org> | 2018-10-17 20:39:38 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2018-10-17 20:39:38 +0000 |
commit | f5112bd8d60b74a14f806899d414c8142393529d (patch) | |
tree | 5035aa544fa08a5f109e03bc31b234c86676d813 /Master/texmf-dist/tex/latex/pgf-cmykshadings | |
parent | 53312354ee2651c6a8b030318aeca118329236d5 (diff) |
pgf-cmykshadings (17oct18)
git-svn-id: svn://tug.org/texlive/trunk@48924 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/pgf-cmykshadings')
5 files changed, 1057 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/latex/pgf-cmykshadings/pgf-cmykshadings.sty b/Master/texmf-dist/tex/latex/pgf-cmykshadings/pgf-cmykshadings.sty new file mode 100644 index 00000000000..bfc28dc26f5 --- /dev/null +++ b/Master/texmf-dist/tex/latex/pgf-cmykshadings/pgf-cmykshadings.sty @@ -0,0 +1,490 @@ +%% +%% This is file `pgf-cmykshadings.sty', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% pgf-cmykshadings.dtx (with options: `package') +%% +%% This is a generated file. +%% +%% Copyright (c) 2018 David Purton <dcpurton@marshwiggle.net> +%% +%% 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 is "maintained" (as per the LPPL maintenance status) +%% by David Purton. +%% +%% This work consists of the files pgf-cmykshadings.ins, +%% pgf-cmykshadings.dtx, README.md, and the derived files +%% - pgf-cmykshadings.sty +%% - pgfsys-cmykshadings-pdftex.def +%% - pgfsys-cmykshadgins-xetex.def +%% - pgfsys-cmykshadings-luatex.def +%% - pgfsys-cmykshadings-dvipdfmx.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 +%% shadings. +%% +\ProvidesPackage{pgf-cmykshadings}% + [2018/10/17 CMYK shadings support for PGF (DCP)] +\RequirePackage{pgf} +\def\pgf@parsefunc#1{% + \edef\temp{{#1}}% + \expandafter\pgf@convertstring\temp% + \edef\temp{{\pgf@conv}}% + \expandafter\pgf@@parsefunc\temp} +\def\pgf@@parsefunc#1{% + \let\pgf@bounds=\pgfutil@empty% + \let\pgf@funcs=\pgfutil@empty% + \let\pgf@psfuncs=\pgfutil@empty% + \let\pgf@encode=\pgfutil@empty% + \let\pgf@sys@shading@ranges=\pgfutil@empty% + \pgf@sys@shading@range@num=0\relax% + \csname pgf@parsefirst\pgf@shading@model\endcsname[#1; ]% + \csname pgf@parselastdom\pgf@shading@model\endcsname[#1; ]% + \csname pgf@parsemid\pgf@shading@model\endcsname[#1; ]% + \ifx\pgf@bounds\pgfutil@empty% + \edef\pgf@pdfparseddomain{0 1}% + \edef\pgf@pdfparsedfunction{\pgf@singlefunc\space}% + \else% + \edef\pgf@pdfparseddomain{\pgf@doma\space\pgf@domb}% + \edef\pgf@pdfparsedfunction{% + << /FunctionType 3 /Domain [\pgf@doma\space\pgf@domb] /Functions + [\pgf@funcs\space] /Bounds [\pgf@bounds] /Encode [0 1 \pgf@encode] + >> }% << + \fi% + \xdef\pgf@psfuncs{\pgf@psfuncs}% + } +\let\pgf@parsefirstrgb\pgf@parsefirst +\let\pgf@parselastdomrgb\pgf@parselastdom +\let\pgf@parsemidrgb\pgf@parsemid +\let\pgf@parserestrgb\pgf@parserest +\def\pgf@parsefirstcmyk[cmyk(#1)=(#2,#3,#4,#5)#6]{% + \pgfmathsetlength\pgf@x{#1}% + \edef\pgf@sys@shading@start@pos{\the\pgf@x}% + \pgf@sys@bp@correct\pgf@x% + \edef\pgf@doma{\pgf@sys@tonumber{\pgf@x}}% + \edef\pgf@prevx{\pgf@sys@tonumber{\pgf@x}}% + \pgf@getcmyktuplewithmixin{#2}{#3}{#4}{#5}% + \edef\pgf@sys@shading@start@cmyk{\pgf@sys@cmyk}% + \let\pgf@sys@prevcolor=\pgf@sys@shading@start@cmyk% + \let\pgf@sys@prevpos=\pgf@sys@shading@start@pos% + \edef\pgf@prevcolor{\pgf@cmyk}% + \edef\pgf@firstcolor{\pgf@cmyk}} +\def\pgf@parselastdomcmyk[cmyk(#1)=(#2,#3,#4,#5); {% + \pgfutil@ifnextchar]{% + \pgfmathsetlength\pgf@x{#1}% + \edef\pgf@sys@shading@end@pos{\the\pgf@x}% + \pgf@max=\pgf@x\relax% + \pgf@sys@bp@correct\pgf@x% + \edef\pgf@domb{\pgf@sys@tonumber{\pgf@x}}% + \pgf@getcmyktuplewithmixin{#2}{#3}{#4}{#5}% + \edef\pgf@sys@shading@end@cmyk{\pgf@sys@cmyk}% + \pgfutil@gobble}{\pgf@parselastdomcmyk[}} +\def\pgf@parsemidcmyk[cmyk(#1)=(#2,#3,#4,#5); {\pgf@parserestcmyk[} +\def\pgf@parserestcmyk[cmyk(#1)=(#2,#3,#4,#5); {% + \advance\pgf@sys@shading@range@num by1\relax% + \pgfutil@ifnextchar]{% + \pgf@getcmyktuplewithmixin{#2}{#3}{#4}{#5}% + \edef\pgf@singlefunc{\space% + << /FunctionType 2 /Domain [0 1] /C0 + [\pgf@prevcolor] /C1 [\pgf@cmyk] /N 1 >> }% << + \edef\pgf@funcs{\pgf@funcs\space% + << /FunctionType 2 /Domain [\pgf@doma\space\pgf@domb] /C0 + [\pgf@prevcolor] /C1 [\pgf@cmyk] /N 1 >> }% << + \edef\pgf@psfuncs{\pgf@prevx\space + \pgf@cmyk\space \pgf@prevcolor\space pgfshade \pgf@psfuncs}% + \pgfmathsetlength\pgf@x{#1}% + \edef\pgf@sys@shading@ranges{\pgf@sys@shading@ranges{% + {\pgf@sys@prevpos}{\the\pgf@x}{\pgf@sys@prevcolor}{\pgf@sys@cmyk}}}% + \edef\pgf@sys@prevpos{\the\pgf@x}% + \let\pgf@sys@prevcolor=\pgf@sys@cmyk% + \pgfutil@gobble}{% + \pgfmathsetlength\pgf@x{#1}% + \pgf@getcmyktuplewithmixin{#2}{#3}{#4}{#5}% + \edef\pgf@sys@shading@ranges{\pgf@sys@shading@ranges{% + {\pgf@sys@prevpos}{\the\pgf@x}{\pgf@sys@prevcolor}{\pgf@sys@cmyk}}}% + \edef\pgf@sys@prevpos{\the\pgf@x}% + \let\pgf@sys@prevcolor=\pgf@sys@cmyk% + \edef\pgf@psfuncs{\pgf@prevx\space \pgf@cmyk\space + \pgf@prevcolor\space pgfshade \pgf@psfuncs}% + \pgf@sys@bp@correct\pgf@x% + \edef\pgf@prevx{\pgf@sys@tonumber{\pgf@x}}% + \edef\pgf@bounds{\pgf@bounds\space\pgf@sys@tonumber{\pgf@x}}% + \edef\pgf@encode{\pgf@encode\space0 1}% + \edef\pgf@singlefunc{\space% + << /FunctionType 2 /Domain [0 1] /C0 + [\pgf@prevcolor] /C1 [\pgf@cmyk] /N 1 >> }% << + \edef\pgf@funcs{\pgf@funcs\space% + << /FunctionType 2 /Domain [\pgf@doma\space\pgf@domb] /C0 + [\pgf@prevcolor] /C1 [\pgf@cmyk] /N 1 >> }% << + \edef\pgf@prevcolor{\pgf@cmyk}% + \pgf@parserestcmyk[}} +\def\pgf@getcmyktuplewithmixin#1#2#3#4{% + \pgfutil@definecolor{pgfshadetemp}{cmyk}{#1,#2,#3,#4}% + \pgfutil@ifundefined{applycolormixins}{}{\applycolormixins{pgfshadetemp}}% + \pgfutil@extractcolorspec{pgfshadetemp}{\pgf@tempcolor}% + \expandafter\pgfutil@convertcolorspec\pgf@tempcolor{cmyk}{\pgf@cmykcolor}% + \expandafter\pgf@getcmyk@@\pgf@cmykcolor!} +\def\pgf@getcmyk@@#1,#2,#3,#4!{% + \def\pgf@cmyk{#1 #2 #3 #4}% + \def\pgf@sys@cmyk{{#1}{#2}{#3}{#4}}% +} +\def\pgf@parsefirstgray[gray(#1)=(#2)#3]{% + \pgfmathsetlength\pgf@x{#1}% + \edef\pgf@sys@shading@start@pos{\the\pgf@x}% + \pgf@sys@bp@correct\pgf@x% + \edef\pgf@doma{\pgf@sys@tonumber{\pgf@x}}% + \edef\pgf@prevx{\pgf@sys@tonumber{\pgf@x}}% + \pgf@getgraytuplewithmixin{#2}% + \edef\pgf@sys@shading@start@gray{\pgf@sys@gray}% + \let\pgf@sys@prevcolor=\pgf@sys@shading@start@gray% + \let\pgf@sys@prevpos=\pgf@sys@shading@start@pos% + \edef\pgf@prevcolor{\pgf@gray}% + \edef\pgf@firstcolor{\pgf@gray}} +\def\pgf@parselastdomgray[gray(#1)=(#2); {% + \pgfutil@ifnextchar]{% + \pgfmathsetlength\pgf@x{#1}% + \edef\pgf@sys@shading@end@pos{\the\pgf@x}% + \pgf@max=\pgf@x\relax% + \pgf@sys@bp@correct\pgf@x% + \edef\pgf@domb{\pgf@sys@tonumber{\pgf@x}}% + \pgf@getgraytuplewithmixin{#2}% + \edef\pgf@sys@shading@end@gray{\pgf@sys@gray}% + \pgfutil@gobble}{\pgf@parselastdomgray[}} +\def\pgf@parsemidgray[gray(#1)=(#2); {\pgf@parserestgray[} +\def\pgf@parserestgray[gray(#1)=(#2); {% + \advance\pgf@sys@shading@range@num by1\relax% + \pgfutil@ifnextchar]{% + \pgf@getgraytuplewithmixin{#2}% + \edef\pgf@singlefunc{\space% + << /FunctionType 2 /Domain [0 1] /C0 + [\pgf@prevcolor] /C1 [\pgf@gray] /N 1 >> }% << + \edef\pgf@funcs{\pgf@funcs\space% + << /FunctionType 2 /Domain [\pgf@doma\space\pgf@domb] /C0 + [\pgf@prevcolor] /C1 [\pgf@gray] /N 1 >> }% << + \edef\pgf@psfuncs{\pgf@prevx\space \pgf@gray\space + \pgf@prevcolor\space pgfshade \pgf@psfuncs}% + \pgfmathsetlength\pgf@x{#1}% + \edef\pgf@sys@shading@ranges{\pgf@sys@shading@ranges{% + {\pgf@sys@prevpos}{\the\pgf@x}{\pgf@sys@prevcolor}{\pgf@sys@gray}}}% + \edef\pgf@sys@prevpos{\the\pgf@x}% + \let\pgf@sys@prevcolor=\pgf@sys@gray% + \pgfutil@gobble}{% + \pgfmathsetlength\pgf@x{#1}% + \pgf@getgraytuplewithmixin{#2}% + \edef\pgf@sys@shading@ranges{\pgf@sys@shading@ranges{% + {\pgf@sys@prevpos}{\the\pgf@x}{\pgf@sys@prevcolor}{\pgf@sys@gray}}}% + \edef\pgf@sys@prevpos{\the\pgf@x}% + \let\pgf@sys@prevcolor=\pgf@sys@gray% + \edef\pgf@psfuncs{\pgf@prevx\space \pgf@gray\space + \pgf@prevcolor\space pgfshade \pgf@psfuncs}% + \pgf@sys@bp@correct\pgf@x% + \edef\pgf@prevx{\pgf@sys@tonumber{\pgf@x}}% + \edef\pgf@bounds{\pgf@bounds\space\pgf@sys@tonumber{\pgf@x}}% + \edef\pgf@encode{\pgf@encode\space0 1}% + \edef\pgf@singlefunc{\space% + << /FunctionType 2 /Domain [0 1] /C0 + [\pgf@prevcolor] /C1 [\pgf@gray] /N 1 >> }% << + \edef\pgf@funcs{\pgf@funcs\space% + << /FunctionType 2 /Domain [\pgf@doma\space\pgf@domb] /C0 + [\pgf@prevcolor] /C1 [\pgf@gray] /N 1 >> }% << + \edef\pgf@prevcolor{\pgf@gray}% + \pgf@parserestgray[}} +\def\pgf@getgraytuplewithmixin#1{% + \pgfutil@definecolor{pgfshadetemp}{gray}{#1}% + \pgfutil@ifundefined{applycolormixins}{}{\applycolormixins{pgfshadetemp}}% + \pgfutil@extractcolorspec{pgfshadetemp}{\pgf@tempcolor}% + \expandafter\pgfutil@convertcolorspec\pgf@tempcolor{gray}{\pgf@graycolor}% + \expandafter\pgf@getgray@@\pgf@graycolor!} +\def\pgf@getgray@@#1!{% + \def\pgf@gray{#1}% + \def\pgf@sys@gray{{#1}}% +} +\def\pgf@convertstring#1{% + \def\pgf@conv{}% + \pgf@convert#1]% + } +\def\pgf@convert{% + \pgfutil@ifnextchar]{\pgfutil@gobble}%done! + {% + \pgfutil@ifnextchar;{\pgf@grabsemicolor}% + {% + \pgfutil@ifnextchar c{\pgf@gobblec}% + {% + \pgfutil@ifnextchar g{\pgf@grabgray}% + {% + \pgfutil@ifnextchar o{\pgf@grabcolor}% + {% + \pgfutil@ifnextchar m{\pgf@grabcmyk}% + {% + \pgfutil@ifnextchar r{\pgf@grabrgb}% + {\pgferror{Illformed shading + specification}\pgf@convert}% + }% + }% + }% + }% + }% + }% +} +\def\pgf@grabsemicolor;{% + \edef\pgf@conv{\pgf@conv; }\pgf@convert} +\def\pgf@gobblec c{\pgf@convert} +\def\pgf@savecolor#1{ + \pgfutil@extractcolorspec{pgf@tempcol}{\pgf@tempcolor}% + \expandafter\pgfutil@convertcolorspec\pgf@tempcolor% + {\pgf@shading@model}{\pgf@color}% + \expandafter\pgf@convget@\expandafter{\pgf@color}{#1}% +} +\def\pgf@grabrgb rgb(#1)=(#2,#3,#4){% + \pgfutil@definecolor{pgf@tempcol}{rgb}{#2,#3,#4}% + \pgf@savecolor{#1}% +} +\def\pgf@grabcmyk myk(#1)=(#2,#3,#4,#5){% + \pgfutil@definecolor{pgf@tempcol}{cmyk}{#2,#3,#4,#5}% + \pgf@savecolor{#1}% +} +\def\pgf@grabgray gray(#1)=(#2){% + \pgfutil@definecolor{pgf@tempcol}{gray}{#2}% + \pgf@savecolor{#1}% +} +\def\pgf@grabcolor olor(#1)=(#2){% + \pgfutil@colorlet{pgf@tempcol}{#2}% + \pgf@savecolor{#1}% +} +\def\pgf@convget@#1#2{% + \edef\pgf@conv{\pgf@conv \pgf@shading@model(#2)=(#1)}\pgf@convert} +\newdimen\pgf@xd +\def\pgfshadecolortocmyk#1#2{% + \pgfutil@colorlet{pgf@tempcol}{#1}% + \pgfutil@extractcolorspec{pgf@tempcol}{\pgf@tempcolor}% + \expandafter\pgfutil@convertcolorspec\pgf@tempcolor{cmyk}{\pgf@cmykcolor}% + \expandafter\pgfshading@cmyk\pgf@cmykcolor\relax% + \edef#2{\pgf@sys@tonumber{\pgf@xa}\space\pgf@sys@tonumber{\pgf@xb}\space + \pgf@sys@tonumber{\pgf@xc}\space\pgf@sys@tonumber{\pgf@xd}\space}% + \c@pgf@counta\escapechar% + \escapechar-1\relax% + \expandafter\edef\csname\string#2cyan\endcsname{% + \pgf@sys@tonumber{\pgf@xa}\space}% + \expandafter\edef\csname\string#2magenta\endcsname{% + \pgf@sys@tonumber{\pgf@xb}\space}% + \expandafter\edef\csname\string#2yellow\endcsname{% + \pgf@sys@tonumber{\pgf@xc}\space}% + \expandafter\edef\csname\string#2black\endcsname{% + \pgf@sys@tonumber{\pgf@xd}\space}% + \escapechar\c@pgf@counta% +} +\def\pgfshading@cmyk#1,#2,#3,#4\relax{% + \pgf@xa=#1pt% + \pgf@xb=#2pt% + \pgf@xc=#3pt% + \pgf@xd=#4pt% +} +\def\pgfshadecolortogray#1#2{% + \pgfutil@colorlet{pgf@tempcol}{#1}% + \pgfutil@extractcolorspec{pgf@tempcol}{\pgf@tempcolor}% + \expandafter\pgfutil@convertcolorspec\pgf@tempcolor{gray}{\pgf@graycolor}% + \expandafter\pgfshading@gray\pgf@graycolor\relax% + \edef#2{\pgf@sys@tonumber{\pgf@xa}\space}% + \c@pgf@counta\escapechar% + \escapechar-1\relax% + \expandafter\edef\csname\string#2gray\endcsname{% + \pgf@sys@tonumber{\pgf@xa}\space}% + \escapechar\c@pgf@counta% +} +\def\pgfshading@gray#1\relax{% + \pgf@xa=#1pt% +} +\def\pgfdeclarehorizontalshading{% + \pgf@setup@model + \pgfutil@ifnextchar[% + \pgf@declarehorizontalshading{\pgf@declarehorizontalshading[]}} +\def\pgfdeclareverticalshading{% + \pgf@setup@model + \pgfutil@ifnextchar[% + \pgf@declareverticalshading{\pgf@declareverticalshading[]}} +\def\pgfdeclareradialshading{% + \pgf@setup@model + \pgfutil@ifnextchar[% + \pgf@declareradialshading{\pgf@declareradialshading[]}} +\def\pgfdeclarefunctionalshading{% + \pgf@setup@model + \pgfutil@ifnextchar[ + \pgf@declarefunctionalshading{\pgf@declarefunctionalshading[]}} +\def\pgfuseshading#1{% + \edef\pgf@shadingname{@pgfshading#1}% + \edef\pgf@shadingsavedmodel{@pgfshading#1@model}% + \pgf@tryextensions{\pgf@shadingname}{\pgfalternateextension}% + \expandafter\pgfutil@ifundefined\expandafter{\pgf@shadingname}% + {\pgferror{Undefined shading "#1"}}% + {% + {% + \pgf@setup@model + \pgfutil@globalcolorsfalse% + \def\pgf@shade@adds{}% + \pgfutil@ifundefined{pgf@deps\pgf@shadingname}% + {}% + {% + \edef\@list{\csname pgf@deps\pgf@shadingname\endcsname}% + \pgfutil@for\@temp:=\@list\do{% + {% + \pgfutil@ifundefined{applycolormixins}% + {}{\applycolormixins{\@temp}}% + \pgfutil@extractcolorspec{\@temp}{\pgf@tempcolor}% + \expandafter\pgfutil@ifundefined\expandafter{% + \pgf@shadingsavedmodel} + {\expandafter\pgfutil@convertcolorspec\pgf@tempcolor{% + \pgf@shading@model}{\pgf@color}}% + {\expandafter\pgfutil@convertcolorspec\pgf@tempcolor{% + \pgf@shadingsavedmodel}{\pgf@color}}% + \xdef\pgf@shade@adds{\pgf@shade@adds,\pgf@color}% + }% + }% + }% + \expandafter\pgf@strip@shadename\pgf@shadingname!!% + \pgfutil@ifundefined{@pgfshading\pgf@basename\pgf@shade@adds!}% + {% + {% + \expandafter\def\expandafter\@temp\expandafter{% + \csname pgf@func\pgf@shadingname\endcsname}% + \edef\@args{{\pgf@basename\pgf@shade@adds}}% + \expandafter\expandafter\expandafter\def% + \expandafter\expandafter\expandafter\@@args% + \expandafter\expandafter\expandafter{% + \csname pgf@args\pgf@shadingname\endcsname}% + \expandafter\expandafter\expandafter\@temp\expandafter\@args\@@args% + % + }% + }% + {}% + \pgf@invokeshading{% + \csname @pgfshading\pgf@basename\pgf@shade@adds!\endcsname}% + }% + }% +} +\newif\ifpgfshadingmodelrgb +\newif\ifpgfshadingmodelcmyk +\newif\ifpgfshadingmodelgray +\def\pgf@setup@model{% + \pgfshadingmodelrgbtrue + \pgfshadingmodelcmykfalse + \pgfshadingmodelgrayfalse + \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@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@model{cmyk}% + \pgfshadingmodelrgbfalse + \pgfshadingmodelcmyktrue + \else + \def\pgf@shading@functional@range{0 1 0 1 0 1}% + \def\pgf@shading@device{/DeviceRGB}% + \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@model{cmyk}% + \pgfshadingmodelrgbfalse + \pgfshadingmodelcmyktrue + \fi + \ifx\pgf@mod@test\XC@mod@gray + \def\pgf@shading@functional@range{0 1}% + \def\pgf@shading@device{/DeviceGray}% + \def\pgf@shading@model{gray}% + \pgfshadingmodelrgbfalse + \pgfshadingmodelgraytrue + \fi +} +\def\pgffuncshadingrgbtocmyk{% + 1.0 exch sub 3 1 roll + 1.0 exch sub 3 1 roll + 1.0 exch sub 3 1 roll + 3 copy + 2 copy gt { exch } if pop + 2 copy gt { exch } if pop + dup 3 1 roll sub + 0.0 2 copy lt { exch } if pop + 1.0 2 copy gt { exch } if pop + 4 1 roll + dup 3 1 roll sub + 0.0 2 copy lt { exch } if pop + 1.0 2 copy gt { exch } if pop + 4 1 roll + dup 3 1 roll sub + 0.0 2 copy lt { exch } if pop + 1.0 2 copy gt { exch } if pop + 4 1 roll +} +\def\pgffuncshadingrgbtogray{% + 0.11 mul exch 0.59 mul add exch 0.3 mul add +} +\def\pgffuncshadingcmyktorgb{% + % covert to CMY + dup 3 1 roll add + 1.0 2 copy gt { exch } if pop + 4 1 roll + dup 3 1 roll add + 1.0 2 copy gt { exch } if pop + 4 1 roll + add + 1.0 2 copy gt { exch } if pop + 3 1 roll + % covert to RGB + 1.0 exch sub + 3 1 roll + 1.0 exch sub + 3 1 roll + 1.0 exch sub + 3 1 roll +} +\def\pgffuncshadingcmyktogray{% + exch 0.11 mul add exch 0.59 mul add exch 0.3 mul add + 1.0 2 copy gt { exch } if pop + 1.0 exch sub +} +\def\pgffuncshadinggraytorgb{% + dup dup +} +\def\pgffuncshadinggraytocmyk{% + 0.0 0.0 0.0 + 4 3 roll +} +\def\pgfutilgetcmykshadingsdriver{% + \expandafter\pgfutil@getcmykshadingsdriver\pgfsysdriver[ +} +\def\pgfutil@getcmykshadingsdriver pgfsys-#1[{% + \edef\pgfsyscmykshadingsdriver{pgfsys-cmykshadings-#1}% +} +\pgfutilgetcmykshadingsdriver +\input\pgfsyscmykshadingsdriver +\newif\ifpgfcmykshadingdefault +\DeclareOption{cmyk}{% + \pgfcmykshadingdefaulttrue +} +\DeclareOption{rgb}{% + \pgfcmykshadin@defaultfalse +} +\ExecuteOptions{cmyk} +\ProcessOptions\relax +%% +%% +%% End of file `pgf-cmykshadings.sty'. diff --git a/Master/texmf-dist/tex/latex/pgf-cmykshadings/pgfsys-cmykshadings-dvipdfmx.def b/Master/texmf-dist/tex/latex/pgf-cmykshadings/pgfsys-cmykshadings-dvipdfmx.def new file mode 100644 index 00000000000..fe46ff69fa3 --- /dev/null +++ b/Master/texmf-dist/tex/latex/pgf-cmykshadings/pgfsys-cmykshadings-dvipdfmx.def @@ -0,0 +1,184 @@ +%% +%% This is file `pgfsys-cmykshadings-dvipdfmx.def', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% pgf-cmykshadings.dtx (with options: `dvipdfmx-driver') +%% +%% This is a generated file. +%% +%% Copyright (c) 2018 David Purton <dcpurton@marshwiggle.net> +%% +%% 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 is "maintained" (as per the LPPL maintenance status) +%% by David Purton. +%% +%% This work consists of the files pgf-cmykshadings.ins, +%% pgf-cmykshadings.dtx, README.md, and the derived files +%% - pgf-cmykshadings.sty +%% - pgfsys-cmykshadings-pdftex.def +%% - pgfsys-cmykshadgins-xetex.def +%% - pgfsys-cmykshadings-luatex.def +%% - pgfsys-cmykshadings-dvipdfmx.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 +%% shadings. +%% +\ProvidesFile{pgfsys-cmykshadings-dvipdfmx.def}% + [2018/10/17 CMYK shadings support for PGF dvipdfmx driver (DCP)] +\def\pgfsys@horishading#1#2#3{% + {% + \pgf@parsefunc{#3}% + \pgfmathparse{#2}% + \pgf@process{\pgfpoint{\pgf@max}{#2}}% + \edef\@tempa{\noexpand\pgfutil@insertatbegincurrentpagefrombox{% + \special{pdf:bxobj @pgfshade\the\pgfsys@objnum\space + width \the\pgf@max\space height \pgfmathresult pt}% + \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] >> >> + >>}% + \pgfsys@invoke{/Sh sh}% + \special{pdf:exobj}}}\@tempa% << + \expandafter\xdef\csname @pgfshading#1!\endcsname{% + \hbox to\the\pgf@max{\vbox to\pgfmathresult pt{% + \vfil\special{pdf:uxobj @pgfshade\the\pgfsys@objnum}}\hfil}}% + \expandafter\xdef\csname @pgfshading#1@model!\endcsname{% + \pgf@shading@model}% + }% + \global\advance\pgfsys@objnum\@ne% +} +\def\pgfsys@vertshading#1#2#3{% + {% + \pgf@parsefunc{#3}% + \pgfmathparse{#2}% + \pgf@process{\pgfpoint{\pgf@max}{#2}}% + \edef\@tempa{\noexpand\pgfutil@insertatbegincurrentpagefrombox{% + \special{pdf:bxobj @pgfshade\the\pgfsys@objnum\space + width \pgfmathresult pt\space height \the\pgf@max}% + \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] >> >> + >>}% + \pgfsys@invoke{/Sh sh}% + \special{pdf:exobj}}}\@tempa% << + \expandafter\xdef\csname @pgfshading#1!\endcsname{% + \hbox to\pgfmathresult pt{\vbox to\the\pgf@max{% + \vfil\special{pdf:uxobj @pgfshade\the\pgfsys@objnum}}\hfil}}% + \expandafter\xdef\csname @pgfshading#1@model!\endcsname{% + \pgf@shading@model}% + }% + \global\advance\pgfsys@objnum\@ne% +} +\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% + \advance\pgf@ya by \pgf@y% + \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% + \edef\@tempa{\noexpand\pgfutil@insertatbegincurrentpagefrombox{% + \special{pdf:bxobj @pgfshade\the\pgfsys@objnum\space + width \the\pgfutil@tempdima\space height \the\pgfutil@tempdima}% + \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] >> >> + >>}% + \pgfsys@invoke{/Sh sh}% + \special{pdf:exobj}}}\@tempa% << + \expandafter\xdef\csname @pgfshading#1!\endcsname{% + \hbox to\the\pgfutil@tempdima{\vbox to\the\pgfutil@tempdima{% + \vfil\special{pdf:uxobj @pgfshade\the\pgfsys@objnum}}\hfil}}% + \expandafter\xdef\csname @pgfshading#1@model!\endcsname{% + \pgf@shading@model}% + }% + \global\advance\pgfsys@objnum\@ne% +} +\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% + % Now build the function + \edef\@tempa{\noexpand\pgfutil@insertatbegincurrentpagefrombox{% + \special{pdf:stream @pgfstream\the\pgfsys@objnum\space({#4}) + <</FunctionType 4 /Domain [\pgf@sys@tonumber{\pgf@xa}\space + \pgf@sys@tonumber{\pgf@xb}\space + \pgf@sys@tonumber{\pgf@ya}\space + \pgf@sys@tonumber{\pgf@yb}] + /Range [\pgf@shading@functional@range]>>}}}\@tempa% + \edef\@tempa{\noexpand\pgfutil@insertatbegincurrentpagefrombox{% + \special{pdf:bxobj @pgfshade\the\pgfsys@objnum\space + width \the\pgf@x\space height \the\pgf@y}% + \special{pdf:put @resources <</Shading <</Sh <</ShadingType 1 + /ColorSpace \pgf@shading@device\space + /Matrix [1 0 0 1 \pgf@sys@tonumber{\pgf@xc}\space + \pgf@sys@tonumber{\pgf@yc}] + /Domain [\pgf@sys@tonumber{\pgf@xa}\space + \pgf@sys@tonumber{\pgf@xb}\space + \pgf@sys@tonumber{\pgf@ya}\space + \pgf@sys@tonumber{\pgf@yb}] + /Function @pgfstream\the\pgfsys@objnum>> >> >>}% + \pgfsys@invoke{/Sh sh}% + \special{pdf:exobj}}}\@tempa% << + \expandafter\xdef\csname @pgfshading#1!\endcsname{% + \leavevmode\hbox to\the\pgf@x{\vbox to\the\pgf@y{% + \vfil\special{pdf:uxobj @pgfshade\the\pgfsys@objnum}}\hfil}}% + \expandafter\xdef\csname @pgfshading#1@model!\endcsname{% + \pgf@shading@model}% + }% + \global\advance\pgfsys@objnum\@ne% +} +%% +%% +%% End of file `pgfsys-cmykshadings-dvipdfmx.def'. diff --git a/Master/texmf-dist/tex/latex/pgf-cmykshadings/pgfsys-cmykshadings-luatex.def b/Master/texmf-dist/tex/latex/pgf-cmykshadings/pgfsys-cmykshadings-luatex.def new file mode 100644 index 00000000000..08ab12cce8b --- /dev/null +++ b/Master/texmf-dist/tex/latex/pgf-cmykshadings/pgfsys-cmykshadings-luatex.def @@ -0,0 +1,169 @@ +%% +%% This is file `pgfsys-cmykshadings-luatex.def', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% pgf-cmykshadings.dtx (with options: `luatex-driver') +%% +%% This is a generated file. +%% +%% Copyright (c) 2018 David Purton <dcpurton@marshwiggle.net> +%% +%% 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 is "maintained" (as per the LPPL maintenance status) +%% by David Purton. +%% +%% This work consists of the files pgf-cmykshadings.ins, +%% pgf-cmykshadings.dtx, README.md, and the derived files +%% - pgf-cmykshadings.sty +%% - pgfsys-cmykshadings-pdftex.def +%% - pgfsys-cmykshadgins-xetex.def +%% - pgfsys-cmykshadings-luatex.def +%% - pgfsys-cmykshadings-dvipdfmx.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 +%% shadings. +%% +\ProvidesFile{pgfsys-cmykshadings-luatex.def}% + [2018/10/17 CMYK shadings support for PGF luatex driver (DCP)] +\def\pgfsys@horishading#1#2#3{% + {% + \pgf@parsefunc{#3}% + \pgfmathparse{#2}% + \setbox\pgfutil@tempboxa=\hbox to\pgf@max{% + \vbox to\pgfmathresult pt{\vfil\pgfsys@invoke{/Sh sh}}\hfil}% + \pgf@process{\pgfpoint{\pgf@max}{#2}}% + \immediate\saveboxresource 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] >> >>}\pgfutil@tempboxa% << + \expandafter\xdef\csname @pgfshading#1!\endcsname{% + \leavevmode\noexpand\useboxresource\the\lastsavedboxresourceindex}% + \expandafter\xdef\csname @pgfshading#1@model!\endcsname{% + \pgf@shading@model}% + }% +} +\def\pgfsys@vertshading#1#2#3{% + {% + \pgf@parsefunc{#3}% + \pgfmathparse{#2}% + \setbox\pgfutil@tempboxa=\hbox to\pgfmathresult pt{% + \vbox to\pgf@max{\vfil\pgfsys@invoke{/Sh sh}}\hfil}% + \pgf@process{\pgfpoint{#2}{\pgf@max}}% + \immediate\saveboxresource 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] >> >>}\pgfutil@tempboxa% << + \expandafter\xdef\csname @pgfshading#1!\endcsname{% + \leavevmode\noexpand\useboxresource\the\lastsavedboxresourceindex}% + \expandafter\xdef\csname @pgfshading#1@model!\endcsname{% + \pgf@shading@model}% + }% +} +\def\pgfsys@radialshading#1#2#3{% + {% + \pgf@parsefunc{#3}% + \setbox\pgfutil@tempboxa=\hbox to2\pgf@max{% + \vbox to2\pgf@max{\vfil\pgfsys@invoke{/Sh sh}}\hfil}% + \pgf@process{#2}% + \pgf@xa=\pgf@x% + \pgf@ya=\pgf@y% + \pgf@process{\pgfpoint{\pgf@max}{\pgf@max}}% + \advance\pgf@xa by \pgf@x% + \advance\pgf@ya by \pgf@y% + \pgf@sys@bp@correct{\pgf@x}% + \pgf@sys@bp@correct{\pgf@y}% + \pgf@sys@bp@correct{\pgf@xa}% + \pgf@sys@bp@correct{\pgf@ya}% + \immediate\saveboxresource 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] >> >>}\pgfutil@tempboxa% << + \expandafter\xdef\csname @pgfshading#1!\endcsname{% + \leavevmode\noexpand\useboxresource\the\lastsavedboxresourceindex}% + \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% + \setbox\pgfutil@tempboxa=\hbox to\pgf@x{% + \vbox to\pgf@y{\vfil\pgfsys@invoke{/Sh sh}}\hfil}% + \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% + % Now build the function + \pdfextension obj + stream + attr + { + /FunctionType 4 + /Domain [\pgf@sys@tonumber{\pgf@xa}\space + \pgf@sys@tonumber{\pgf@xb}\space + \pgf@sys@tonumber{\pgf@ya}\space + \pgf@sys@tonumber{\pgf@yb}] + /Range [\pgf@shading@functional@range] + } + {{#4}}% + \edef\pgf@temp@num{\the\numexpr\pdffeedback lastobj\relax}% + \saveboxresource resources {% + /Shading << /Sh << /ShadingType 1 + /ColorSpace \pgf@shading@device\space + /Matrix [1 0 0 1 \pgf@sys@tonumber{\pgf@xc}\space + \pgf@sys@tonumber{\pgf@yc}] + /Domain [\pgf@sys@tonumber{\pgf@xa}\space + \pgf@sys@tonumber{\pgf@xb}\space + \pgf@sys@tonumber{\pgf@ya}\space + \pgf@sys@tonumber{\pgf@yb}] + /Function \pgf@temp@num\space 0 R + >> >>}\pgfutil@tempboxa% << + \expandafter\xdef\csname @pgfshading#1!\endcsname{% + \leavevmode% + \noexpand\useboxresource\the\lastsavedboxresourceindex% + \noexpand\pdfextension refobj \pgf@temp@num% + }% + \expandafter\xdef\csname @pgfshading#1@model!\endcsname{% + \pgf@shading@model}% + }% +} +%% +%% +%% End of file `pgfsys-cmykshadings-luatex.def'. diff --git a/Master/texmf-dist/tex/latex/pgf-cmykshadings/pgfsys-cmykshadings-pdftex.def b/Master/texmf-dist/tex/latex/pgf-cmykshadings/pgfsys-cmykshadings-pdftex.def new file mode 100644 index 00000000000..24497e487b4 --- /dev/null +++ b/Master/texmf-dist/tex/latex/pgf-cmykshadings/pgfsys-cmykshadings-pdftex.def @@ -0,0 +1,169 @@ +%% +%% This is file `pgfsys-cmykshadings-pdftex.def', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% pgf-cmykshadings.dtx (with options: `pdftex-driver') +%% +%% This is a generated file. +%% +%% Copyright (c) 2018 David Purton <dcpurton@marshwiggle.net> +%% +%% 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 is "maintained" (as per the LPPL maintenance status) +%% by David Purton. +%% +%% This work consists of the files pgf-cmykshadings.ins, +%% pgf-cmykshadings.dtx, README.md, and the derived files +%% - pgf-cmykshadings.sty +%% - pgfsys-cmykshadings-pdftex.def +%% - pgfsys-cmykshadgins-xetex.def +%% - pgfsys-cmykshadings-luatex.def +%% - pgfsys-cmykshadings-dvipdfmx.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 +%% shadings. +%% +\ProvidesFile{pgfsys-cmykshadings-pdftex.def}% + [2018/10/17 CMYK shadings support for PGF pdftex driver (DCP)] +\def\pgfsys@horishading#1#2#3{% + {% + \pgf@parsefunc{#3}% + \pgfmathparse{#2}% + \setbox\pgfutil@tempboxa=\hbox to\pgf@max{% + \vbox to\pgfmathresult pt{\vfil\pgfsys@invoke{/Sh sh}}\hfil}% + \pgf@process{\pgfpoint{\pgf@max}{#2}}% + \immediate\pdfxform 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] >> >>}\pgfutil@tempboxa% << + \expandafter\xdef\csname @pgfshading#1!\endcsname{% + \leavevmode\noexpand\pdfrefxform\the\pdflastxform}% + \expandafter\xdef\csname @pgfshading#1@model!\endcsname{% + \pgf@shading@model}% + }% +} +\def\pgfsys@vertshading#1#2#3{% + {% + \pgf@parsefunc{#3}% + \pgfmathparse{#2}% + \setbox\pgfutil@tempboxa=\hbox to\pgfmathresult pt{% + \vbox to\pgf@max{\vfil\pgfsys@invoke{/Sh sh}}\hfil}% + \pgf@process{\pgfpoint{#2}{\pgf@max}}% + \immediate\pdfxform 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] >> >>}\pgfutil@tempboxa% << + \expandafter\xdef\csname @pgfshading#1!\endcsname{% + \leavevmode\noexpand\pdfrefxform\the\pdflastxform}% + \expandafter\xdef\csname @pgfshading#1@model!\endcsname{% + \pgf@shading@model}% + }% +} +\def\pgfsys@radialshading#1#2#3{% + {% + \pgf@parsefunc{#3}% + \setbox\pgfutil@tempboxa=\hbox to2\pgf@max{% + \vbox to2\pgf@max{\vfil\pgfsys@invoke{/Sh sh}}\hfil}% + \pgf@process{#2}% + \pgf@xa=\pgf@x% + \pgf@ya=\pgf@y% + \pgf@process{\pgfpoint{\pgf@max}{\pgf@max}}% + \advance\pgf@xa by \pgf@x% + \advance\pgf@ya by \pgf@y% + \pgf@sys@bp@correct{\pgf@x}% + \pgf@sys@bp@correct{\pgf@y}% + \pgf@sys@bp@correct{\pgf@xa}% + \pgf@sys@bp@correct{\pgf@ya}% + \immediate\pdfxform 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] >> >>}\pgfutil@tempboxa% << + \expandafter\xdef\csname @pgfshading#1!\endcsname{% + \leavevmode\noexpand\pdfrefxform\the\pdflastxform}% + \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% + \setbox\pgfutil@tempboxa=\hbox to\pgf@x{% + \vbox to\pgf@y{\vfil\pgfsys@invoke{/Sh sh}}\hfil}% + \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% + % Now build the function + \pdfobj + stream + attr + { + /FunctionType 4 + /Domain [\pgf@sys@tonumber{\pgf@xa}\space + \pgf@sys@tonumber{\pgf@xb}\space + \pgf@sys@tonumber{\pgf@ya}\space + \pgf@sys@tonumber{\pgf@yb}] + /Range [\pgf@shading@functional@range] + } + {{#4}}% + \edef\pgf@temp@num{\the\pdflastobj}% + \pdfxform resources {% + /Shading << /Sh << /ShadingType 1 + /ColorSpace \pgf@shading@device\space + /Matrix [1 0 0 1 \pgf@sys@tonumber{\pgf@xc}\space + \pgf@sys@tonumber{\pgf@yc}] + /Domain [\pgf@sys@tonumber{\pgf@xa}\space + \pgf@sys@tonumber{\pgf@xb}\space + \pgf@sys@tonumber{\pgf@ya}\space + \pgf@sys@tonumber{\pgf@yb}] + /Function \pgf@temp@num\space 0 R + >> >>}\pgfutil@tempboxa% << + \expandafter\xdef\csname @pgfshading#1!\endcsname{% + \leavevmode% + \noexpand\pdfrefxform\the\pdflastxform% + \noexpand\pdfrefobj\pgf@temp@num% + }% + \expandafter\xdef\csname @pgfshading#1@model!\endcsname{% + \pgf@shading@model}% + }% +} +%% +%% +%% End of file `pgfsys-cmykshadings-pdftex.def'. diff --git a/Master/texmf-dist/tex/latex/pgf-cmykshadings/pgfsys-cmykshadings-xetex.def b/Master/texmf-dist/tex/latex/pgf-cmykshadings/pgfsys-cmykshadings-xetex.def new file mode 100644 index 00000000000..037da007ab9 --- /dev/null +++ b/Master/texmf-dist/tex/latex/pgf-cmykshadings/pgfsys-cmykshadings-xetex.def @@ -0,0 +1,45 @@ +%% +%% This is file `pgfsys-cmykshadings-xetex.def', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% pgf-cmykshadings.dtx (with options: `xetex-driver') +%% +%% This is a generated file. +%% +%% Copyright (c) 2018 David Purton <dcpurton@marshwiggle.net> +%% +%% 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 is "maintained" (as per the LPPL maintenance status) +%% by David Purton. +%% +%% This work consists of the files pgf-cmykshadings.ins, +%% pgf-cmykshadings.dtx, README.md, and the derived files +%% - pgf-cmykshadings.sty +%% - pgfsys-cmykshadings-pdftex.def +%% - pgfsys-cmykshadgins-xetex.def +%% - pgfsys-cmykshadings-luatex.def +%% - pgfsys-cmykshadings-dvipdfmx.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 +%% shadings. +%% +\ProvidesFile{pgfsys-cmykshadings-xetex.def}% + [2018/10/17 CMYK shadings support for PGF xetex driver (DCP)] +\input pgfsys-cmykshadings-dvipdfmx.def +%% +%% +%% End of file `pgfsys-cmykshadings-xetex.def'. |