%% BEGIN pst-grad.tex %% %% Gradient fillstyle with PSTricks. %% See the PSTricks User's Guide for description. %% This uses the header file `pst-grad.pro'. %% %% Based on some EPS files by leeweyr!bill@nuchat.sccsi.com (W. R. Lee). %% %% %% COPYRIGHT 1993, 1994, 1999 by Timothy Van Zandt, tvz@nwu.edu. %% 2006 Herbert Voss, hvoss@tug.org %% %% This program can be redistributed and/or modified under the terms %% of the LaTeX Project Public License Distributed from CTAN %% archives in directory macros/latex/base/lppl.txt. %% %% This defines a new fill style, "gradient", for use with PSTricks, %% which has gradiated color. The following parameters are used: %% %% gradbegin=color : Beginning color. %% gradend=color : Final color. %% gradlines=int : Number of lines to use. The higher the number, %% the slower the rendering. %% gradmidpoint=num : Gradient color goes from gradbegin to gradend, %% and then back to beginning. Midpoint (point %% where "gradend" color appears, is gradmidpoint %% from the top. (0 <= Gmidpoint <= 1). %% gradangle=angle : Rotate image by angle. %% GradientCircle=true : Instead of a linear a circled gradient is build. %% (version 1.04) %% GradientPos=(x,y) : the center of the circled gradient %% (version 1.04) %% GradientScale=float : scaling factor of the circled gradient %% (version 1.04) %% GradientHSB : Use HSB color model %% cmyk : Use CMYK color model %% \csname GradientLoaded\endcsname \let\GradientLoaded\endinput \ifx\PSTricksLoaded\endinput\else \def\next{\input pstricks.tex }\expandafter\next \fi \ifx\PSTXKeyLoaded\endinput\else\input pst-xkey \fi \def\fileversion{1.06} \def\filedate{2006/11/27} \message{`pst-grad' v\fileversion, \filedate\space (tvz,dg,hv)} \edef\TheAtCode{\the\catcode`\@} \catcode`\@=11 \pst@addfams{pst-grad} \pstheader{pst-grad.pro} \define@boolkey[psset]{pst-grad}[Pst@]{cmyk}[true]{% \ifPst@cmyk \newcmykcolor{gradbegin}{0 .1 .95 0.1} \newcmykcolor{gradend}{0 0.8 0.6 0.5} \else \newrgbcolor{gradbegin}{0 .1 .95} \newrgbcolor{gradend}{0 1 1} \fi% } \psset[pst-grad]{cmyk=false} % \define@key[psset]{pst-grad}{gradbegin}{\pst@getcolor{#1}\psgradbegin} \define@key[psset]{pst-grad}{gradend}{\pst@getcolor{#1}\psgradend} \define@key[psset]{pst-grad}{gradlines}{% \pst@getint{#1}\psgradlines \ifnum\psgradlines<2 \@pstrickserr{gradlines must be at least 2}\@epha \def\psgradlines{2 }% \fi} \define@key[psset]{pst-grad}{gradmidpoint}{\pst@checknum{#1}\psgradmidpoint} \define@key[psset]{pst-grad}{gradangle}{\pst@getangle{#1}\psk@gradangle} \psset[pst-grad]{gradangle=0,gradlines=300,gradend=gradend,gradbegin=gradbegin, gradmidpoint=0.9} % Denis Girou - April 1998 ------- patch 2 (hv) % To define the gradient as linear or as circle %================================================================== \define@boolkey[psset]{pst-grad}[Pst@]{GradientCircle}[true]{} % Position of the center of the gradient \define@key[psset]{pst-grad}{GradientPos}{\psset@@GradientPos#1}% \def\psset@@GradientPos(#1){\edef\ps@GradientPos{#1}} % Scale factor \define@key[psset]{pst-grad}{GradientScale}{\def\ps@GradientScale{#1}} \psset[pst-grad]{GradientCircle=false,GradientScale=1,GradientPos={(0,0)}} %===================================================================== % \define@boolkey[psset]{pst-grad}[Pst@]{gradientHSB}[true]{} \psset[pst-grad]{gradientHSB=false} % \def\psfs@gradient{% \ifPst@gradientHSB \addto@pscode{% gsave gsave \pst@usecolor\psgradbegin currenthsbcolor grestore gsave \pst@usecolor\psgradend currenthsbcolor grestore \psgradlines \psgradmidpoint \psk@gradangle % hv 2004-05-05 begin fixed a spurious blank tx@GradientDict begin GradientFillHSB end grestore% }% % tx@GradientHSBDict begin GradientFillHSB end grestore} % hv 2004-05-05 end \else% % hv 2004-06-25 begin fixed a spurious blank \pst@getcoor{\ps@GradientPos}{\pst@tempa}% <- "%" hv 2004-06-23 % hv end \addto@pscode{% gsave \ifPst@GradientCircle\space true \else false \fi \ps@GradientScale\space \pst@tempa\space gsave \pst@usecolor\psgradbegin \ifPst@cmyk currentcmykcolor \else currentrgbcolor \fi grestore gsave \pst@usecolor\psgradend \ifPst@cmyk currentcmykcolor \else currentrgbcolor \fi grestore \psgradlines \psgradmidpoint \psk@gradangle \ifPst@cmyk true \else false \fi tx@GradientDict begin GradientFill end grestore% }% \fi% } % \catcode`\@=\TheAtCode\relax % \endinput %% %% END pst-grad.tex