diff options
author | Karl Berry <karl@freefriends.org> | 2008-01-25 00:33:24 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2008-01-25 00:33:24 +0000 |
commit | 7b47a6fc77ad486993f61d5ecdcd884a64f331da (patch) | |
tree | 0c29e5a6adc88fe23713e5e1dfd2fcbe7be0f3e5 /Master/texmf-dist/tex/generic/pstricks | |
parent | fb100c8d5700c5ed13acd4bcf77f59447de8a8f3 (diff) |
pstricks 0.36 (23jan08)
git-svn-id: svn://tug.org/texlive/trunk@6393 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/generic/pstricks')
-rw-r--r-- | Master/texmf-dist/tex/generic/pstricks/Changes | 37 | ||||
-rw-r--r-- | Master/texmf-dist/tex/generic/pstricks/pst-plot.tex | 60 | ||||
-rw-r--r-- | Master/texmf-dist/tex/generic/pstricks/pst-tree.tex | 6 | ||||
-rw-r--r-- | Master/texmf-dist/tex/generic/pstricks/pstricks.tex | 880 | ||||
-rw-r--r-- | Master/texmf-dist/tex/generic/pstricks/vtex.con | 40 |
5 files changed, 647 insertions, 376 deletions
diff --git a/Master/texmf-dist/tex/generic/pstricks/Changes b/Master/texmf-dist/tex/generic/pstricks/Changes index 124160c393b..a48459bf116 100644 --- a/Master/texmf-dist/tex/generic/pstricks/Changes +++ b/Master/texmf-dist/tex/generic/pstricks/Changes @@ -1,4 +1,24 @@ pstricks.tex -------- +1.20 2008-01-01 - added opacity for normal stroke operation (lines) + - added the arrowtype <D-D> and <D<D-D>D>, which draws the + sides as betier curves (ArrowD type in pstricks.pro) + - add special coor type (*x f(x)), which invokes the + algebraic parser for f(x) before using the default + (!x y) coor type + - add option linejoin=0,1,or 2 for connecting lines + - add option linecap=0,1,or 2 for line ends + - small tweaks to psellipticarc x y -> xOrig yOrig + - fix introduced bug with \newpsstyle: \pst@tempa->\pst@tempA + - add PS subroutines /UserCoor and /ScreenCoor for easy + transforming into user or screen coordinates + - changed wrong name of \psk@shift to \pst@shift + - fix bug with pst-node and \\[name=...]. It now uses + \ps@ifnextchar for scanning the next token + - fix bug with pst@tempg in \polar@coor. It was already used in + \pst@getangle. + - new option gridfont for the label font of \psgrid + can now be any of the PS-fonts Helvetica (Default), + Times-Roman, Palatino-Roman, ... 1.15a 2007-01-05 - \parabola->\psparabola (old name still valid) (hv) 1.15 2006-12-19 - add support for more dot styles (from Etienne Riga) 1.14c 2006-04-29 - add option linecap for dashed lines @@ -28,10 +48,25 @@ pstricks.tex -------- 1.06 2005-02-24 fix spurious blank in doublestroke (hv) +pst-node.tex -------- +1.00 2007-08-18 - new option pcRef for the first node (hv) + - new option Circle for psmatrix (hv) + - fix bug with pst-node and \\[name=...]. It now uses + \ps@ifnextchar for scanning the next token (defined + in pstricks.tex) + + +pst-plot.tex -------- +1.00 2007-06-26 - added two new line style LineToXaxis/LineToYaxis (hv) + + pst-tree.tex -------- -1.15 2007-01-03 - fix bug with \endpsTree (hv) +1.00 2007-01-03 - fix bug with \endpsTree (hv) xdvipdfmx.con ------ 0.01 2007-03-11 - first CTAN version, must be renamed to pstricks.con when used with XeTeX + +vtex.con ------ +0.02 2008-01-01 - disable transparent color setting diff --git a/Master/texmf-dist/tex/generic/pstricks/pst-plot.tex b/Master/texmf-dist/tex/generic/pstricks/pst-plot.tex index a3273fd2228..4ce191dde77 100644 --- a/Master/texmf-dist/tex/generic/pstricks/pst-plot.tex +++ b/Master/texmf-dist/tex/generic/pstricks/pst-plot.tex @@ -5,6 +5,7 @@ %% %% %% COPYRIGHT 1993, 1994, 1999 by Timothy Van Zandt, tvz@nwu.edu. +%% COPYRIGHT 2007-2008 by 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 @@ -23,8 +24,8 @@ \expandafter\next \fi -\def\fileversion{97 patch 2} -\def\filedate{1999/12/12} +\def\fileversion{1.00} +\def\filedate{2007/06/26} \message{ v\fileversion, \filedate} @@ -139,7 +140,20 @@ D\space##1% \def\endplot@bezier{\psbezier@ii} \def\beginplot@cbezier{\begin@ClosedObj} \def\endplot@cbezier{\pscbezier@ii} - +% added 2007-06-26 (hv) +\let\beginplot@LineToYAxis\beginplot@line % all from pst-plot +\def\endplot@LineToYAxis{\psLineToYAxis@ii} +\let\beginqp@LineToYAxis\beginqp@line +\let\doqp@LineToYAxis\doqp@line +\let\endqp@LineToYAxis\endqp@line +\let\testqp@LineToYAxis\testqp@line +\let\beginplot@LineToXAxis\beginplot@line +\def\endplot@LineToXAxis{\psLineToXAxis@ii} +\let\beginqp@LineToXAxis\beginqp@line +\let\doqp@LineToXAxis\doqp@line +\let\endqp@LineToXAxis\endqp@line +\let\testqp@LineToXAxis\testqp@line +% end (hv) \def\psset@plotstyle#1{% \@ifundefined{beginplot@#1}% {\@pstrickserr{Plot style `#1' not defined}\@eha}% @@ -221,7 +235,44 @@ D\space##1% \addto@pscode{n 3 mod { pop pop } repeat closepath} \end@ClosedObj}% \def\testqp@cbezier{\ifshowpoints\else\@psttrue\fi} - +% +% added 2007-06-26 (hv) ------------------------------------------------- +\def\psLineToYAxis@ii{% +\addto@pscode{\pst@cp \psline@iii \tx@LineToYAxis}% +\end@OpenObj} +% +\def\tx@LineToYAxis{LineToYAxis } +% +\pst@def{LineToYAxis}<{ + NArray % all x-y pairs on stack + n { 2 copy moveto % go to current point + 0 exch Lineto % line to y-axis + pop % delete old x-value + } repeat +}> +% +\def\psLineToXAxis@ii{% +\addto@pscode{\pst@cp \psline@iii \tx@LineToXAxis}% +\end@OpenObj} +% +\def\tx@LineToXAxis{LineToXAxis } +% +\pst@def{LineToXAxis}<{% +NArray +n 0 eq not + { n 1 eq { 0 0 /n 2 def } if + ArrowA + /n n 2 sub def + CP 2 copy moveto pop 0 Lineto + n { 2 copy moveto pop 0 Lineto } repeat + CP + 4 2 roll + ArrowB + 2 copy moveto pop 0 + L + pop pop } if}> +% end (hv) -------------------------------------------------------------- +% \def\dataplot{\def\pst@par{}\pst@object{dataplot}} \def\dataplot@i#1{% \pst@killglue @@ -236,6 +287,7 @@ D\space##1% \fi \endgroup \ignorespaces} +% \def\dataplot@ii#1{% \@nameuse{beginplot@\psplotstyle}% \addto@pscode{% diff --git a/Master/texmf-dist/tex/generic/pstricks/pst-tree.tex b/Master/texmf-dist/tex/generic/pstricks/pst-tree.tex index 93024663d89..3a4a578ee49 100644 --- a/Master/texmf-dist/tex/generic/pstricks/pst-tree.tex +++ b/Master/texmf-dist/tex/generic/pstricks/pst-tree.tex @@ -1,7 +1,7 @@ %% pst-tree.tex %% COPYRIGHT 1993, 1994, 1999 by Timothy Van Zandt, tvz@nwu.edu. %% COPYRIGHT 2000-2003 by Denis Girou. -%% Copyright 2004-2007 Herbert Voss +%% Copyright 2004-2008 Herbert Voss % % This work may be distributed and/or modified under the % conditions of the LaTeX Project Public License, either version 1.3 @@ -22,8 +22,8 @@ \csname PSTreeLoaded\endcsname \let\PSTreeLoaded\endinput \ifx\PSTnodesLoaded\endinput\else\input pst-node.tex\fi\relax -\def\fileversion{1.00} -\def\filedate{2007/01/03} +\def\fileversion{1.01} +\def\filedate{2007/06/26} \message{ v\fileversion, \filedate} % \edef\TheAtCode{\the\catcode`\@} diff --git a/Master/texmf-dist/tex/generic/pstricks/pstricks.tex b/Master/texmf-dist/tex/generic/pstricks/pstricks.tex index 5e77b88da65..bb18c11cc13 100644 --- a/Master/texmf-dist/tex/generic/pstricks/pstricks.tex +++ b/Master/texmf-dist/tex/generic/pstricks/pstricks.tex @@ -1,7 +1,7 @@ %% pstricks.tex %% COPYRIGHT 1993, 1994, 1999 by Timothy Van Zandt, tvz@nwu.edu. %% COPYRIGHT 2000-2003 by Denis Girou. -%% Copyright 2004-2007 Herbert Voss +%% Copyright 2004-2008 Herbert Voss % % This work may be distributed and/or modified under the % conditions of the LaTeX Project Public License, either version 1.3 @@ -20,8 +20,8 @@ % See the PSTricks User's Guide for description. % This uses the header file `pstricks.pro'. % -\def\fileversion{1.15a} -\def\filedate{2006/12/22} +\def\fileversion{1.20} +\def\filedate{2008/01/01} % \csname PSTricksLoaded\endcsname \let\PSTricksLoaded\endinput @@ -32,6 +32,7 @@ #1\endcsname\relax#2\else#3\fi} \def\@namedef#1{\expandafter\def\csname #1\endcsname} \def\@nameuse#1{\csname #1\endcsname} +% \def\@eha{% Your command was ignored.^^J Type \space I <command> <return> \space to replace @@ -43,20 +44,32 @@ \def\@empty{} \def\@gobble#1{} \def\@nnil{\@nil} +% \def\@ifnextchar#1#2#3{% -\let\@tempe#1\def\@tempa{#2}\def\@tempb{#3}\futurelet\@tempc\@ifnch} + \let\@tempe#1\def\@tempa{#2}\def\@tempb{#3}\futurelet\@tempc\@ifnch} +% \def\@ifnch{% - \ifx\@tempc\@sptoken - \let\@tempd\@xifnch - \else - \ifx\@tempc\@tempe \let\@tempd\@tempa \else \let\@tempd\@tempb \fi + \ifx\@tempc\@sptoken \let\@tempd\@xifnch + \else\ifx\@tempc\@tempe \let\@tempd\@tempa \else \let\@tempd\@tempb \fi \fi \@tempd} +% \begingroup \def\:{\global\let\@sptoken= } \: \def\:{\@xifnch} \expandafter\gdef\: {\futurelet\@tempc\@ifnch} \endgroup \fi +% +% hv 2007-10-16 to fix the bug in pst-node with \\[name=...] +\def\ps@ifnextchar#1#2#3{% + \let\reserved@d= #1% + \def\reserved@a{#2}\def\reserved@b{#3}% + \futurelet\@let@token\ps@ifnch} +\def\ps@ifnch{% + \ifx\@let@token\reserved@d \let\reserved@b\reserved@a \fi + \reserved@b +} +% end bugfix \typeout{`PSTricks' v\fileversion\space\space <\filedate> (tvz)} \def\@pstrickserr#1#2{% \begingroup @@ -186,7 +199,9 @@ \def\pstdriver{\pst@configerr\pstdriver} \@ifundefined{pstcustomize}% {\def\pstcustomize{\endinput\let\pstcustomize\relax}}{} -\input pstricks.con +% +\input pstricks.con % local config file +% \newif\ifPSTricks \PSTrickstrue \def\PSTricksOff{% @@ -197,9 +212,12 @@ } \@ifundefined{pst@def}{\def\pst@def#1<#2>{\@namedef{tx@#1}{#2 }}}{} \@ifundefined{pst@ATH}{\def\pst@ATH<#1>{}}{} +% \pstheader{pstricks.pro} +\pstheader{pst-algparser.pro} +% \def\pst@dict{tx@Dict begin } -\def\pst@theheaders{pstricks.pro} +\def\pst@theheaders{pstricks.pro pst-algparser.pro} \def\pst@Verb#1{\pstVerb{\pst@dict #1 end}} \def\tx@Atan{Atan } \def\tx@Div{Div } @@ -216,6 +234,13 @@ \fi \def\tx@STP{STP } \def\tx@STV{STV } +% +%--------------------------------------- PS stuff --------------------------------- +% on stack x y +\pst@def{UserCoor}< \pst@number\psyunit div exch \pst@number\psxunit div exch > +\pst@def{ScreenCoor}< \pst@number\psyunit mul exch \pst@number\psxunit mul exch > +%--------------------------------------- PS stuff end ----------------------------- +% \def\pst@number#1{\pst@@dimtonum#1\space} \def\pst@checknum#1#2{% \edef\next{#1}% @@ -236,6 +261,7 @@ {\let\pst@num\tw@\expandafter\pst@@@checknum\@gobble}% {\let\pst@num\@ne\pst@@@checknum}% } +% \def\pst@@@checknum#1.#2.#3\@nil{% \afterassignment\pst@@@@checknum\pst@cntg=0#1\relax\@nil \afterassignment\pst@@@@checknum\pst@cnth=1#2\relax\@nil} @@ -275,7 +301,7 @@ %\ifdim\pst@tempg\p@=\p@ \ifdim\pst@temph\p@=\p@ %\def#2{}% %\fi\fi} -\def\pst@getscale#1#2{% +\def\pst@getscale#1#2{% read and check a scale input x [y] \edef\pst@tempg{#1}% \ifx\pst@tempg\@none \def#2{}% @@ -295,7 +321,7 @@ \fi% } % DG/SR modification end -\def\pst@getint#1#2{% +\def\pst@getint#1#2{% read and check an integer \pst@cntg=#1\relax \edef#2{\the\pst@cntg\space}% } @@ -373,9 +399,22 @@ %\def\newpsstyle#1#2{\@namedef{pscs@#1}{\psset{#2}}} %------------ hv 1.10 beg ------------------- \def\newpsstyle#1#2{\@namedef{pscs@#1}{% - \def\pst@tempa{#2}% - \ifx\pst@tempa\@empty\else\psset{#2}\fi}} + \def\pst@tempA{#2}% + \ifx\pst@tempA\@empty\else\psset{#2}\fi}} %------------ hv 1.10 end ------------------- +%------------ hv 1.16 begin ------------------- +\def\addto@psstyle#1#2{% + \pst@toks=\expandafter{#1#2}% + \edef#1{\the\pst@toks}} +\def\addtopsstyle#1#2{% + \def\pst@tempA{#2}% + \ifx\pst@tempA\@empty\else + \@ifundefined{pscs@#1}% + {\newpsstyle{#1}{#2}}% + {\expandafter\addto@psstyle\csname pscs@#1\endcsname{\psset{#2}}}% + \fi} +%------------ hv 1.16 end ------------------- +% \def\@none{none} \def\pst@getcolor#1#2{% % \@ifundefined{color@#1}% hv 1.14 2005-12-17 @@ -387,7 +426,9 @@ \newdimen\psxunit \psxunit 1cm \newdimen\psyunit \psyunit 1cm \let\psrunit\psunit +% \def\pstunit@off{\let\@psunit\ignorespaces\ignorespaces} +% \def\pssetlength#1#2{% \let\@psunit\psunit \afterassignment\pstunit@off @@ -450,7 +491,7 @@ \def\NormalCoor{% \def\pst@@getcoor##1{\pst@expandafter\cartesian@coor{##1},\relax,\@nil}% \def\pst@@getangle##1{% - \pst@checknum{##1}\pst@angle + \pst@checknum{##1}\pst@angle% \edef\pst@angle{\pst@angle \pst@angleunit}% }% \def\psput@##1{\pst@@getcoor{##1}\leavevmode\psput@cartesian}% @@ -458,24 +499,24 @@ \NormalCoor \def\degrees{\@ifnextchar[{\@degrees}{\def\pst@angleunit{}}} \def\@degrees[#1]{% -\pst@checknum{#1}\pst@tempg -\edef\pst@angleunit{360 \pst@tempg div mul }% -\ignorespaces} + \pst@checknum{#1}\pst@tempg + \edef\pst@angleunit{360 \pst@tempg div mul }% + \ignorespaces} \def\radians{\def\pst@angleunit{57.2956 mul }} \def\pst@angleunit{} \def\SpecialCoor{% \def\pst@@getcoor##1{% - \begingroup - \pst@activecoor + \begingroup% + \pst@activecoor% \xdef\pst@tempg{##1}% - \endgroup + \endgroup% \expandafter\special@coor\pst@tempg||\@nil% }% - \def\pst@@getangle##1{% - \begingroup - \pst@activecoor +\def\pst@@getangle##1{% + \begingroup% + \pst@activecoor% \xdef\pst@tempg{##1}% - \endgroup + \endgroup% \expandafter\special@angle\pst@tempg\@empty)\@nil% }% \def\psput@##1{\pst@@getcoor{##1}\leavevmode\psput@special}% @@ -484,10 +525,12 @@ \catcode`\|=13 \catcode`\;=13 \catcode`\!=13 +\catcode`\*=13 \gdef\pst@activecoor{% \def|{\string|}% \def;{\string;}% \def!{\string!}% + \def*{\string*}% algebraic expression hv 2007-11-17 } \endgroup \def\special@coor#1|#2|#3\@nil{% @@ -498,16 +541,20 @@ \fi% } \def\special@@coor#1{% - \ifcat#1a\relax + \ifcat#1a\relax% node names should start with a letter \def\next{\node@coor#1}% \else - \ifx#1[\relax + \ifx#1[\relax% special node coor: [..]A \def\next{\Node@coor[}% \else - \ifx#1!\relax + \ifx#1!\relax% PostScript code: x y \def\next{\raw@coor}% \else - \def\next{\special@@@coor#1}% + \ifx#1*\relax% algebraic PostScript code: x f(x) + \def\next{\alg@coor}% + \else + \def\next{\special@@@coor#1}% + \fi \fi \fi \fi @@ -521,28 +568,37 @@ \fi% } \def\mixed@coor#1#2{% - \begingroup + \begingroup% % DG/SR modification begin - Oct. 27, 1997 - Patch 6 %\specialcoor@ii#1;;\@nil %\let\pst@tempa\pst@coor %\specialcoor@ii#2;;\@nil - \special@@coor#1;;\@nil - \let\pst@tempa\pst@coor - \special@@coor#2;;\@nil + \special@@coor#1;;\@nil% + \let\pst@tempa\pst@coor% + \special@@coor#2;;\@nil% % DG/SR modification end \xdef\pst@tempg{\pst@tempa pop \pst@coor exch pop }% - \endgroup + \endgroup% \let\pst@coor\pst@tempg% } \def\polar@coor#1#2{% - \pssetlength\pst@dimg{#1}% +% \pssetlength\pst@dimg{#1}% + \pssetlength\pst@dimb{#1}% hv 2007-10-16 g is already used in get@@angle \pst@@getangle{#2}% - \edef\pst@coor{\pst@number\pst@dimg \pst@angle \tx@PtoC}% +% \edef\pst@coor{\pst@number\pst@dimg \pst@angle \tx@PtoC}% dito + \edef\pst@coor{\pst@number\pst@dimb \pst@angle \tx@PtoC}% } -\def\raw@coor#1;#2\@nil{% +\def\raw@coor#1;#2\@nil{% PostScript code \edef\pst@coor{% #1 \pst@number\psyunit mul exch \pst@number\psxunit mul exch }% } +\def\alg@coor#1 #2;#3\@nil{% algebraic PostScript code + \edef\pst@coor{% + /x #1 def + /Func (#2) AlgParser cvx def + x Func + \pst@number\psyunit mul exch \pst@number\psxunit mul exch }% +} \def\node@coor#1\@nil{% \@pstrickserr{You must load `pst-node.tex' to use node coordinates.}\@ehps \def\pst@coor{0 0 }% @@ -593,10 +649,13 @@ \fi% } \psset@swapaxes{false} +% \newif\ifshowpoints \def\psset@showpoints#1{\@nameuse{showpoints#1}} \psset@showpoints{false} +% \let\pst@setrepeatarrowsflag\relax +% \def\psset@border#1{% \pst@getlength{#1}\psk@border \pst@setrepeatarrowsflag} @@ -634,7 +693,14 @@ \psset@linewidth{.8pt} \def\psset@linecolor#1{\pst@getcolor{#1}\pslinecolor} \psset@linecolor{black} -\def\psls@solid{0 setlinecap stroke } +\def\psls@solid{\psk@linecap\space setlinecap stroke } +% +\def\psset@linecap#1{\pst@getint{#1}\psk@linecap}% hv 2007-12-01 +\psset@linecap{0}% hv 2007-12-01 +\def\psset@linejoin#1{\pst@getint{#1}\psk@linejoin}% hv 2007-10-13 +\def\tx@setlinejoin{\psk@linejoin\space setlinejoin }% hv 2007-10-13 +\psset@linejoin{0}% hv 2007-10-13 +% \def\pst@missing{% \z@ \@pstrickserr{Missing number or dimension. 0 substituted}\@ehpa} @@ -702,15 +768,45 @@ \fi\fi% } \psset{linecap=0} -%%--------------------------------- hv 2006-04-29 end --------------------- - -\def\psfs@none{} +%--------------------------------- hv 2006-04-29 end --------------------- +% +%--------------------------------- hv 2007-09-09 begin --------------------- +% transparency needs a run through latex -> dvips -> ps2pdf14(!) +% use transpalpha=<mumber> to the the opacity level +% \def\psset@fillcolor#1{\pst@getcolor{#1}\psfillcolor} \psset@fillcolor{white} -\def\psfs@solid{\pst@fill{\pst@usecolor\psfillcolor fill}} -%-------------- hv begin patch 15 (2004-05-10)---------------%% -\def\psfs@eofill{\pst@fill{\pst@usecolor\psfillcolor eofill}} -%-------------- hv end patch 15 (2004-05-10)---------------%% +\def\psset@strokeopacity#1{\pst@checknum{#1}\psk@strokeopacityalpha }% for lines +\psset@strokeopacity{1} +\def\psset@opacity#1{\pst@checknum{#1}\psk@opacityalpha }% for filled areas +\psset@opacity{1} +\def\psset@shapealpha#1{\pst@checknum{#1}\psk@shapealpha } +\psset@shapealpha{0.6} +\def\psset@blendmode#1{\pst@getint{#1}\psk@blendmode }% must be one of +% /Normal 0 +% /Compatible 1 +% /Screen 2 +% /Multiply 3 +% /HardLight 4 +\psset@blendmode{0} +% +\def\psfs@none{} +\def\psfs@solid{\pst@fill{\pst@usecolor\psfillcolor \psk@opacityalpha .setopacityalpha fill }} +\def\psfs@eofill{\pst@fill{\pst@usecolor\psfillcolor \psk@opacityalpha .setopacityalpha eofill}} +\def\psfs@shape{% + \pst@fill{ + \pst@usecolor\psfillcolor + \ifcase\psk@blendmode + /Normal \or + /Compatible \or + /Screen \or + /Multiply %\or +% /Hardlight + \fi + .setblendmode \psk@shapealpha .setshapealpha fill }} +% +%--------------------------------- hv 2007-09-09 end --------------------- +% \def\psset@hatchwidth#1{\pst@getlength{#1}\psk@hatchwidth} \psset@hatchwidth{.8pt} \def\psset@hatchsep#1{\pst@getlength{#1}\psk@hatchsep} @@ -785,7 +881,7 @@ \def\psk@arrowA{} \def\psk@arrowB{} %\def\pst@arrowtable{,<->,<<->>,>-<,>>-<<,(-),[-]} -\def\pst@arrowtable{,<->,<<->>,>-<,>>-<<,(-),[-],)-(,]-[,|>-<|} % hv --1.12 +\def\pst@arrowtable{,<->,<<->>,>-<,>>-<<,(-),[-],)-(,]-[,|>-<|,<D-D>,<D<D-D>D>} % hv --1.16 \begingroup \catcode`\<=13 \catcode`\>=13 @@ -811,13 +907,19 @@ \psset@arrowlength{1.4} \def\psset@arrowinset#1{\pst@checknum{#1}\psk@arrowinset}% \psset@arrowinset{.4} -\def\tx@Arrow{Arrow } +\def\tx@Arrow{ \psk@strokeopacityalpha .setopacityalpha Arrow }% hv 2008-01-13 % new definitions of the missing arrows ---- hv 1.1.2 -\@namedef{psas@<|}{% +\def\tx@ArrowD{ \psk@strokeopacityalpha .setopacityalpha ArrowD }% hv 2008-01-13 +% +\@namedef{psas@<|}{ \psk@tbarsize\space \tx@Tbar 0 CLW 2 div T newpath - true \psk@arrowinset\space \psk@arrowlength\space \psk@arrowsize\space \tx@Arrow% + true + \psk@arrowinset + \psk@arrowlength + \psk@arrowsize + \tx@Arrow } % ]-[ arrow \def\tx@BracketOut{BracketOut } @@ -833,7 +935,7 @@ \psk@bracketlength\space \psk@tbarsize\space \tx@BracketOut } % )-( arrow -\def\tx@RoundBracketOut{RoundBracketOut } +\def\tx@RoundBracketOut{ \psk@strokeopacityalpha .setopacityalpha RoundBracketOut }% hv 2008-01-13 \@namedef{psas@(}{% /RoundBracketOut {% CLW mul add dup 2 div @@ -850,29 +952,34 @@ \psk@rbracketlength\space \psk@tbarsize\space \tx@RoundBracketOut } % end of new definitions of the missing arrows ---- hv 1.12 -\@namedef{psas@>}{% - false \psk@arrowinset \psk@arrowlength \psk@arrowsize \tx@Arrow -} +\@namedef{psas@>}{ false \psk@arrowinset \psk@arrowlength \psk@arrowsize \tx@Arrow } \@namedef{psas@>>}{% false \psk@arrowinset \psk@arrowlength \psk@arrowsize \tx@Arrow - 0 h T - gsave - newpath + 0 h T gsave newpath false \psk@arrowinset \psk@arrowlength \psk@arrowsize \tx@Arrow - CP - grestore - CP newpath moveto - 2 copy - L - stroke - moveto + CP grestore CP newpath moveto 2 copy L stroke moveto } \@namedef{psas@<}{true \psk@arrowinset \psk@arrowlength \psk@arrowsize \tx@Arrow} -\@namedef{psas@<<}{% +\@namedef{psas@<<}{ true \psk@arrowinset \psk@arrowlength \psk@arrowsize \tx@Arrow CP newpath moveto 0 a neg L stroke 0 h neg T false \psk@arrowinset \psk@arrowlength \psk@arrowsize \tx@Arrow } +\@namedef{psas@D>}{ false \psk@arrowinset \psk@arrowlength \psk@arrowsize \tx@ArrowD }% hv 20071211 +\@namedef{psas@D>D>}{ % hv 20071211 + false \psk@arrowinset \psk@arrowlength \psk@arrowsize \tx@ArrowD + 0 h Inset sub T gsave newpath + false \psk@arrowinset \psk@arrowlength \psk@arrowsize \tx@ArrowD + CP grestore moveto +} +\@namedef{psas@<D}{ % hv 20071211 + true \psk@arrowinset \psk@arrowlength \psk@arrowsize \tx@ArrowD +} +\@namedef{psas@<D<D}{ % hv 20071211 + true \psk@arrowinset \psk@arrowlength \psk@arrowsize \tx@ArrowD + CP newpath moveto 0 a neg L stroke 0 h neg T + true \psk@arrowinset \psk@arrowlength \psk@arrowsize \tx@ArrowD +} \def\psset@tbarsize#1{% \pst@expandafter\pst@getdimnum{#1} 0 {} {}\@nil \edef\psk@tbarsize{\pst@number\pst@dimg \pst@tempg}% @@ -918,7 +1025,7 @@ } \def\psas@{} \psset@arrows{-} -\def\tx@SD{SD } +\def\tx@SD{ \psk@opacityalpha .setopacityalpha SD } \def\tx@EndDot{EndDot } \def\psas@oo{{\pst@usecolor\psfillcolor true} true \psk@dotsize \tx@EndDot} \def\psas@o{{\pst@usecolor\psfillcolor true} false \psk@dotsize \tx@EndDot} @@ -926,19 +1033,21 @@ \@namedef{psas@*}{{false} false \psk@dotsize \tx@EndDot} \def\pst@par{} \def\addto@par#1{% -\ifx\pst@par\@empty -\def\pst@par{#1}% -\else -\expandafter\def\expandafter\pst@par\expandafter{\pst@par,#1}% -\fi} + \ifx\pst@par\@empty + \def\pst@par{#1}% + \else + \expandafter\def\expandafter\pst@par\expandafter{\pst@par,#1}% + \fi% +} \def\addbefore@par#1{% -\ifx\pst@par\@empty -\def\pst@par{#1}% -\else -\toks@{#1}% -\pst@toks\expandafter{\pst@par}% -\edef\pst@par{\the\toks@,\the\pst@toks}% -\fi} + \ifx\pst@par\@empty + \def\pst@par{#1}% + \else + \toks@{#1}% + \pst@toks\expandafter{\pst@par}% + \edef\pst@par{\the\toks@,\the\pst@toks}% + \fi% +} \def\use@par{% \ifx\pst@par\@empty\else \expandafter\@psset\pst@par,\@nil @@ -1000,6 +1109,7 @@ \begin@ClosedObj \def\pst@repeatarrowsflag{\z@}% \def\pst@linetype{0}} +% \def\end@OpenObj{% \ifpsshadow \pst@openshadow \fi \ifdim\psk@border\p@>\z@ \pst@addborder \fi @@ -1011,16 +1121,19 @@ \use@pscode \endgroup \ignorespaces} +% \def\begin@SpecialObj{% -\leavevmode -\pst@killglue -\begingroup -\use@par -\init@pscode} + \leavevmode + \pst@killglue + \begingroup + \use@par + \init@pscode} +% \def\end@SpecialObj{% -\use@pscode -\endgroup -\ignorespaces} + \use@pscode + \endgroup + \ignorespaces} +% \def\pst@code{}% \def\init@pscode{% \addto@pscode{% @@ -1029,7 +1142,7 @@ } \def\addto@pscode#1{\xdef\pst@code{\pst@code#1\space}} \def\use@pscode{% - \pstverb{% + \pstverb{ \pst@dict \tx@STP \pst@newpath @@ -1041,10 +1154,12 @@ \gdef\pst@code{}% } \def\pst@newpath{newpath } +% \def\pst@@killglue{\unskip\ifdim\lastskip>\z@\expandafter\pst@@killglue\fi} \def\KillGlue{\let\pst@killglue\pst@@killglue} \def\DontKillGlue{\let\pst@killglue\relax} \DontKillGlue +% \def\solid@star{% \if@star \pslinewidth=\z@ @@ -1053,6 +1168,7 @@ \def\psk@fillstyle{\psfs@solid}% \let\psfillcolor\pslinecolor \fi} +% \def\pst@setdoublesep{% \pst@getlength\psdoublesep\psdoublesep \pslinewidth=2\pslinewidth @@ -1073,6 +1189,7 @@ gsave fill grestore stroke grestore}} +% \def\pst@openshadow{% \addto@pscode{% gsave @@ -1093,6 +1210,7 @@ stroke grestore}% \fi} +% \def\pst@addborder{% \addto@pscode{% gsave @@ -1101,16 +1219,20 @@ \pst@usecolor\psbordercolor stroke grestore}} +% \def\pst@stroke{% \ifx\pslinestyle\@none\else \addto@pscode{% gsave \pst@number\pslinewidth SLW \pst@usecolor\pslinecolor + \psk@strokeopacityalpha .setopacityalpha % hv 2008-01-13 \@nameuse{psls@\pslinestyle} grestore}% \fi} +% \def\pst@fill#1{\addto@pscode{gsave #1 grestore}}% +% \def\pst@doublestroke{% \addto@pscode{% gsave @@ -1118,42 +1240,44 @@ \pst@usecolor\psdoublecolor stroke grestore - }} +}} +% \def\pst@arrowtype{% -\ifx\psk@arrowB\@empty 0 \else -2 \fi -\ifx\psk@arrowA\@empty 0 \else -1 \fi -add} + \ifx\psk@arrowB\@empty 0 \else -2 \fi + \ifx\psk@arrowA\@empty 0 \else -1 \fi + add } +% \def\pst@addarrowdef{% -\addto@pscode{% -/ArrowA { -\ifx\psk@arrowA\@empty - \pst@oplineto -\else - \pst@arrowdef{A} -moveto -\fi -} def -/ArrowB { -\ifx\psk@arrowB\@empty \else \pst@arrowdef{B} \fi -} def}} + \addto@pscode{% + /ArrowA { + \ifx\psk@arrowA\@empty + \pst@oplineto + \else + \pst@arrowdef{A} + moveto + \fi + } def + /ArrowB { \ifx\psk@arrowB\@empty \else \pst@arrowdef{B} \fi } def +}} +% \def\pst@arrowdef#1{% -\ifnum\pst@repeatarrowsflag>\z@ -/Arrow#1c [ 6 2 roll ] cvx def Arrow#1c -\fi -\tx@BeginArrow -\psk@arrowscale -\@nameuse{psas@\@nameuse{psk@arrow#1}} -\tx@EndArrow} + \ifnum\pst@repeatarrowsflag>\z@ + /Arrow#1c [ 6 2 roll ] cvx def Arrow#1c + \fi + \tx@BeginArrow + \psk@arrowscale + \@nameuse{psas@\@nameuse{psk@arrow#1}} + \tx@EndArrow +} +% \def\pst@repeatarrows{% -\addto@pscode{% -gsave -\ifx\psk@arrowA\@empty\else -ArrowAc ArrowA pop pop -\fi -\ifx\psk@arrowB\@empty\else -ArrowBc ArrowB pop pop pop pop -\fi -grestore}} + \addto@pscode{% + gsave + \ifx\psk@arrowA\@empty\else ArrowAc ArrowA pop pop \fi + \ifx\psk@arrowB\@empty\else ArrowBc ArrowB pop pop pop pop \fi + grestore +}} +% \def\pst@OpenShowPoints{% \addto@pscode{% gsave @@ -1168,6 +1292,7 @@ grestore}} { N 2 mul { pop } repeat } ifelse grestore }} +% \def\pscustom{\pst@object{pscustom}} \long\def\pscustom@i#1{% \begin@SpecialObj @@ -1203,6 +1328,7 @@ grestore}} \psk@fillstyle \pst@stroke \end@SpecialObj} +% \def\begin@CustomObj{% \begingroup \use@par @@ -1312,6 +1438,7 @@ grestore}} \def\arrows#1{{\psset@arrows{#1}\pst@addarrowdef}}% \let\file\pst@rawfile } % END \pst@customdefs +% \def\closedshadow@i{\cuse@par\pst@closedshadow} \def\openshadow@i{\cuse@par\pst@openshadow} \def\stroke@i{\cuse@par\pst@stroke}% @@ -1320,36 +1447,39 @@ grestore}} \pst@@getcoor{#2}% \addto@pscode{\pst@coor #1}} \def\pst@threecoor#1(#2)#3(#4)#5(#6){% -\begingroup -\pst@getcoor{#2}\pst@tempa -\pst@getcoor{#4}\pst@tempb + \begingroup + \pst@getcoor{#2}\pst@tempa + \pst@getcoor{#4}\pst@tempb % DG/SR modification begin - Aug. 4, 1999 - Patch 11 %\pst@getcoor{#6}\pst@tembc -\pst@getcoor{#6}\pst@tempc + \pst@getcoor{#6}\pst@tempc % DG/SR modification end -\addto@pscode{\pst@tempa \pst@tempb \pst@tempc #1}% -\endgroup} + \addto@pscode{\pst@tempa \pst@tempb \pst@tempc #1}% + \endgroup} +% \def\pst@rawfile#1{% -\begingroup -\def\do##1{\catcode`##1=12\relax}" -\dospecials -\catcode`\%=14 -\pst@@rawfile{#1}% -\endgroup} + \begingroup + \def\do##1{\catcode`##1=12\relax}" + \dospecials + \catcode`\%=14 + \pst@@rawfile{#1}% + \endgroup} +% \def\pst@@rawfile#1{% -\immediate\openin1 #1 -\ifeof1 -\@pstrickserr{File `#1' not found}\@ehpa -\else -\immediate\read1 to \pst@tempg -\loop -\ifeof1 \@pstfalse\else\@psttrue\fi -\if@pst -\addto@pscode\pst@tempg -\immediate\read1 to \pst@tempg -\repeat -\fi -\immediate\closein1\relax} + \immediate\openin1 #1 + \ifeof1 + \@pstrickserr{File `#1' not found}\@ehpa + \else + \immediate\read1 to \pst@tempg + \loop + \ifeof1 \@pstfalse\else\@psttrue\fi + \if@pst + \addto@pscode\pst@tempg + \immediate\read1 to \pst@tempg + \repeat + \fi + \immediate\closein1\relax} +% \def\tx@NArray{NArray } \def\tx@NArray{NArray } \def\tx@Line{Line } @@ -1358,10 +1488,10 @@ grestore}} \def\tx@Polygon{Polygon } \def\psset@gangle#1{\pst@getangle{#1}\psk@gangle} \psset@gangle{0} +% \def\tx@Diamond{Diamond } \def\psdiamond{\pst@object{psdiamond}} -\def\psdiamond@i(#1){% -\@ifnextchar({\psdiamond@ii(#1)}{\psdiamond@ii(0,0)(#1)}} +\def\psdiamond@i(#1){\@ifnextchar({\psdiamond@ii(#1)}{\psdiamond@ii(0,0)(#1)}} \def\psdiamond@ii(#1)(#2){% \begin@ClosedObj \pst@getcoor{#1}\pst@tempa @@ -1380,8 +1510,7 @@ grestore}} % \def\tx@Triangle{Triangle } \def\pstriangle{\pst@object{pstriangle}} -\def\pstriangle@i(#1){% - \@ifnextchar({\pstriangle@ii(#1)}{\pstriangle@ii(0,0)(#1)}} +\def\pstriangle@i(#1){\@ifnextchar({\pstriangle@ii(#1)}{\pstriangle@ii(0,0)(#1)}} \def\pstriangle@ii(#1)(#2){% \begin@ClosedObj \pst@getcoor{#1}\pst@tempa% the center of the baseline @@ -1428,11 +1557,11 @@ grestore}} }% } \def\pscurve@ii{% - \addto@pscode{% + \addto@pscode{ \pst@cp \psk@curvature\space /c ED /b ED /a ED \ifshowpoints true \else false \fi - \tx@OpenCurve% + \tx@OpenCurve }% \end@OpenObj% } @@ -1509,19 +1638,19 @@ grestore}} \def\psdot{\pst@object{psdot}} \def\psdot@i{\@ifnextchar({\psdot@ii}{\psdot@ii(\z@,\z@)}} \def\psdot@ii(#1){% - \begin@SpecialObj + \begin@SpecialObj% % hv modification 1.13 2005-11-28 - \solid@star + \solid@star% % hv modification end \pst@@getcoor{#1}% - \addto@pscode{% + \addto@pscode{ \psk@dotsize \@nameuse{psds@\psk@dotstyle}% \pst@coor Dot}% \end@SpecialObj} \def\psdots{\pst@object{psdots}} \def\psdots@i{% - \begin@SpecialObj + \begin@SpecialObj% \pst@getcoors[\psdots@ii} \def\psdots@ii{% \addto@pscode{false \tx@NArray \psdots@iii}% @@ -1705,6 +1834,7 @@ grestore}} /Lineto /lineto load def \fi \ifshowpoints true \else false \fi + \tx@setlinejoin % hv 2007-10-13 } \def\qline(#1)(#2){% \def\pst@par{}% @@ -1726,19 +1856,19 @@ grestore}} \def\pspolygon@ii{% \addto@pscode{\psline@iii \tx@Polygon}% \def\pst@linetype{1}% - \end@ClosedObj% -} + \end@ClosedObj} +% \def\psset@framearc#1{\pst@checknum{#1}\psk@framearc} \psset@framearc{0} -\def\psset@cornersize#1{% -\pst@expandafter\psset@@cornersize{#1}\@nil} +% +\def\psset@cornersize#1{\pst@expandafter\psset@@cornersize{#1}\@nil} \def\psset@@cornersize#1#2\@nil{% -\if #1a\relax -\def\psk@cornersize{\pst@number\pslinearc false }% -\else -\def\psk@cornersize{\psk@framearc true }% -\fi} + \if #1a\relax + \def\psk@cornersize{\pst@number\pslinearc false }% + \else\def\psk@cornersize{\psk@framearc true }% + \fi} \psset@cornersize{relative} +% \def\tx@Rect{Rect } \def\tx@OvalFrame{OvalFrame } \def\tx@Frame{Frame } @@ -1768,6 +1898,30 @@ grestore}} \showpointsfalse \end@ClosedObj% } +% +\def\psTextFrame{\pst@object{psTextFrame}} +\def\psTextFrame@i(#1)(#2)#3{% + \addbefore@par{ref=c}% to prevent an empty value + \leavevmode% + \pst@killglue + \begingroup + \use@par + \ifx\psk@yref\relax \def\psk@yref{0}\fi% no Baseline possible + \SpecialCoor + \pst@getcoor{#1}\pst@tempA + \pst@getcoor{#2}\pst@tempB + \if@star\psframe*(#1)(#2)\else\psframe(#1)(#2)\fi + \rput(! \pst@tempA \pst@tempB % x1 y1 x2 y2 + exch 4 -1 roll % y1 y2 x2 x1 + dup /x1 ED % y1 y2 x2 x1 + sub /dx ED % y1 y2 + exch dup /y1 ED % y2 y1 + sub /dy ED + x1 dx \psk@xref\space mul add \pst@number\psxunit div + y1 dy \psk@yref\space mul add \pst@number\psyunit div ){#3} + \endgroup + \ignorespaces} +% \def\tx@BezierNArray{BezierNArray } \def\tx@OpenBezier{OpenBezier } \def\tx@ClosedBezier{ClosedBezier } @@ -1830,18 +1984,21 @@ grestore}} \def\psset@subgriddiv#1{% \pst@cntg=#1\relax\edef\psk@subgriddiv{\the\pst@cntg}} \psset@subgriddiv{5} +% +\def\psset@gridfont#1{\def\psk@gridfont{/#1 }}% hv 2007-11-13 +\psset@gridfont{Helvetica} +% \def\psset@gridlabels#1{\pst@getlength{#1}\psk@gridlabels} \psset@gridlabels{10pt} \def\psset@gridlabelcolor#1{\pst@getcolor{#1}\psgridlabelcolor} \psset@gridlabelcolor{black} + \def\tx@Grid{Grid } + \def\psgrid{\pst@object{psgrid}} -\def\psgrid@i{\@ifnextchar(% - {\psgrid@ii}{\expandafter\psgrid@iv\pic@coor}} -\def\psgrid@ii(#1){\@ifnextchar(% - {\psgrid@iii(#1)}{\psgrid@iv(0,0)(0,0)(#1)}} -\def\psgrid@iii(#1)(#2){\@ifnextchar(% - {\psgrid@iv(#1)(#2)}{\psgrid@iv(#1)(#1)(#2)}} +\def\psgrid@i{\@ifnextchar({\psgrid@ii}{\expandafter\psgrid@iv\pic@coor}} +\def\psgrid@ii(#1){\@ifnextchar({\psgrid@iii(#1)}{\psgrid@iv(0,0)(0,0)(#1)}} +\def\psgrid@iii(#1)(#2){\@ifnextchar({\psgrid@iv(#1)(#2)}{\psgrid@iv(#1)(#1)(#2)}} \def\psgrid@iv(#1)(#2)(#3){% \begin@SpecialObj \pst@getcoor{#1}\pst@tempA% hv 1.11 @@ -1855,22 +2012,25 @@ grestore}} % \pst@number\psxunit \pst@number\psyunit % hv 1.11 \pst@number\psxunit abs \pst@number\psyunit abs % hv 1.11 \psk@subgriddiv\space \psk@subgriddots\space - {} 0 \tx@Grid + {} 0 + \psk@gridfont findfont 0 scalefont setfont % hv 1.16 + \tx@Grid grestore }% \fi - \addto@pscode{% + \addto@pscode{ gsave \psk@gridwidth SLW \pst@usecolor\psgridcolor \pst@tempB \pst@coor \pst@tempA % hv 1.11 \pst@number\psxunit abs \pst@number\psyunit abs % hv 1.11 % \pst@number\psxunit \pst@number\psyunit % hv 1.11 1 \psk@griddots\space { \pst@usecolor\psgridlabelcolor } - \psk@gridlabels \tx@Grid + \psk@gridlabels + \psk@gridfont findfont \psk@gridlabels scalefont setfont % hv 1.16 + \tx@Grid grestore }% - \end@SpecialObj% -} + \end@SpecialObj} % \newif\ifpsmathbox \psmathboxtrue @@ -1885,8 +2045,8 @@ grestore}} {\pst@thisbox\the\everypsbox#2}% \ifnum\pst@mathflag>\z@$\fi% $ }% - #1% -} + #1} +% \def\pst@makeverbbox#1{% \def\pst@afterbox{#1}% \edef\pst@mathflag{% @@ -1934,15 +2094,18 @@ grestore}} \egroup% } \def\pslongbox#1#2{% -\@namedef{#1}{\pst@longbox#2}% -\@namedef{end#1}{\pst@endlongbox}% -} + \@namedef{#1}{\pst@longbox#2}% + \@namedef{end#1}{\pst@endlongbox}} +% \newdimen\psframesep \def\psset@framesep#1{\pssetlength\psframesep{#1}} \psset@framesep{3pt} +% \newif\ifpsboxsep \def\psset@boxsep#1{\@nameuse{psboxsep#1}} +% \psset@boxsep{true} +% \def\pst@useboxpar{% \use@par \if@star @@ -1950,8 +2113,8 @@ grestore}} \solid@star \let\solid@star\relax \fi - \ifpsdoubleline \pst@setdoublesep \fi% -} + \ifpsdoubleline \pst@setdoublesep \fi} +% \def\psframebox{\pst@object{psframebox}} \def\psframebox@i{\pst@makebox\psframebox@ii} \def\psframebox@ii{% @@ -1966,7 +2129,7 @@ grestore}} \ifpsboxsep\kern\pst@dima\fi \begin@ClosedObj \addto@pscode{% - \psk@cornersize + \psk@cornersize % arcradius boolean \pst@number\pst@dima neg \pst@number\pst@dimb neg \pst@number\pst@dimc @@ -1982,8 +2145,8 @@ grestore}} }% \ifpsboxsep\dp\pst@hbox=\pst@dimb\ht\pst@hbox=\pst@dimd\fi \leavevmode\box\pst@hbox - \endgroup% -} + \endgroup} +% \def\psdblframebox{\pst@object{psdblframebox}} \def\psdblframebox@i{\addto@par{doubleline=true}\psframebox@i} \def\psclip#1{% @@ -2095,93 +2258,99 @@ newpath \pscirclebox@iv \tx@SD end}% \pscirclebox@iv CLW 2 div add 0 360 arc closepath}% \end@ClosedObj \fi} +% \def\pscirclebox@iv{% -\pst@number{\wd\pst@hbox}2 div -\pst@number{\ht\pst@hbox}\pst@number{\dp\pst@hbox}add 2 div -2 copy \pst@number{\dp\pst@hbox}sub 4 2 roll -\tx@Pyth \pst@number\psframesep add } + \pst@number{\wd\pst@hbox}2 div + \pst@number{\ht\pst@hbox}\pst@number{\dp\pst@hbox}add 2 div + 2 copy \pst@number{\dp\pst@hbox}sub 4 2 roll + \tx@Pyth \pst@number\psframesep add } +% \def\pscirclebox@sep{% -\pst@dimb=\ht\pst@hbox -\advance\pst@dimb\dp\pst@hbox -\divide\pst@dimb 2 -\pst@dima=.5\wd\pst@hbox -\pst@pyth\pst@dima\pst@dimb\pst@dimc -\advance\pst@dimc\pslinewidth -\advance\pst@dimc\psframesep -\advance\pst@dimb-\pst@dimc -\setbox\pst@hbox=\hbox to2\pst@dimc{% -\hss -\vbox{\kern-\pst@dimb\box\pst@hbox}% -\hss}% -\advance\pst@dimb-\dp\pst@hbox -\dp\pst@hbox=-\pst@dimb} + \pst@dimb=\ht\pst@hbox + \advance\pst@dimb\dp\pst@hbox + \divide\pst@dimb 2 + \pst@dima=.5\wd\pst@hbox + \pst@pyth\pst@dima\pst@dimb\pst@dimc + \advance\pst@dimc\pslinewidth + \advance\pst@dimc\psframesep + \advance\pst@dimb-\pst@dimc + \setbox\pst@hbox=\hbox to2\pst@dimc{% + \hss\vbox{\kern-\pst@dimb\box\pst@hbox}\hss}% + \advance\pst@dimb-\dp\pst@hbox + \dp\pst@hbox=-\pst@dimb} +% \let\pst@nodehook\relax +% \def\psCirclebox{\pst@object{psCirclebox}} \def\psCirclebox@i{\pst@makebox\psCirclebox@ii} \def\psCirclebox@ii{% -\begingroup -\pst@useboxpar -\pst@dima=\ht\pst@hbox -\advance\pst@dima\dp\pst@hbox -\divide\pst@dima\tw@ -\pssetlength\pst@dimb\psk@radius -\setbox\pst@hbox=\hbox{% -\pst@nodehook -\pscircle(.5\wd\pst@hbox,\pst@dima){\pst@dimb}% -\box\pst@hbox}% -\ifpsboxsep \psCirclebox@sep \fi -\leavevmode -\box\pst@hbox -\endgroup} + \begingroup + \pst@useboxpar + \pst@dima=\ht\pst@hbox + \advance\pst@dima\dp\pst@hbox + \divide\pst@dima\tw@ + \pssetlength\pst@dimb\psk@radius + \setbox\pst@hbox=\hbox{% + \pst@nodehook + \pscircle(.5\wd\pst@hbox,\pst@dima){\pst@dimb}% + \box\pst@hbox}% + \ifpsboxsep \psCirclebox@sep \fi + \leavevmode + \box\pst@hbox + \endgroup} +% \def\psCirclebox@sep{% -\pst@dimc=\pst@dimb -\advance\pst@dimb-\pst@dima -\advance\pst@dima\pst@dimc -\setbox\pst@hbox=\hbox to\tw@\pst@dimc{% -\hss -\vrule width \z@ depth \pst@dimb height \pst@dima -\box\pst@hbox -\hss}}% + \pst@dimc=\pst@dimb + \advance\pst@dimb-\pst@dima + \advance\pst@dima\pst@dimc + \setbox\pst@hbox=\hbox to\tw@\pst@dimc{% + \hss\vrule width \z@ depth \pst@dimb height \pst@dima + \box\pst@hbox\hss}} +% \def\psovalbox{\pst@object{psovalbox}} \def\psovalbox@i{\pst@makebox{\psovalbox@ii}} \def\psovalbox@ii{% -\begingroup -\pst@useboxpar -\psovalbox@iii -\ifpsboxsep\psovalbox@sep\fi -\leavevmode -\box\pst@hbox -\endgroup} + \begingroup + \pst@useboxpar + \psovalbox@iii + \ifpsboxsep\psovalbox@sep\fi + \leavevmode + \box\pst@hbox + \endgroup} +% \def\psovalbox@iii{% -\psovalbox@iv -\setbox\pst@hbox=\hbox{% -\begin@ClosedObj -\addto@pscode{% -0 360 -\pst@number\pst@dimc CLW 2 div sub -\pst@number\pst@dimd CLW 2 div sub -\pst@number\pst@dima -\pst@number\pst@dimb -\tx@Ellipse -closepath}% -\def\pst@linetype{2}% -\end@ClosedObj -\unhbox\pst@hbox}} + \psovalbox@iv + \setbox\pst@hbox=\hbox{% + \begin@ClosedObj + \addto@pscode{% + 0 360 + \pst@number\pst@dimc CLW 2 div sub + \pst@number\pst@dimd CLW 2 div sub + \pst@number\pst@dima + \pst@number\pst@dimb + \tx@Ellipse + closepath }% + \def\pst@linetype{2}% + \end@ClosedObj + \unhbox\pst@hbox}} +% \def\psovalbox@iv{% -\pst@dimc=\pslinewidth\advance\pst@dimc\psframesep -\pst@dimd=\ht\pst@hbox\advance\pst@dimd\dp\pst@hbox -\pst@dima=.5\wd\pst@hbox -\pst@dimb=.5\pst@dimd\advance\pst@dimb-\dp\pst@hbox -\pst@dimd=.707\pst@dimd -\advance\pst@dimd\pst@dimc -\advance\pst@dimc.707\wd\pst@hbox} + \pst@dimc=\pslinewidth\advance\pst@dimc\psframesep + \pst@dimd=\ht\pst@hbox\advance\pst@dimd\dp\pst@hbox + \pst@dima=.5\wd\pst@hbox + \pst@dimb=.5\pst@dimd\advance\pst@dimb-\dp\pst@hbox + \pst@dimd=.707\pst@dimd + \advance\pst@dimd\pst@dimc + \advance\pst@dimc.707\wd\pst@hbox} +% \def\psovalbox@sep{% -\setbox\pst@hbox\hbox to 2\pst@dimc{\hss\unhbox\pst@hbox\hss}% -\pst@dimg=\pst@dimd -\advance\pst@dimg-\pst@dimb -\dp\pst@hbox=\pst@dimg -\advance\pst@dimd\pst@dimb -\ht\pst@hbox=\pst@dimd} + \setbox\pst@hbox\hbox to 2\pst@dimc{\hss\unhbox\pst@hbox\hss}% + \pst@dimg=\pst@dimd + \advance\pst@dimg-\pst@dimb + \dp\pst@hbox=\pst@dimg + \advance\pst@dimd\pst@dimb + \ht\pst@hbox=\pst@dimd} +% \def\psdiabox{\pst@object{psdiabox}} \def\psdiabox@i{\pst@makebox{\psdiabox@ii}} \def\psdiabox@ii{% @@ -2475,7 +2644,7 @@ pop \end@OpenObj% } \def\psellipticarc@definearg{% - \pst@tempa /y ED /x ED % Origin + \pst@tempa /yOrig ED /xOrig ED % Origin \pst@tempb % radii. Now adjust: \ifdim\psk@dimen\p@=\z@\else \psk@dimen CLW mul dup 3 1 roll @@ -2488,18 +2657,17 @@ pop ArcAdjust def /angleB - /d { \if@psarcn add \else sub \fi } def - \pst@tempd \psk@arcsepB 2 div - ArcAdjust - def - \ifshowpoints\psellipticarc@showpoints\fi - \ifx\psk@arrowA\@empty - \ifnum\psk@liftpen=2 - angleA cos rx mul x add - angleA sin ry mul y add - moveto - \fi - \fi% + /d { \if@psarcn add \else sub \fi } def + \pst@tempd \psk@arcsepB 2 div ArcAdjust + def + \ifshowpoints\psellipticarc@showpoints\fi + \ifx\psk@arrowA\@empty + \ifnum\psk@liftpen=2 + angleA cos rx mul xOrig add + angleA sin ry mul yOrig add + moveto + \fi + \fi } \def\psellipticarc@draw{% 0 0 1 @@ -2516,7 +2684,7 @@ pop EllipticArcArrow \fi /mtrx CM def - x y T + xOrig yOrig T rx ry scale \if@psarcn arcn \else arc \fi mtrx setmatrix% @@ -2524,7 +2692,7 @@ pop \def\psellipticarc@showpoints{% gsave /mtrx CM def - x y T + xOrig yOrig T rx ry scale 0 0 moveto 0 0 1 \pst@tempc \pst@tempd @@ -2538,32 +2706,34 @@ pop \def\pscircle{\pst@object{pscircle}} \def\pscircle@i{\@ifnextchar({\pscircle@do}{\pscircle@do(0,0)}} \def\pscircle@do(#1)#2{% -\if@star -{\use@par\qdisk(#1){#2}}% -\else -\begin@ClosedObj -\pst@@getcoor{#1}% -\pssetlength\pst@dimc{#2}% -\def\pst@linetype{4}% -\addto@pscode{% -\pst@coor -\pst@number\pst@dimc -\psk@dimen CLW mul sub -0 360 arc -closepath}% -\showpointsfalse -\end@ClosedObj -\fi -\ignorespaces} + \if@star{\use@par\qdisk(#1){#2}}% qdisk does not allow + \else% to use opacity option + \begin@ClosedObj + \pst@@getcoor{#1}% + \pssetlength\pst@dimc{#2}% + \def\pst@linetype{4}% + \addto@pscode{ + \pst@coor + \pst@number\pst@dimc + \psk@dimen CLW mul sub + 0 360 arc + closepath }% + \showpointsfalse + \end@ClosedObj + \fi + \ignorespaces} +% \def\qdisk(#1)#2{% -\def\pst@par{}% -\begin@SpecialObj -\pst@@getcoor{#1}% -\pssetlength\pst@dimg{#2}% -\addto@pscode{\pst@coor \pst@number\pst@dimg \tx@SD}% -\end@SpecialObj} + \def\pst@par{}% + \begin@SpecialObj + \pst@@getcoor{#1}% + \pssetlength\pst@dimg{#2}% + \addto@pscode{ \pst@coor \pst@number\pst@dimg \tx@SD }% + \end@SpecialObj} +% \def\psset@radius#1{\pst@@getlength{#1}\psk@radius} \psset@radius{.25cm} +% \def\psCircle{\pst@object{psCircle}} \def\psCircle@i{\@ifnextchar({\psCircle@ii}{\psCircle@ii(0,0)}} \def\psCircle@ii(#1){\pscircle@do(#1){\psk@radius}} @@ -2642,29 +2812,29 @@ closepath}% \ignorespaces} \def\psscalebox#1{\pst@makebox{\ps@scalebox{#1}}} \def\ps@scalebox#1{% - \begingroup - \pst@getscale{#1}\pst@tempa - \let\pst@tempc\pst@tempg - \let\pst@tempd\pst@temph - \ps@@scalebox + \begingroup% + \pst@getscale{#1}\pst@tempa% + \let\pst@tempc\pst@tempg% + \let\pst@tempd\pst@temph% + \ps@@scalebox% \endgroup} \def\ps@@scalebox{% - \leavevmode + \leavevmode% \hbox{% - \ifdim\pst@tempd\p@<\z@ - \pst@dimg=\pst@tempd\ht\pst@hbox - \pst@dimh=\pst@tempd\dp\pst@hbox - \dp\pst@hbox=-\pst@dimg - \ht\pst@hbox=-\pst@dimh - \else - \ht\pst@hbox=\pst@tempd\ht\pst@hbox - \dp\pst@hbox=\pst@tempd\dp\pst@hbox - \fi - \pst@dima=\pst@tempc\wd\pst@hbox - \ifdim\pst@dima<\z@\kern-\pst@dima\fi + \ifdim\pst@tempd\p@<\z@% + \pst@dimg=\pst@tempd\ht\pst@hbox% + \pst@dimh=\pst@tempd\dp\pst@hbox% + \dp\pst@hbox=-\pst@dimg% + \ht\pst@hbox=-\pst@dimh% + \else% + \ht\pst@hbox=\pst@tempd\ht\pst@hbox% + \dp\pst@hbox=\pst@tempd\dp\pst@hbox% + \fi% + \pst@dima=\pst@tempc\wd\pst@hbox% + \ifdim\pst@dima<\z@\kern-\pst@dima\fi% \pst@Verb{CP CP translate \pst@tempa \tx@NET}% \hbox to \z@{\box\pst@hbox\hss}% - \pst@Verb{% + \pst@Verb{ CP CP translate 1 \pst@tempc div 1 \pst@tempd div scale \tx@NET}% @@ -2769,6 +2939,7 @@ closepath}% \def\getref@l{\def\psk@xref{0}} \def\getref@r{\def\psk@xref{1}} \psset@ref{c} +% \def\psset@rot#1{% \pst@expandafter{\@ifnextchar*{\psset@@@rot}{\psset@@rot}}{#1}\@nil} \def\psset@@rot#1\@nil{% @@ -2806,9 +2977,9 @@ closepath}% } \def\psput@special#1{% \hbox{% - \pst@Verb{{ \pst@coor } \tx@PutCoor \tx@PutBegin}% + \pst@Verb{{ \pst@coor } \tx@PutCoor \tx@PutBegin }% \box#1% - \pst@Verb{\tx@PutEnd}% + \pst@Verb{ \tx@PutEnd }% }% } \def\tx@PutCoor{PutCoor } @@ -2971,31 +3142,33 @@ closepath}% \ifnum#2=2 \vskip\pslabelsep\else\vss\fi}} \def\tx@Uput{Uput } \def\tx@UUput{UUput } +% \def\Rput{\def\pst@par{}\pst@ifstar{\@ifnextchar[{\Rput@ii}{\Rput@i}}} \def\Rput@i#1{\addto@par{labelsep=#1}\Rput@ii} \def\Rput@ii[#1]{\addto@par{ref={#1}}\@ifnextchar({\Rput@iv}{\Rput@iii}} \def\Rput@iii#1{\addto@par{rot={#1}}\@ifnextchar({\Rput@iv}{\Rput@iv(\z@,\z@)}} \def\Rput@iv(#1){\pst@killglue\pst@makebox{\Rput@v{#1}}} \def\Rput@v#1{% -\begingroup -\use@par -\if@star\pst@starbox\fi -\Rput@vi -\pst@makesmall\pst@hbox -\pst@rotate\psk@rot\pst@hbox -\psput@{#1}\pst@hbox -\endgroup -\ignorespaces} + \begingroup + \use@par + \if@star\pst@starbox\fi + \Rput@vi + \pst@makesmall\pst@hbox + \pst@rotate\psk@rot\pst@hbox + \psput@{#1}\pst@hbox + \endgroup + \ignorespaces} +% \def\Rput@vi{% -\pst@dimg=\dp\pst@hbox -\advance\pst@dimg\pslabelsep -\dp\pst@hbox=\pst@dimg -\pst@dimg=\ht\pst@hbox -\advance\pst@dimg\pslabelsep -\ht\pst@hbox=\pst@dimg -\setbox\pst@hbox\hbox{\kern\pslabelsep\box\pst@hbox\kern\pslabelsep}}% -\def\oldpsput{% -\def\pst@par{}\pst@ifstar{\@ifnextchar[{\oldpsput@i}{\oldpsput@ii}}} + \pst@dimg=\dp\pst@hbox + \advance\pst@dimg\pslabelsep + \dp\pst@hbox=\pst@dimg + \pst@dimg=\ht\pst@hbox + \advance\pst@dimg\pslabelsep + \ht\pst@hbox=\pst@dimg + \setbox\pst@hbox\hbox{\kern\pslabelsep\box\pst@hbox\kern\pslabelsep}}% +% +\def\oldpsput{\def\pst@par{}\pst@ifstar{\@ifnextchar[{\oldpsput@i}{\oldpsput@ii}}} \def\oldpsput@i[#1]{\addto@par{ref={#1}}\oldpsput@ii} \def\oldpsput@ii{\@ifnextchar<{\oldpsput@iii}{\oldpsput@iv}} \def\oldpsput@iii<#1>{\rput@iii{#1}} @@ -3007,19 +3180,22 @@ closepath}% \newif\ifshowgrid \def\psset@showgrid#1{\@nameuse{showgrid#1}} \psset@showgrid{false} -\newdimen\psk@shift +% +\newdimen\pst@shift \def\psset@shift#1{\pssetlength\pst@dimg{#1}% - \psk@shift\pst@dimg} -% \global\psk@shift\pst@dimg} + \pst@shift\pst@dimg} +% \global\pst@shift\pst@dimg} \psset@shift{0} % ----------- 1.10/12 end hv ------------------- % +% +%------------------------------- pspicture ------------------------------ +% \def\pspicture{\begingroup\pst@ifstar\pst@picture} -\def\pst@picture{% -\@ifnextchar[{\pst@@picture}{\pst@@picture[]}} -\def\pst@@picture[#1]#2(#3,#4){% -\@ifnextchar({\pst@@@picture[#1](#3,#4)}% -{\pst@@@picture[#1](0,0)(#3,#4)}} +\def\pst@picture{\@ifnextchar[{\pst@@picture}{\pst@@picture[]}} +\def\pst@@picture[#1]#2(#3,#4){\@ifnextchar(% + {\pst@@@picture[#1](#3,#4)}% + {\pst@@@picture[#1](0,0)(#3,#4)}} % \def\pst@@@picture[#1](#2,#3)(#4,#5){% \pssetxlength\pst@dima{#2}% @@ -3052,7 +3228,7 @@ closepath}% \newdimen\pst@shift \def\endpspicture{% \pst@killglue - \global\pst@shift=\psk@shift% in fact of the following endgroup + \global\pst@shift=\pst@shift% in fact of the following endgroup \endgroup \egroup \ifdim\wd\pst@hbox=\z@\else @@ -3076,13 +3252,16 @@ closepath}% \if@star\setbox\pst@hbox=\hbox{\clipbox@@\z@}\fi \leavevmode\box\pst@hbox \endgroup% - \global\psk@shift\z@% restore value + \global\pst@shift\z@% restore value } \@namedef{pspicture*}{\pspicture*} \@namedef{endpspicture*}{\endpspicture} % +%------------------------------- Overlays ------------------------------ +% \def\tx@BeginOL{BeginOL } \def\tx@InitOL{InitOL } +% \def\pst@initoverlay#1{\pst@Verb{\tx@InitOL /TheOL (#1) def}} \def\AltOverlayMode{% \def\pst@initoverlay##1{% @@ -3093,14 +3272,17 @@ closepath}% CP newpath OLUnit itransform moveto clip newpath moveto } def /TheOL (##1) def}}} +% \def\pst@overlay#1{% \edef\curr@overlay{#1}% \pst@Verb{(#1) BOL}% \aftergroup\pst@endoverlay} -\def\pst@endoverlay{% - \pst@Verb{(\curr@overlay) BOL}} +% +\def\pst@endoverlay{\pst@Verb{(\curr@overlay) BOL}} \def\curr@overlay{all} +% \newbox\theoverlaybox +% \def\overlaybox{% \global\setbox\theoverlaybox=\hbox\bgroup \begingroup @@ -3112,12 +3294,16 @@ closepath}% before using \string\putoverlaybox}}% \psoverlay{main}% \ignorespaces} +% \def\endoverlaybox{\endgroup\egroup} \def\putoverlaybox#1{% -\hbox{\pst@initoverlay{#1}\copy\theoverlaybox}} + \hbox{\pst@initoverlay{#1}\copy\theoverlaybox}} +% \def\psoverlay{\@pstrickserr{\string\psoverlay\space -can only be used after \string\overlaybox}} + can only be used after \string\overlaybox}} +% \ifx\pstcustomize\relax \input pstricks.con \fi +% \catcode`\@=\PstAtCode\relax % \endinput diff --git a/Master/texmf-dist/tex/generic/pstricks/vtex.con b/Master/texmf-dist/tex/generic/pstricks/vtex.con index 430f35a50fd..c5016c1a27a 100644 --- a/Master/texmf-dist/tex/generic/pstricks/vtex.con +++ b/Master/texmf-dist/tex/generic/pstricks/vtex.con @@ -2,12 +2,12 @@ %% %% Configuration file for PSTricks 97 %% -%% Version 97 patch 4 (11-17-99) +%% Version 97 patch 5 2003-04-29 %% %% For use with VTeX PostScript driver v 6.61+ %% [MV, MK, special thanks to Denis Girou for help] %% -%% Requires vtex.def 6.61 or newer +%% Requires vtex.def 7.46 or newer, 10-14-01 %% %% For support and possible updates, check %% http://www.micropress-inc.com @@ -16,28 +16,22 @@ \def\pstdriver{VTeX} {\catcode`\"=12\gdef \pstverb#1{% -\ifnum\OpMode=1 - \special{pS*#1}% //Raw: PDFmode only. -\else - \special{pS: GS }% - \special{pS: #1}% - \special{pS: GR }% -\fi - }} + \special{pS*GS @beginspecial @setspecial #1 @endspecial GR }% +}}% \def\pstunit{1bp}% -\def\pstVerb#1{\special{pS: #1}} -\def\pstVerb#1{% - \special{pS: #1}% - } +\def\pstVerb#1{\special{pS: #1}}% \def\pstverbscale{SDict begin normalscale end} \ifx\textsuperscript\@undefined \def\pstheader#1{\special{header=#1}} \else - \ifx\Gin@PS@file@header\@undefined - \def\pstheader#1{\AtBeginDvi{\special{header=#1}}} - \else - \let\pstheader\Gin@PS@file@header - \fi +% D.G. modification begin - Apr. 29, 2003 - From Michael Vulis +% \ifx\Gin@PS@file@header\@undefined +% \def\pstheader#1{\AtBeginDvi{\special{header=#1}}} +% \else +% \let\pstheader\Gin@PS@file@header +% \fi + \def\pstheader#1{\AtBeginDvi{\immediate\special{header=#1}}} +% D.G. modification end \fi \def\pstrotate{CP CP translate 3 -1 roll neg rotate \tx@NET} %% @@ -56,18 +50,22 @@ \@colorstacktrue % D.G. modification begin - Nov. 17, 1999 \let\vtex@pspicture=\pspicture -\def\pspicture{\@colorstackfalse\vtex@pspicture} +\def\pspicture{\special{G(}\@colorstackfalse\vtex@pspicture}% \let\vtex@endpspicture=\endpspicture -\def\endpspicture{\vtex@endpspicture\@colorstacktrue} +\def\endpspicture{\vtex@endpspicture\@colorstacktrue\special{G)}% +} % D.G. modification end \fi \fi \pstcustomize \def\tx@RotBegin{neg RotBegin } +\def\pst@rotlist{mark RAngle /a ED cleartomark a } % D.G. modification begin - Oct. 6, 1999 \def\tx@Rot{neg Rot } % D.G. modification end +\def\psfs@solid{\pst@fill{\pst@usecolor\psfillcolor fill }} +\def\psfs@eofill{\pst@fill{\pst@usecolor\psfillcolor eofill}} \endinput %% |