From 660cf44d2a0aee74bd6e69615fedfc57c966a260 Mon Sep 17 00:00:00 2001 From: Norbert Preining Date: Tue, 3 Jan 2023 03:01:37 +0000 Subject: CTAN sync 202301030301 --- graphics/pgf/contrib/pgf-cmykshadings/README.md | 99 - .../contrib/pgf-cmykshadings/pgf-cmykshadings.dtx | 2134 -------------------- .../contrib/pgf-cmykshadings/pgf-cmykshadings.ins | 75 - .../contrib/pgf-cmykshadings/pgf-cmykshadings.pdf | Bin 522385 -> 0 bytes 4 files changed, 2308 deletions(-) delete mode 100644 graphics/pgf/contrib/pgf-cmykshadings/README.md delete mode 100644 graphics/pgf/contrib/pgf-cmykshadings/pgf-cmykshadings.dtx delete mode 100644 graphics/pgf/contrib/pgf-cmykshadings/pgf-cmykshadings.ins delete mode 100644 graphics/pgf/contrib/pgf-cmykshadings/pgf-cmykshadings.pdf (limited to 'graphics') diff --git a/graphics/pgf/contrib/pgf-cmykshadings/README.md b/graphics/pgf/contrib/pgf-cmykshadings/README.md deleted file mode 100644 index 4af6b8b5c8..0000000000 --- a/graphics/pgf/contrib/pgf-cmykshadings/README.md +++ /dev/null @@ -1,99 +0,0 @@ -# pgf-cmykshadings — Support for CMYK and grayscale shadings in PGF/TikZ - -> **Note: This package is now deprecated. Support for CMYK and grayscale -> shadings was added to `pgf` in version 3.1.3. Attempting to load it with -> recent versions of `pgf` only changes the default shading colour model with -> the `xcolor` `natural` colour model to CMYK.** - -The `pgf-cmykshadings` package provides support for CMYK and grayscale shadings -for the `pgf` package. By default `pgf` only supports RGB shadings. -`pgf-cmykshadings` attempts to produce shadings consistent with the currently -selected `xcolor` colour model. The `rgb`, `cmyk`, and `gray` colour models -from the `xcolor` package are supported. - -## Installation from TeXLive or MiKTeX - -`pgf-cmykshadings` is in TeXLive and MiKTeX and can be installed in the usual -way through your distribution. e.g., in TeXLive by running: - -``` -tlmgr install pgf-cmykshadings -``` - -## Installation from CTAN - -Download and unpack `pgf-cmykshadings.zip` from CTAN at -https://ctan.org/pkg/pgf-cmykshadings - -Change to the `pgf-cmykshadings` directory, then run: - -``` -tex pgf-cmykshadings.ins -``` - -to generate the style file (`pgf-cmykshadigns.sty`) and driver files -(`pgfsys-cmykshadings-*.def`). - -Copy these generated files to `$TEXMFHOME/tex/latex/pgf-cmykshadings/` and -`pgf-cmykshadings.pdf` to `$TEXMFHOME/doc/latex/pgf-cmykshadings/`. - -You can find `$TEXMFHOME` by running: - -``` -kpsewhich -var-value=TEXMFHOME -``` - -## Installation from Git Source - -`pgf-cmykshadings` uses the `l3build` system. - -Clone the git repository using: - -``` -git clone https://github.com/dcpurton/pgf-cmykshadings.git -``` - -Change to the `pgf-cmykshadings` directory, and then the package and -documentation can be installed by running: - -``` -l3build install --full -``` - -## Licence - -``` -Copyright (c) 2018-2019 David Purton - -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-cmykshadings-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 -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. -``` - diff --git a/graphics/pgf/contrib/pgf-cmykshadings/pgf-cmykshadings.dtx b/graphics/pgf/contrib/pgf-cmykshadings/pgf-cmykshadings.dtx deleted file mode 100644 index 4842cd1eda..0000000000 --- a/graphics/pgf/contrib/pgf-cmykshadings/pgf-cmykshadings.dtx +++ /dev/null @@ -1,2134 +0,0 @@ -% \iffalse meta-comment -% -%Copyright (c) 2018-2019 David Purton -% -%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. -% -%<*driver> -\documentclass[a4paper]{l3doc} -\usepackage{microtype} -\usepackage{pgf-cmykshadings} -\usepackage{tikz} -\usepackage{listings} -\lstset{frame=single,basicstyle=\footnotesize\ttfamily} -\begin{document} -\DocInput{\jobname.dtx} -\end{document} -% -% \fi -% -% \changes{v1.0}{2018/10/17}{First public release} -% \changes{v1.2}{2019/11/05}{Deprecate package} -% -% \title{The \pkg{pgf-cmykshadings} package} -% \author{David Purton\thanks{Email: \url{dcpurton@marshwiggle.net}}} -% \date{2019/11/05 v1.2} -% -% \maketitle -% -% \begin{abstract} -% \textbf{Note: This package is now deprecated. Support for CMYK and grayscale -% shadings was added to \pkg{pgf} in version 3.1.3. Attempting to load it with -% recent versions of \pkg{pgf} only changes the default shading colour model -% with the \pkg{xcolor} |natural| colour model to CMYK. This documentation -% applies to versions of \pkg{pgf} prior to 3.1.3.}\medskip -% -% 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. \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 -% -% \begin{documentation} -% -% \section{Introduction} -% -% The \pkg{pgf} package, and other packages built on top of it, only support RGB -% shadings (colour gradients). This means that printing applications requiring -% CMYK shadings can not easily be produced. It also can lead to unexpected -% colour mismatches in documents when attempting to define a shading from -% colours defined in CMYK. This can occur when the |natural| colour model of the -% \pkg{xcolor} package is in use and colours like cyan and magenta are defined -% as CMYK. An attempt to produce a shading using these colours will be -% silently converted to RGB, but RGB cyan and RGB magenta look significantly -% different from CMYK cyan and magenta. This is a significant cause of -% confusion for end users. -% -% The following example illustrates this problem and the corresponding solution -% provided by the \pkg{pgf-cmykshadings} package. -% -% \begin{quote} -% \iffalse -%<*example> -% \fi -\begin{lstlisting} -\begin{tikzpicture} - \fill[cyan] (0,0) rectangle (1,1); - \shade[left color=cyan, right color=magenta] - (1.25,0) rectangle (3.75,1); - \fill[magenta] (4,0) rectangle (5,1); -\end{tikzpicture} -\end{lstlisting} -% \iffalse -% -% \fi -% -% \begin{minipage}{0.45\linewidth} -% \pkg{pgf} behaviour:\medskip -% -% \pgfcmykshadingdefaultfalse -% \begin{tikzpicture} -% \fill[cyan] (0,0) rectangle (1,1); -% \shade[left color=cyan, right color=magenta] -% (1.25,0) rectangle (3.75,1); -% \fill[magenta] (4,0) rectangle (5,1); -% \end{tikzpicture} -% \end{minipage}\hfill -% \begin{minipage}{0.45\linewidth} -% \pkg{pgf-cmykshadings} behaviour:\medskip -% -% \pgfcmykshadingdefaulttrue -% \begin{tikzpicture} -% \fill[cyan] (0,0) rectangle (1,1); -% \shade[left color=cyan, right color=magenta] -% (1.25,0) rectangle (3.75,1); -% \fill[magenta] (4,0) rectangle (5,1); -% \end{tikzpicture} -% \end{minipage} -% \end{quote} -% -% \section{Acknowledgements} -% -% Substantial parts of the code for the \pkg{pgf-cmykshadings} package are -% 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} -% -% Bug reports and feature requests can be made at the \pkg{pgf-cmykshadings} -% package GitHub respoitory. See -% \url{https://github.com/dcpurton/pgf-cmykshadings}. -% -% \section{Documentation} -% -% \subsection{Basic Usage} -% -% All that is required to use CMYK shadings instead of RGB shadings is to -% include the package in your document preamble: -% \begin{quote} -% \iffalse -%<*example> -% \fi -\begin{lstlisting} -\usepackage{pgf-cmykshadings} -\end{lstlisting} -% \iffalse -% -% \fi -% \end{quote} -% However, there are some caveats in using the package, which are outlined -% below. -% -% \subsubsection{Package options} -% -% \pkg{pgf-cmykshadings} supports the following package options: -% -% \begin{description} -% \item[\mdseries |cmyk|] (default) to use CMYK shadings when the \pkg{xcolor} -% package |natural| colour model is in use. -% \item[\mdseries |rgb|] to use RGB shadings when the \pkg{xcolor} package -% |natural| colour model is in use. -% \end{description} -% -% \subsubsection{Load order} -% -% \pkg{pgf-cmykshadings} should be loaded \emph{before} any shadings are defined -% otherwise these will be defined as RGB. This means you should load -% \pkg{pgf-cmykshadings} before (for example) \pkg{tikz} and \pkg{beamer}. -% -% If you want to pass custom options to \pkg{xcolor} (e.g., a colour model or -% set of named colours), you should load \pkg{pgf-cmykshadings} \emph{after} -% \pkg{xcolor} or use \cs{PassOptionsToPackage} \emph{before} loading -% \pkg{pgf-cmykshadings}. -% -% \subsubsection{Colour models} -% -% \pkg{pgf-cmykshadings} attempts to produce shadings consistent with the -% currently selected \pkg{xcolor} package colour model. The |rgb|, |cmyk|, and -% |gray| colour models from the \pkg{xcolor} package are supported. -% -% \textbf{Note:} The colour model chosen for a shading is based on the -% \pkg{xcolor} colour model \emph{at the time the shading is created}. This is -% either when \cs{pgfdeclare*shading} is called with no optional argument or -% when \cs{pgfuseshading} is called if \cs{pgfdeclare*shading} was called with -% an optional argument. -% -% If the \pkg{xcolor} package |natural| colour model is in use then the shading -% colour model will be CMYK by default (equivalent to passing the |cmyk| option -% to the \pkg{pgf-cmykshadings} package). RGB shadings can be output by default -% instead by passing the |rgb| option to the \pkg{pgf-cmykshadings} package. -% -% In practice this means that if you are using the |natural| colour model of the -% \pkg{xcolor} package you can still get mismatched colours if you, for example, -% create a shading from green (which is defined as RGB) to magenta (which is -% defined as CMYK). The shading has to pick one colour model and will look -% different to one of the solid colours. -% -% For this reason it is recommended to always load the \pkg{xcolor} package -% before the \pkg{pgf-cmykshadings} package with either the |rgb|, |cmyk|, or -% |gray| options to avoid colour surprises. -% -% \begin{quote} -% \iffalse -%<*example> -% \fi -\begin{lstlisting} -\begin{tikzpicture} - \fill[green] (0,0) rectangle (1,1); - \shade[left color=green, right color=magenta] - (1.25,0) rectangle (3.75,1); - \fill[magenta] (4,0) rectangle (5,1); -\end{tikzpicture} -\end{lstlisting} -% \iffalse -% -% \fi -% -% \begin{minipage}{0.45\linewidth} -% \pkg{xcolor} |natural| colour model:\medskip -% -% \begin{tikzpicture} -% \fill[green] (0,0) rectangle (1,1); -% \shade[left color=green, right color=magenta] -% (1.25,0) rectangle (3.75,1); -% \fill[magenta] (4,0) rectangle (5,1); -% \end{tikzpicture} -% \end{minipage}\hfill -% \begin{minipage}{0.45\linewidth} -% \pkg{xcolor} |cmyk| colour model:\medskip -% -% \selectcolormodel{cmyk} -% \begin{tikzpicture} -% \fill[green] (0,0) rectangle (1,1); -% \shade[left color=green, right color=magenta] -% (1.25,0) rectangle (3.75,1); -% \fill[magenta] (4,0) rectangle (5,1); -% \end{tikzpicture} -% \end{minipage}\medskip -% -% \begin{minipage}{0.45\linewidth} -% \pkg{xcolor} |rgb| colour model:\medskip -% -% \selectcolormodel{rgb} -% \begin{tikzpicture} -% \fill[green] (0,0) rectangle (1,1); -% \shade[left color=green, right color=magenta] -% (1.25,0) rectangle (3.75,1); -% \fill[magenta] (4,0) rectangle (5,1); -% \end{tikzpicture} -% \end{minipage}\hfill -% \begin{minipage}{0.45\linewidth} -% \pkg{xcolor} |gray| colour model:\medskip -% -% \selectcolormodel{gray} -% \begin{tikzpicture} -% \fill[green] (0,0) rectangle (1,1); -% \shade[left color=green, right color=magenta] -% (1.25,0) rectangle (3.75,1); -% \fill[magenta] (4,0) rectangle (5,1); -% \end{tikzpicture} -% \end{minipage} -% \end{quote} -% -% \subsubsection{Functional shadings} -% -% By nature, the PostScript® code used to generate functional shadings must -% output either RGB or CMYK data. For this reason, -% \cs{pgfdeclarefunctionalshading} is \emph{not} portable across colour models. -% -% Take particular care that the same colour model is in use at declaration time -% and use time for functional shadings declared with an optional argument as -% otherwise the PostScript® data will not match the declared colour space and -% you will end up with a malformed PDF. -% -% This also means that you should \emph{not} use the functional shadings from -% the \pkg{tikz} shading library (|bilinear interpolation|, |color wheel|, -% |color wheel black center|, |color wheel white center|, and |Mandelbrot set|) -% except when the \pkg{xcolor} |rgb| colour model is in use, otherwise you will -% end up with a malformed PDF. -% -% Having said this, it \emph{is} possible to create portable functional shadings -% by providing conditional code to append colour transformations to the -% PostScript® data. A variety of \cs{pgffuncshading*to*} (e.g., -% \cs{pgffuncshadingrgbtocmyk}) macros along with \cs{ifpgfshadingmodel*} (e.g., -% \cs{ifpgfshadingmodelcmyk}) conditionals are provided to assist with these -% transformations. -% -% \begin{quote} -% \iffalse -%<*example> -% \fi -\begin{lstlisting} -\pgfdeclarefunctionalshading[black]{twospots} - {\pgfpointorigin}{\pgfpoint{3.5cm}{3.5cm}}{}{ - 2 copy - 45 sub dup mul exch - 40 sub dup mul 0.5 mul add sqrt - dup mul neg 1.0005 exch exp 1.0 exch sub - 3 1 roll - 70 sub dup mul .5 mul exch - 70 sub dup mul add sqrt - dup mul neg 1.002 exch exp 1.0 exch sub - 1.0 3 1 roll - \ifpgfshadingmodelcmyk - \pgffuncshadingrgbtocmyk - \fi - \ifpgfshadingmodelgray - \pgffuncshadingrgbtogray - \fi -} -\end{lstlisting} -% \iffalse -% -% \fi -% -% \pgfdeclarefunctionalshading[black]{twospots} -% {\pgfpointorigin}{\pgfpoint{3.5cm}{3.5cm}}{}{ -% 2 copy -% 45 sub dup mul exch -% 40 sub dup mul 0.5 mul add sqrt -% dup mul neg 1.0005 exch exp 1.0 exch sub -% 3 1 roll -% 70 sub dup mul .5 mul exch -% 70 sub dup mul add sqrt -% dup mul neg 1.002 exch exp 1.0 exch sub -% 1.0 3 1 roll -% \ifpgfshadingmodelcmyk -% \pgffuncshadingrgbtocmyk -% \fi -% \ifpgfshadingmodelgray -% \pgffuncshadingrgbtogray -% \fi -% } -% -% \begin{minipage}{0.3\linewidth} -% \pkg{xcolor} |cmyk| model:\medskip -% -% \selectcolormodel{cmyk} -% \pgfuseshading{twospots} -% \end{minipage}\hfill -% \begin{minipage}{0.3\linewidth} -% \pkg{xcolor} |rgb| model:\medskip -% -% \selectcolormodel{rgb} -% \pgfuseshading{twospots} -% \end{minipage}\hfill -% \begin{minipage}{0.3\linewidth} -% \pkg{xcolor} |gray| model:\medskip -% -% \selectcolormodel{gray} -% \pgfuseshading{twospots} -% \end{minipage} -% \end{quote} -% -% -% \subsection{Main Interface} -% -% \subsubsection{Declaring shadings} -% -% The four standard \pkg{pgf} functions for declaring shadings are supported -% as documented in the \pkg{pgf} manual. -% -% There is one extension provided by the \pkg{pgf-cmykshadings} package. It is -% possible to specify CMYK colours directly in the colour specification -% argument using a syntax analogous to the RGB, Gray, and named colours -% already supported by the \pkg{pgf} package. i.e., -% |cmyk(|\meta{position}|)=(|\meta{C}|,|\meta{M}|,|\meta{Y}|,|\meta{K}|)|. -% -% Shadings declared \emph{without} an optional argument are created -% immediately in the currently active \pkg{xcolor} colour model. Shadings -% declared \emph{with} and optional argument are created at the time they are -% actually used (using \cs{pgfuseshading}). -% -% \begin{function}{\pgfdeclarehorizontalshading} -% \begin{syntax} -% \cs{pgfdeclarehorizontalshading}\oarg{color list}\marg{shading name}\marg{shading height}\marg{color specification} -% \end{syntax} -% Declare a horizontal shading. -% \end{function} -% -% \begin{function}{\pgfdeclareverticalshading} -% \begin{syntax} -% \cs{pgfdeclareverticalshading}\oarg{color list}\marg{shading name}\marg{shading width}\marg{color specification} -% \end{syntax} -% Declare a vertical shading. -% \end{function} -% -% \begin{function}{\pgfdeclareradialshading} -% \begin{syntax} -% \cs{pgfdeclareradialshading}\oarg{color list}\marg{shading name}\marg{center point}\marg{color specification} -% \end{syntax} -% Declare a radial shading. -% \end{function} -% -% \begin{function}{\pgfdeclarefunctionalshading} -% \begin{syntax} -% \cs{pgfdeclarefunctionalshading}\oarg{color list}\marg{shading name}\marg{lower left corner}\marg{upper right corner}\marg{init code}\marg{type 4 function} -% \end{syntax} -% Declare a functional shading. -% \end{function} -% -% \subsubsection{Using shadings} -% -% Shadings are used as documented in the \pkg{pgf} manual. -% -% \begin{function}{\pgfuseshading} -% \begin{syntax} -% \cs{pgfuseshading}\marg{shading name} -% \end{syntax} -% Use a previously declared shading. If the specified shading was declared -% with an optional argument, then the shading will be created at this point -% in the currently active \pkg{xcolor} colour space. -% \end{function} -% -% \begin{function}{\pgfshadepath} -% \begin{syntax} -% \cs{pgfshadepath}\marg{shading name}\marg{angle} -% \end{syntax} -% Shade the currently active \pkg{pgf} path using the specified shading at -% the specified angle. -% \end{function} -% -% \begin{function}{\pgfadditionalshadetransform} -% \begin{syntax} -% \cs{pgfadditionalshadetransform}\marg{transformation} -% \end{syntax} -% This command is used to specify an additional transformation that should -% be applied to shadings when \cs{pgfshadepath} used. -% \end{function} -% -% \subsubsection{Utility functions} -% -% The following functions are mainly useful for in declaring functional -% shadings. -% -% \begin{function}{\pgfshadecolortorgb} -% \begin{syntax} -% \cs{pgfshadecolortorgb}\marg{color name}\marg{macro} -% \end{syntax} -% This command takes \meta{color name} as input and stores the colour's -% red/green/blue components as real numbers between 0.0 and 1.0 separated by -% spaces (which is exactly what you need if you want to push it on a stack) -% in \meta{macro}. This macro can then be used inside the \meta{type 4 -% function} argument for \cs{pgfdeclarefunctionalshading}. -% -% In addition, three macros suffixed with |red|, |green| and |blue| are -% defined, which store the individual components of \meta{color name}. These -% can also be used in the \meta{type 4 function} argument. -% \end{function} -% -% \begin{function}{\pgfshadecolortocmyk} -% \begin{syntax} -% \cs{pgfshadecolortocmyk}\marg{color name}\marg{macro} -% \end{syntax} -% This command is analogous to \cs{pgfshadecolortorgb}, but stores the -% colour's cyan/magenta/yellow/black components. Four macros suffixed with -% |cyan|, |magenta|, |yellow|, and |black| are also defined. -% \end{function} -% -% \begin{function}{\pgfshadecolortogray} -% \begin{syntax} -% \cs{pgfshadecolortogray}\marg{color name}\marg{macro} -% \end{syntax} -% This command is analogous to \cs{pgfshadecolortorgb}, but stores the -% colour's gray component. Although it's not needed, for consistency a -% second macro suffixed with |gray| is also defined. -% \end{function} -% -% \begin{function}{\pgffuncshadingrgbtocmyk} -% \begin{syntax} -% \cs{pgffuncshadingrgbtocmyk} -% \end{syntax} -% Within the \meta{type 4 function} argument of -% \cs{pgfdeclarefunctionalshading}, this command can be used to convert the -% top 3 elements on the stack from RGB to CMYK. In combination with the -% \cs{ifpgfshadingmodelcmyk} conditional this macro can be used to make -% functional shading declarations more portable across colour models. -% \end{function} -% -% \begin{function}{\pgffuncshadingrgbtogray} -% \begin{syntax} -% \cs{pgffuncshadingrgbtogray} -% \end{syntax} -% Within the \meta{type 4 function} argument of -% \cs{pgfdeclarefunctionalshading}, this command can be used to convert the -% top 3 elements on the stack from RGB to grayscale. In combination with the -% \cs{ifpgfshadingmodelgray} conditional this macro can be used to make -% functional shading declarations more portable across colour models. -% \end{function} -% -% \begin{function}{\pgffuncshadingcmyktorgb} -% \begin{syntax} -% \cs{pgffuncshadingcmyktorgb} -% \end{syntax} -% Within the \meta{type 4 function} argument of -% \cs{pgfdeclarefunctionalshading}, this command can be used to convert the -% top 4 elements on the stack from CMYK to RGB. In combination with the -% \cs{ifpgfshadingmodelrgb} conditional this macro can be used to make -% functional shading declarations more portable across colour models. -% \end{function} -% -% \begin{function}{\pgffuncshadingcmyktogray} -% \begin{syntax} -% \cs{pgffuncshadingcmyktogray} -% \end{syntax} -% Within the \meta{type 4 function} argument of -% \cs{pgfdeclarefunctionalshading}, this command can be used to convert the -% top 4 elements on the stack from CMYK to grayscale. In combination with -% the \cs{ifpgfshadingmodelgray} conditional this macro can be used to make -% functional shading declarations more portable across colour models. -% \end{function} -% -% \begin{function}{\pgffuncshadinggraytorgb} -% \begin{syntax} -% \cs{pgffuncshadinggraytorgb} -% \end{syntax} -% Within the \meta{type 4 function} argument of -% \cs{pgfdeclarefunctionalshading}, this command can be used to convert the -% top element on the stack from grayscale to RGB. In combination with the -% \cs{ifpgfshadingmodelrgb} conditional this macro can be used to make -% functional shading declarations more portable across colour models. -% \end{function} -% -% \begin{function}{\pgffuncshadinggraytocmyk} -% \begin{syntax} -% \cs{pgffuncshadinggraytocmyk} -% \end{syntax} -% Within the \meta{type 4 function} argument of -% \cs{pgfdeclarefunctionalshading}, this command can be used to convert the -% top element on the stack from grayscale to CMYK. In combination with the -% \cs{ifpgfshadingmodelcmyk} conditional this macro can be used to make -% functional shading declarations more portable across colour models. -% \end{function} -% -% \begin{function}{\ifpgfshadingmodelrgb} -% \begin{syntax} -% \cs{ifpgfshadingmodelrgb} -% \end{syntax} -% Within the \meta{type 4 function} argument of -% \cs{pgfdeclarefunctionalshading}, this command can be used to test if the -% \pkg{xcolor} colour model is |rgb| \emph{at the time the shading is -% created}. This can be used to ensure that the data output in the -% \meta{type 4 function} correctly matches the active colour model. -% \end{function} -% -% \begin{function}{\ifpgfshadingmodelcmyk} -% \begin{syntax} -% \cs{ifpgfshadingmodelcmyk} -% \end{syntax} -% Within the \meta{type 4 function} argument of -% \cs{pgfdeclarefunctionalshading}, this command can be used to test if the -% \pkg{xcolor} colour model is |cmyk| \emph{at the time the shading is -% created}. This can be used to ensure that the data output in the -% \meta{type 4 function} correctly matches the active colour model. -% \end{function} -% -% \begin{function}{\ifpgfshadingmodelgray} -% \begin{syntax} -% \cs{ifpgfshadingmodelgray} -% \end{syntax} -% Within the \meta{type 4 function} argument of -% \cs{pgfdeclarefunctionalshading}, this command can be used to test if the -% \pkg{xcolor} colour model is |gray| \emph{at the time the shading is -% created}. This can be used to ensure that the data output in the -% \meta{type 4 function} correctly matches the active colour model. -% \end{function} -% -% \end{documentation} -% -% \begin{implementation} -% -% \section{Implementation} -% -% \subsection{Main Package} -% -% \begin{macrocode} -%<*package> -% \end{macrocode} -% -% \begin{macrocode} -\ProvidesPackage{pgf-cmykshadings}% - [2019/11/05 - CMYK and grayscale shadings support for PGF (DCP)] -% \end{macrocode} -% -% \begin{macrocode} -\RequirePackage{pgf} -% \end{macrocode} -% -% Set colour model to CMYK by default if version of \pkg{pgf} is at least -% 3.1.3 then |\endinput|. -% -% \begin{macrocode} -\@ifpackagelater{pgf}{2019/05/14}{% - \PackageWarning{pgf-cmykshadings}{% - Package `pgf-cmykshadings' is now deprecated.}% - \newif\ifpgfcmykshadingdefault - \DeclareOption{cmyk}{% - \pgfcmykshadingdefaulttrue - } - \DeclareOption{rgb}{% - \pgfcmykshadingdefaultfalse - } - \ExecuteOptions{cmyk} - \ProcessOptions\relax - \def\pgf@setup@shading@model{% - \pgfshadingmodelrgbtrue - \pgfshadingmodelcmykfalse - \pgfshadingmodelgrayfalse - \XC@sdef\pgf@mod@test{\XC@tgt@mod{natural}}% - \def\pgf@shading@device{/DeviceRGB}% - \def\pgf@shading@ps@device{setrgbcolor}% - \def\pgf@shading@functional@range{0 1 0 1 0 1}% - \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@device{/DeviceCMYK}% - \def\pgf@shading@ps@device{setcmykcolor}% - \def\pgf@shading@functional@range{0 1 0 1 0 1 0 1}% - \def\pgf@shading@model{cmyk}% - \pgfshadingmodelrgbfalse - \pgfshadingmodelcmyktrue - \fi - \ifx\pgf@mod@test\XC@mod@gray - \def\pgf@shading@device{/DeviceGray}% - \def\pgf@shading@ps@device{setgray}% - \def\pgf@shading@functional@range{0 1}% - \def\pgf@shading@model{gray}% - \pgfshadingmodelrgbfalse - \pgfshadingmodelgraytrue - \fi - \edef\pgf@sys@driver@dvisvgm{pgfsys-dvisvgm.def}% - \ifx\pgfsysdriver\pgf@sys@driver@dvisvgm - \def\pgf@shading@model{rgb}% - \fi - \edef\pgf@sys@driver@texforht{pgfsys-tex4ht.def}% - \ifx\pgfsysdriver\pgf@sys@driver@texforht - \def\pgf@shading@model{rgb}% - \fi - }% - \endinput}{} -% \end{macrocode} -% -% \noindent Replace dependence on \cs{pgf@convertrgbstring} and -% \cs{pgf@rgbconv} with generic macros \cs{pgf@convertstring} and -% \cs{pgf@conv}. -% -% \begin{macrocode} -\def\pgf@parsefunc#1{% - \edef\temp{{#1}}% - \expandafter\pgf@convertstring\temp% - \edef\temp{{\pgf@conv}}% - \expandafter\pgf@@parsefunc\temp} -% \end{macrocode} -% -% \noindent Replace RGB parsing macros with new macros selected on the basis -% of the current colour space (\cs{pgf@shading@mode}). -% -% \begin{macrocode} -\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}% - } -% \end{macrocode} -% -% \noindent Define RGB parsing macros. -% -% \begin{macrocode} -\let\pgf@parsefirstrgb\pgf@parsefirst -\let\pgf@parselastdomrgb\pgf@parselastdom -\let\pgf@parsemidrgb\pgf@parsemid -\let\pgf@parserestrgb\pgf@parserest -% \end{macrocode} -% -% \noindent Define new CMYK parsing macros. -% -% \begin{macrocode} -\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}}% -} -% \end{macrocode} -% -% \noindent Define new grayscale parsing macros. -% -% \begin{macrocode} -\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}}% -} -% \end{macrocode} -% -% \noindent Define new colour space agnostic colour specification parsing -% macros. This includes parsing CMYK colour specifications (i.e., -% |color(|\meta{postition}|)=(|\meta{C}|,|\meta{M}|,|\meta{Y}|,|\meta{K}|)|. -% -% \begin{macrocode} -\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} -% \end{macrocode} -%\changes{v1.1a}{2018/10/24}{Fix missing percent sign} -% \begin{macrocode} -\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} -% \end{macrocode} -% -% \noindent New macros to convert CMYK colours to a format suitable for use in -% the \meta{type 4 function} argument of \cs{pgfdeclarefunctionalshading}. -% -% \begin{macrocode} -\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% -} -% \end{macrocode} -% -% \noindent New macros to convert grayscale colours to a format suitable for -% use in the \meta{type 4 function} argument of -% \cs{pgfdeclarefunctionalshading}. -% -% \begin{macrocode} -\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% -} -% \end{macrocode} -% -% \noindent Ensure colour model is set up based on the current \pkg{xcolor} -% colour model when declaring shadings. -% -% \begin{macrocode} -\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[]}} -% \end{macrocode} -% -% \noindent Ensure colour model is set up based on the current \pkg{xcolor} -% colour model when using shadings. -% -% \begin{macrocode} -\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}% - }% - }% -} -% \end{macrocode} -% -% \noindent Conditionals for use in the \meta{type 4 function} argument of -% \cs{pgfdeclarefunctionalshading} to test for the currently active -% \pkg{xcolor} colour model. -% -% \begin{macrocode} -\newif\ifpgfshadingmodelrgb -\newif\ifpgfshadingmodelcmyk -\newif\ifpgfshadingmodelgray -% \end{macrocode} -% -% \noindent Shading colour space property set up based on the currently active -% \pkg{xcolor} colour model. -% -% \begin{macrocode} -\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@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 - \fi - \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} -% -% \noindent Converters for use in the \meta{type 4 function} argument of -% \cs{pgfdeclarefunctionalshading}. These macros use the same algorithms as -% \pkg{xcolor}. -% -% \begin{macrocode} -\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 -} -% \end{macrocode} -% -% \noindent Load the correct driver file. -% -% \begin{macrocode} -\def\pgfutilgetcmykshadingsdriver{% - \expandafter\pgfutil@getcmykshadingsdriver\pgfsysdriver[% -} -\def\pgfutil@getcmykshadingsdriver pgfsys-#1[{% - \edef\pgfsyscmykshadingsdriver{pgfsys-cmykshadings-#1}% -} -\pgfutilgetcmykshadingsdriver -\pgfutil@InputIfFileExists{\pgfsyscmykshadingsdriver}{}{} -% \end{macrocode} -% -% \noindent Style options to use CMYK shadings by default or not when the -% selected \pkg{xcolor} colour model is |natural|. -% -% \begin{macrocode} -\newif\ifpgfcmykshadingdefault -\DeclareOption{cmyk}{% - \pgfcmykshadingdefaulttrue -} -% \end{macrocode} -% \changes{v1.1}{2018/10/18}{Fix typo for {\ttfamily rgb} option} -% \begin{macrocode} -\DeclareOption{rgb}{% - \pgfcmykshadingdefaultfalse -} -\ExecuteOptions{cmyk} -\ProcessOptions\relax -% \end{macrocode} -% -% \begin{macrocode} -% -% \end{macrocode} -% -% \subsection{Drivers} -% -% \subsubsection*{pdftex driver} -% -% \begin{macrocode} -%<*pdftex-driver> -% \end{macrocode} -% -% \begin{macrocode} -\ProvidesFile{pgfsys-cmykshadings-pdftex.def}% - [2018/10/24 - CMYK and grayscale shadings support for PGF pdftex driver (DCP)] -% \end{macrocode} -% -% \begin{macrocode} -\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{macrocode} -% -% \begin{macrocode} -% -% \end{macrocode} -% -% \subsubsection*{xetex driver} -% -% \begin{macrocode} -%<*xetex-driver> -% \end{macrocode} -% -% \begin{macrocode} -\ProvidesFile{pgfsys-cmykshadings-xetex.def}% - [2018/10/24 - CMYK and grayscale shadings support for PGF xetex driver (DCP)] -% \end{macrocode} -% -% \begin{macrocode} -\input pgfsys-cmykshadings-dvipdfmx.def -% \end{macrocode} -% -% \begin{macrocode} -% -% \end{macrocode} -% -% \subsubsection*{luatex driver} -% -% \begin{macrocode} -%<*luatex-driver> -% \end{macrocode} -% -% \begin{macrocode} -\ProvidesFile{pgfsys-cmykshadings-luatex.def}% - [2018/10/24 - CMYK and grayscale shadings support for PGF luatex driver (DCP)] -% \end{macrocode} -% -% \begin{macrocode} -\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{macrocode} -% -% \begin{macrocode} -% -% \end{macrocode} -% -% \subsubsection*{dvipdfmx driver} -% -% \begin{macrocode} -%<*dvipdfmx-driver> -% \end{macrocode} -% -% \begin{macrocode} -\ProvidesFile{pgfsys-cmykshadings-dvipdfmx.def}% - [2018/10/24 - CMYK and grayscale shadings support for PGF dvipdfmx driver (DCP)] -% \end{macrocode} -% -% \begin{macrocode} -\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}) - <>}}}\@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 <> >> >>}% - \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{macrocode} -% -% \begin{macrocode} -% -% \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/24 - CMYK and grayscale 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} -% -% \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/24 - CMYK and grayscale shadings support for PGF dvips driver (DCP)] -% \end{macrocode} -% -% \begin{macrocode} -\input pgfsys-cmykshadings-common-postscript.def -% \end{macrocode} -% -% \begin{macrocode} -% -% \end{macrocode} -% -% \subsubsection*{textures driver} -% -% \begin{macrocode} -%<*textures-driver> -% \end{macrocode} -% -% \begin{macrocode} -\ProvidesFile{pgfsys-cmykshadings-textures.def}% - [2018/10/24 - CMYK and grayscale shadings support for PGF textures driver (DCP)] -% \end{macrocode} -% -% \begin{macrocode} -\input pgfsys-cmykshadings-common-postscript.def -% \end{macrocode} -% -% \begin{macrocode} -% -% \end{macrocode} -% -% \subsubsection*{vtex driver} -% -% \begin{macrocode} -%<*vtex-driver> -% \end{macrocode} -% -% \begin{macrocode} -\ProvidesFile{pgfsys-cmykshadings-vtex.def}% - [2018/10/24 - CMYK and grayscale shadings support for PGF vtex driver (DCP)] -% \end{macrocode} -% -% \begin{macrocode} -\input pgfsys-cmykshadings-common-postscript.def -% \end{macrocode} -% -% \begin{macrocode} -% -% \end{macrocode} -% -% \subsubsection*{PostScript® driver common code} -% -% \begin{macrocode} -%<*common-ps-driver> -% \end{macrocode} -% -% \begin{macrocode} -\ProvidesFile{pgfsys-cmykshadings-common-postscript.def}% - [2018/10/24 - CMYK and grayscale 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} -% -% \end{macrocode} -% -% \end{implementation} -% -% \PrintChanges diff --git a/graphics/pgf/contrib/pgf-cmykshadings/pgf-cmykshadings.ins b/graphics/pgf/contrib/pgf-cmykshadings/pgf-cmykshadings.ins deleted file mode 100644 index 09cf29f420..0000000000 --- a/graphics/pgf/contrib/pgf-cmykshadings/pgf-cmykshadings.ins +++ /dev/null @@ -1,75 +0,0 @@ -\iffalse meta-comment - -Copyright (c) 2018-2019 David Purton - -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. - -\fi - -\input l3docstrip.tex -\askforoverwritefalse - -\preamble - -This is a generated file. - -Copyright (c) 2018-2019 David Purton - -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-cmykshadings-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 -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 - -\postamble -\endpostamble - -\keepsilent - -\generate{\file{pgf-cmykshadings.sty}{\from{pgf-cmykshadings.dtx}{package}} - \file{pgfsys-cmykshadings-pdftex.def}{\from{pgf-cmykshadings.dtx}{pdftex-driver}} - \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 - diff --git a/graphics/pgf/contrib/pgf-cmykshadings/pgf-cmykshadings.pdf b/graphics/pgf/contrib/pgf-cmykshadings/pgf-cmykshadings.pdf deleted file mode 100644 index ad93e7325c..0000000000 Binary files a/graphics/pgf/contrib/pgf-cmykshadings/pgf-cmykshadings.pdf and /dev/null differ -- cgit v1.2.3