diff options
author | Karl Berry <karl@freefriends.org> | 2010-02-11 23:48:39 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2010-02-11 23:48:39 +0000 |
commit | a82c24b304d3a6727a9cd210d82b33b2c9e3119b (patch) | |
tree | 2f331ad49c6edf41f80a30eda60945397bb38428 /Master/texmf-dist/tex/generic/pstricks | |
parent | b164898a09f10287c030149a0a36c7938627a9c3 (diff) |
pstricks 0.41 (11feb10)
git-svn-id: svn://tug.org/texlive/trunk@16973 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/generic/pstricks')
-rw-r--r-- | Master/texmf-dist/tex/generic/pstricks/distiller.con | 160 | ||||
-rw-r--r-- | Master/texmf-dist/tex/generic/pstricks/dvipsone.con | 138 | ||||
-rw-r--r-- | Master/texmf-dist/tex/generic/pstricks/pst-fp.tex | 714 | ||||
-rw-r--r-- | Master/texmf-dist/tex/generic/pstricks/pst-node.tex | 1154 | ||||
-rw-r--r-- | Master/texmf-dist/tex/generic/pstricks/pst-plot.tex | 709 | ||||
-rw-r--r-- | Master/texmf-dist/tex/generic/pstricks/pstricks.con | 6 | ||||
-rw-r--r-- | Master/texmf-dist/tex/generic/pstricks/pstricks.tex | 1412 | ||||
-rw-r--r-- | Master/texmf-dist/tex/generic/pstricks/textures.con | 127 | ||||
-rw-r--r-- | Master/texmf-dist/tex/generic/pstricks/vtex.con | 170 | ||||
-rw-r--r-- | Master/texmf-dist/tex/generic/pstricks/xdvipdfmx.con | 225 |
10 files changed, 1523 insertions, 3292 deletions
diff --git a/Master/texmf-dist/tex/generic/pstricks/distiller.con b/Master/texmf-dist/tex/generic/pstricks/distiller.con deleted file mode 100644 index d7c25ab6ea9..00000000000 --- a/Master/texmf-dist/tex/generic/pstricks/distiller.con +++ /dev/null @@ -1,160 +0,0 @@ -%% BEGIN: distiller.con (for distiller driver) -%% -%% Configuration file for PSTricks -%% -%% Version 0.01 (2008/01/24) -%% -%% For use with Adobes Distiller (tested with v7.0.7) -%% -%% COPYRIGHT 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 -%% archives in directory macros/latex/base/lppl.txt. -% -\def\pstdriver{distiller} -{\catcode`\"=12\gdef\pstverb#1{\special{" #1}}} % Check catcode of " -\def\pstunit{1bp}% -\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 -\fi -%% In the following, CP is short for currentpoint. -%% The neg is necessary because dvips scales the coordinates by 1 -1. -%% \tx@NET means neg exch neg exch translate. -\def\pstrotate{CP CP translate 3 -1 roll neg rotate \tx@NET} -% -\pst@def{setTransparency}< - [ /BM/Normal - /ca \psk@opacityalpha - /CA \psk@opacityalpha /SetTransparency pdfmark > -\pst@def{setStrokeTransparency}< - [ /BM/Normal - /ca \psk@strokeopacityalpha - /CA \psk@strokeopacityalpha /SetTransparency pdfmark > -\pst@def{setBlendmode}< - [ /BM\ifcase\psk@blendmode% - /Normal \or - /Compatible %\or - \else /Normal - /Screen \or - /Multiply %\or -% /Hardlight - \fi/ca \psk@shapealpha /CA \psk@opacityalpha /SetTransparency pdfmark > -%% -%% ****************** END distiller.con ***************************** - -%%%%%%%%%%%%%%%%%%% !! CUSTOMIZATION STUFF GOES HERE: !! %%%%%%%%%%%%%%%%%% -%% If you want to include your own customizations to pstricks.tex, then -%% uncomment the \pstcustomize command, and include your modifications -%% after \pstcustomize. These will be read in after pstricks.tex. -%\pstcustomize -% -\endinput - -%% -%%%%%%%%%%%%%%%%%%% !! GENERAL INSTRUCTIONS !! %%%%%%%%%%%%%%%%%%%%%%%%%%%% - -Because there are no standards for dvi-to-PS driver \special's, -some driver-dependent commands must be defined in this file. - -Possibly correct definitions for some dvi drivers are given below. -Copy the section for the driver you want to use to the indicated place -near the beginning of the file, replacing any other definitions you -might find there. - -When changing drivers, you may need to remake the header file. - -See the PSTricks read-me file for further installation instructions. - -Please report good and bad experiences with dvi-to-PS drivers, -along with the definitions of these commands that worked -for you, to tvz@Princeton.EDU. Thanks. - - -%%%%%%%%%%%%%%%% DESCRIPTION OF CONFIGURATION DEFINITIONS %%%%%%%%%%%%%%% - -Here are the commands that must be defined in this file: - - \pstverb{} - The argument is included as verbatim PostScript, - grouped by save and restore. The coordinate system - should be square, not rotated, and with the origin - at TeX's currentpoint. - - \pstVerb{} - The argument is included as verbatim PostScript, not - grouped by (g)save and (g)restore. The currentpoint - should be TeX's currentpoint. - - \pstunit - The units used by driver for graphics included with - \pstverb. Probably 1bp or 1sp. - - \pstverbscale - The PostScript code that scales the coordinate system - from that in effect with \pstVerb to that in effect - with \pstverb. Should not translate to the currentpoint. - - \pstrotate - The PostScript code that takes a number off the stack - and rotates the axes properly. I.e., - \pstVerb{angle \pstrotate} is used to begin rotations. - - \pstheader{} - The argument is a header file (e.g., .pro file). - If your driver does not support such a special, then - the command might just remind you to include the header - when printing. You can use PSTricks without a header, - in which case it does not matter how you define - \pstheader. See read-me.pst for details. - If you cannot change the default directory where your - driver looks for header files, and you cannot write to - that directory, then you include the path for your - PSTricks header files. - E.g., \def\pstheader#1{\special{header=~/tex/#1}}. - - \pstdriver - The name of the driver. - - -%%%%%%%%% !! HOW TO MAKE A TEX FORMAT WITH PSTRICKS PRELOADED !! %%%%%%%% - -See your local TeX documentation for instructions on creating a TeX format. - -Before making the format, be sure that this configuration file is correct. -It will be read only when creating the format, and not with every job. - -If you are not using header files, there are no more special instructions. - -Special instructions when using header files: - - - If you want to include supplementary PSTricks files (e.g., pst-node.tex), - add \input commands in the customization section above. - - - If your definition of \pstheader is, e.g. - - \def\pstheader#1{\special{\header=#1}} - - then change it to - - \def\pstheader#1{% - \expandafter\everyjob\expandafter{\the\everyjob - \special{header=#1}}} - - and put your original definition in the customization section, AFTER - any \input commands. E.g., the customization section might look like: - - \pstcustomize - \input pst-node.tex - \input pst-coil.tex - \def\pstheader#1{\special{header=#1}} - - - Input pstricks.tex at the appropriate time when creating the format. - E.g., when initex stops running: - *\input pstricks - *\dump - - -%% -%% END: distiller.con diff --git a/Master/texmf-dist/tex/generic/pstricks/dvipsone.con b/Master/texmf-dist/tex/generic/pstricks/dvipsone.con deleted file mode 100644 index 4a90292dd00..00000000000 --- a/Master/texmf-dist/tex/generic/pstricks/dvipsone.con +++ /dev/null @@ -1,138 +0,0 @@ -%% BEGIN pstricks.con (for DVIPSONE driver) -%% -%% Configuration file for PSTricks 97: must be renamed `pstricks.con' -%% -%% Version 97 (1994/03/29) -%% -%% For use with DVIPSONE. (May require the -j flag with dvipsone) - -\def\pstdriver{DVIPSONE} -\def\pstunit{1bp} -{\catcode`\"=12 \gdef\pstverb#1{\special{" #1}} } -\def\pstVerb#1{\special{ps:: #1}} -\def\pstverbscale{1 dviscl div dup neg scale} -\def\pstrotate{CP CP translate 3 -1 roll neg rotate \tx@NET} -\def\pstheader#1{\special{header=#1}} - -\pstcustomize - -\endinput - -%% To get PSTricks charpath and textpath to work: -%----------- pst-show.pro ------------------------------------------ -%! -% Patch for dvipsone to get PSTricks' charpath and textpath to work. -% Save as pst-show.pro, put it with your other PSTricks .pro files. -% Add "\pstheader{pst-show.pro}" to the beginning of your document. -% -% We unbind show: -dvidict begin -/S {show dup 0 rmoveto} def -/T {show 2 index 0 rmoveto} def -/s {show} def -end - -\endinput -%------------- end pst-show.pro ------------------------------------ -%% -%%%%%%%%%%%%%%%%%%% !! GENERAL INSTRUCTIONS !! %%%%%%%%%%%%%%%%%%%%%%%%%%%% - -Because there are no standards for dvi-to-PS driver \special's, -some driver-dependent commands must be defined in this file. - -Possibly correct definitions for some dvi drivers are given below. -Copy the section for the driver you want to use to the indicated place -near the beginning of the file, replacing any other definitions you -might find there. - -When changing drivers, you may need to remake the header file. - -See the PSTricks read-me file for further installation instructions. - -Please report good and bad experiences with dvi-to-PS drivers, -along with the definitions of these commands that worked -for you, to tvz@Princeton.EDU. Thanks. - - -%%%%%%%%%%%%%%%% DESCRIPTION OF CONFIGURATION DEFINITIONS %%%%%%%%%%%%%%% - -Here are the commands that must be defined in this file: - - \pstverb{} - The argument is included as verbatim PostScript, - grouped by save and restore. The coordinate system - should be square, not rotated, and with the origin - at TeX's currentpoint. - - \pstVerb{} - The argument is included as verbatim PostScript, not - grouped by (g)save and (g)restore. The currentpoint - should be TeX's currentpoint. - - \pstunit - The units used by driver for graphics included with - \pstverb. Probably 1bp or 1sp. - - \pstverbscale - The PostScript code that scales the coordinate system - from that in effect with \pstVerb to that in effect - with \pstverb. Should not translate to the currentpoint. - - \pstrotate - The PostScript code that takes a number off the stack - and rotates the axes properly. I.e., - \pstVerb{angle \pstrotate} is used to begin rotations. - - \pstheader{} - The argument is a header file (e.g., .pro file). - If your driver does not support such a special, then - the command might just remind you to include the header - when printing. You can use PSTricks without a header, - in which case it does not matter how you define - \pstheader. See read-me.pst for details. - If you cannot change the default directory where your - driver looks for header files, and you cannot write to - that directory, then you include the path for your - PSTricks header files. - E.g., \def\pstheader#1{\special{header=~/tex/#1}}. - - \pstdriver - The name of the driver. - - -%%%%%%%%% !! HOW TO MAKE A TEX FORMAT WITH PSTRICKS PRELOADED !! %%%%%%%% - -See your local TeX documentation for instructions on creating a TeX format. - -Before making the format, be sure that this configuration file is correct. -It will be read only when creating the format, and not with every job. - -If you are not using header files, there are no more special instructions. - -Special instructions when using header files: - - - If you want to include supplementary PSTricks files (e.g., pst-node.tex), - add \input commands in the customization section above. - - - If your definition of \pstheader is, e.g. - - \def\pstheader#1{\special{\header=#1}} - - then change it to - - \def\pstheader#1{% - \expandafter\everyjob\expandafter{\the\everyjob - \special{header=#1}}} - - and put your original definition in the customization section, AFTER - any \input commands. E.g., the customization section might look like: - - \pstcustomize - \input pst-node.tex - \input pst-coil.tex - \def\pstheader#1{\special{header=#1}} - - - Input pstricks.tex at the appropriate time when creating the format. - E.g., when initex stops running: - *\input pstricks - *\dump - - -%% -%% END: pstricks.con - -%% -%% END: dvipsone.con diff --git a/Master/texmf-dist/tex/generic/pstricks/pst-fp.tex b/Master/texmf-dist/tex/generic/pstricks/pst-fp.tex new file mode 100644 index 00000000000..046f8e58185 --- /dev/null +++ b/Master/texmf-dist/tex/generic/pstricks/pst-fp.tex @@ -0,0 +1,714 @@ +%% $Id: pst-fp.tex 259 2010-01-17 09:51:50Z herbert $ +%% +%% +%% This is file `pst-fp.tex', +%% +%% IMPORTANT NOTICE: +%% +%% Package `pst-fp.tex' +%% +%% Herbert Voss <hvoss@tug.org> +%% stolen from the fp package by Michael Mehlich +%% +%% 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. +%% +%% DESCRIPTION: +%% `pst-fp' is a PSTricks related package for a division, +%% multiplication and addition +%% +\csname PSTFPloaded\endcsname +\let\PSTFPloaded\endinput +% +% Requires some packages +\ifx\PSTricksLoaded\endinput\else\input pstricks \fi +% +\def\fileversion{0.05} +\def\filedate{2010/01/17} +\message{`pst-fp' v\fileversion, \filedate\space (hv)} +% +\edef\PstAtCode{\the\catcode`\@} \catcode`\@=11\relax + +%fixed point arithmetic with values between (including) +% -999999999999999999.999999999999999999 +% and +999999999999999999.999999999999999999 + +\def\pstFPadd#1#2#3{\pstFP@callc\pstFP@add#1{#2}{#3}+\relax} % #1 := #2+#3 +\def\pstFPsub#1#2#3{\pstFP@callc\pstFP@add#1{#2}{-#3}-\relax}% #1 := #2-#3 +\def\pstFPmul#1#2#3{\pstFP@callc\pstFP@mul#1{#2}{#3}} % #1 := #2*#3 +\def\pstFPdiv#1#2#3{\pstFP@callc\pstFP@div#1{#2}{#3}} % #1 := #2/#3 + +\def\pst@int#1{\expandafter\pst@@int#1..\@nil} +\def\pst@@int#1.#2.\@nil{#1} +\def\pst@Int#1{% + \@tempdima=#1\relax% + \expandafter\pst@@Int\the\@tempdima\@nil} +\def\pst@@Int#1.#2\@nil{#1} + +% +\def\pstFPMul#1#2#3{\pstFP@callc\pstFP@mul#1{#2}{#3}% % #1 := int(#2/#3) + \edef#1{\pst@int{#1}}}% +\def\pstFPDiv#1#2#3{\pstFP@callc\pstFP@div#1{#2}{#3}% % #1 := int(#2/#3) + \edef#1{\pst@int{#1}}}% +\def\pstFPstripZeros#1#2{\pst@dimm=#1pt\relax \edef#2{\strip@pt\pst@dimm}} +% +\countdef\pstFP@actcounter=10 % register 0 for counter +\ifnum\pstFP@actcounter<60\relax \pstFP@actcounter=60\fi + +\newcount\pstFP@xs %sign of 1st value +\newcount\pstFP@xia%integer part of 1st value +\newcount\pstFP@xib%integer part of 1st value +\newcount\pstFP@xfa%fractional part of 1st value +\newcount\pstFP@xfb%fractional part of 1st value + +\countdef\pstFP@ys=5 %sign of 2nd value +\countdef\pstFP@yia=6%integer part of 2nd value +\countdef\pstFP@yib=7%integer part of 2nd value +\countdef\pstFP@yfa=8%fractional part of 2nd value +\countdef\pstFP@yfb=9%fractional part of 2nd value + +\countdef\pstFP@xk=10 %registers for splitting 1st value +\countdef\pstFP@xl=11 +\countdef\pstFP@xm=12 +\countdef\pstFP@xn=13 +\countdef\pstFP@xo=14 +\countdef\pstFP@xp=15 +\countdef\pstFP@xq=16 +\countdef\pstFP@xr=17 +\countdef\pstFP@xz=18 +\countdef\pstFP@xt=19 +\countdef\pstFP@xu=20 +\countdef\pstFP@xv=21 + +\countdef\pstFP@yk=22 %registers for splitting 2nd value +\countdef\pstFP@yl=23 +\countdef\pstFP@ym=24 +\countdef\pstFP@yn=25 +\countdef\pstFP@yo=26 +\countdef\pstFP@yp=27 +\countdef\pstFP@yq=28 +\countdef\pstFP@yr=29 +\countdef\pstFP@yz=30 +\countdef\pstFP@yt=31 +\countdef\pstFP@yu=32 +\countdef\pstFP@yv=33 + +\newcount\pstFP@rega %auxiliary registers +\newcount\pstFP@regb +\countdef\pstFP@regc=36 +\countdef\pstFP@regd=37 +\countdef\pstFP@rege=38 + +\countdef\pstFP@rs=39 %result registers +\countdef\pstFP@ria=40 +\countdef\pstFP@rib=41 +\countdef\pstFP@rfa=42 +\countdef\pstFP@rfb=43 + +\newcount\pstFP@regs %local auxiliary registers +\countdef\pstFP@count=45 +\countdef\pstFP@res=46 +\countdef\pstFP@shift=47 +\newcount\pstFP@times +\countdef\pstFP@prod=49 + +%auxiliary macros which may be used in all of the following macros +\newif\ifpstFP@test + +\def\pstFP@ignorenext#1{} +\def\pstFP@first#1#2\relax{#1} +\def\pstFP@swallow#1\relax{} +% +\def\ifpstFP@zero#1{% + \ifnum% + \expandafter\ifnum\csname pstFP@#1ia\endcsname=0 0\else1\fi% + \expandafter\ifnum\csname pstFP@#1ib\endcsname=0 0\else1\fi% + \expandafter\ifnum\csname pstFP@#1fa\endcsname=0 0\else1\fi% + \expandafter\ifnum\csname pstFP@#1fb\endcsname=0 0\else1\fi% + =0\relax% +} +% +%read value +% +\def\pstFP@correctintcounter#1\relax{% + {\edef\pstFP@tmp{#1}% + \pstFP@count=0\relax% + \loop% + \edef\pstFP@tmpa{\expandafter\pstFP@first\pstFP@tmp\noexpand\relax}% + \expandafter\ifx\pstFP@tmpa0\relax% + \advance\pstFP@count1\relax% + \edef\pstFP@tmp{\expandafter\pstFP@ignorenext\pstFP@tmp}% + \repeat% + \ifnum\pstFP@count>18\relax \typeout{>>>> Overflow}\fi% + \expandafter\if!\pstFP@tmp!% + \advance\pstFP@count-18\relax% + \pstFP@count=-\pstFP@count% + \loop% + \ifnum\pstFP@count>0\relax% + \pstFP@regc=\pstFP@rega% + \divide\pstFP@rega10\relax\multiply\pstFP@rega10\relax% + \advance\pstFP@regc-\pstFP@rega\multiply\pstFP@regc100000000\relax% + \divide\pstFP@rega10\relax% + \divide\pstFP@regb10\relax\advance\pstFP@regb\pstFP@regc% + \advance\pstFP@count-1\relax% + \repeat% + \global\pstFP@rega=\pstFP@rega% + \global\pstFP@regb=\pstFP@regb% + \else% + \typeout{>>>>Number too big}% + \fi% + }% +} +\def\pstFP@@setintcounter#1#2#3#4#5#6#7#8#9{% + \pstFP@regb=#1#2#3#4#5#6#7#8#9\relax% + \pstFP@correctintcounter% +} +\def\pstFP@setintcounter#1#2#3#4#5#6#7#8#9{% + \pstFP@rega=#1#2#3#4#5#6#7#8#9\relax% + \pstFP@@setintcounter% +} + +\def\pstFP@@setfractcounter#1#2#3#4#5#6#7#8#9{% + \pstFP@regb=#1#2#3#4#5#6#7#8#9\relax% + \pstFP@swallow% +} +\def\pstFP@setfractcounter#1#2#3#4#5#6#7#8#9{% + \pstFP@rega=#1#2#3#4#5#6#7#8#9\relax% + \pstFP@@setfractcounter% +} + +\def\pstFP@getsign#1\relax{% + {\pstFP@regs=1\relax% + \edef\pstFP@tmp{#1}% + \loop% + \edef\pstFP@tmpa{\expandafter\pstFP@first\pstFP@tmp\noexpand\relax}% + \expandafter\ifx\pstFP@tmpa-\relax% + \multiply\pstFP@regs-1\relax% + \fi% + \ifnum\expandafter\ifx\pstFP@tmpa-1\else0\fi\expandafter\ifx\pstFP@tmpa+1\else0\fi>0% + \edef\pstFP@tmp{\expandafter\pstFP@ignorenext\pstFP@tmp}% + \repeat% + \global\let\pstFP@tmp\pstFP@tmp% + \global\pstFP@regs=\pstFP@regs% + }% +} + +\def\pstFP@removeleadingzeros#1\relax{% + {\edef\pstFP@tmp{#1}% + \loop% + \edef\pstFP@tmpa{\expandafter\pstFP@first\pstFP@tmp\noexpand\relax}% + \expandafter\ifx\pstFP@tmpa0\relax% + \edef\pstFP@tmp{\expandafter\pstFP@ignorenext\pstFP@tmp}% + \repeat% + \global\let\pstFP@tmp\pstFP@tmp% + }% +} + +\newif\ifpstFP@nonstop +\def\pstFP@strip#1{% + {\edef\pstFP@tmp{#1}% + \edef\pstFP@tmpb{}% + \ifx\pstFP@tmp\@empty\else% + \pstFP@nonstoptrue% + \loop% + \edef\pstFP@tmpa{\expandafter\pstFP@first\pstFP@tmp\noexpand\relax}% + \expandafter\ifx\pstFP@tmpa-\relax\edef\pstFP@tmpb{\pstFP@tmpb\pstFP@tmpa}\else% + \expandafter\ifx\pstFP@tmpa+\relax\edef\pstFP@tmpb{\pstFP@tmpb\pstFP@tmpa}\else% + \expandafter\ifx\pstFP@tmpa0\relax\edef\pstFP@tmpb{\pstFP@tmpb\pstFP@tmpa}\else% + \expandafter\ifx\pstFP@tmpa1\relax\edef\pstFP@tmpb{\pstFP@tmpb\pstFP@tmpa}\else% + \expandafter\ifx\pstFP@tmpa2\relax\edef\pstFP@tmpb{\pstFP@tmpb\pstFP@tmpa}\else% + \expandafter\ifx\pstFP@tmpa3\relax\edef\pstFP@tmpb{\pstFP@tmpb\pstFP@tmpa}\else% + \expandafter\ifx\pstFP@tmpa4\relax\edef\pstFP@tmpb{\pstFP@tmpb\pstFP@tmpa}\else% + \expandafter\ifx\pstFP@tmpa5\relax\edef\pstFP@tmpb{\pstFP@tmpb\pstFP@tmpa}\else% + \expandafter\ifx\pstFP@tmpa6\relax\edef\pstFP@tmpb{\pstFP@tmpb\pstFP@tmpa}\else% + \expandafter\ifx\pstFP@tmpa7\relax\edef\pstFP@tmpb{\pstFP@tmpb\pstFP@tmpa}\else% + \expandafter\ifx\pstFP@tmpa8\relax\edef\pstFP@tmpb{\pstFP@tmpb\pstFP@tmpa}\else% + \expandafter\ifx\pstFP@tmpa9\relax\edef\pstFP@tmpb{\pstFP@tmpb\pstFP@tmpa}\else% + \ifx\pstFP@tmpa\@empty\pstFP@nonstopfalse\else% + \ifx\pstFP@tmpa\space\pstFP@nonstopfalse\else% + \typeout{>>> Illegal character \pstFP@tmpa\space found in float number}% + \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi% + \edef\pstFP@tmp{\expandafter\pstFP@ignorenext\pstFP@tmp}% + \ifx\pstFP@tmp\@empty\pstFP@nonstopfalse\fi% + \ifpstFP@nonstop% + \repeat% + \fi% + \global\let\pstFP@tmp\pstFP@tmpb% + }% +} + +\def\pstFP@readvalue#1#2#3{% + % #1 macro family to catch the value + % #2.#3 value + % + % regular expression [+|-]*[d]_0^18.[d]* + % + \pstFP@strip{#2}% + %sign + \expandafter\pstFP@getsign\pstFP@tmp\relax% + \csname pstFP@#1s\endcsname=\pstFP@regs% + % + %integer part + \pstFP@removeleadingzeros\pstFP@tmp\relax% + \expandafter\pstFP@setintcounter\pstFP@tmp000000000000000000\relax% + \csname pstFP@#1ia\endcsname=\pstFP@rega% + \csname pstFP@#1ib\endcsname=\pstFP@regb% + % + %fractional part + \pstFP@strip{#3}% + \expandafter\pstFP@setfractcounter\pstFP@tmp000000000000000000\relax% + \csname pstFP@#1fa\endcsname=\pstFP@rega% + \csname pstFP@#1fb\endcsname=\pstFP@regb% + % + %correct sign + \ifnum\pstFP@rega=0\relax% + \ifnum\pstFP@regb=0\relax% + \expandafter\ifnum\csname pstFP@#1ib\endcsname=0\relax% + \expandafter\ifnum\csname pstFP@#1ia\endcsname=0\relax% + \csname pstFP@#1s\endcsname=1\relax% + \fi% + \fi% + \fi% + \fi% +} +% +%store value in macro +% +\def\pstFP@store#1#2{% + % #1 macro + % #2 macro family (value) to store + % + \ifpstFP@zero{#2}% + \csname pstFP@#2s\endcsname=1\relax% + \fi% + \expandafter\ifnum\csname pstFP@#2s\endcsname<0\relax% + \edef#1{-}% + \else% + \edef#1{}% + \fi% + \expandafter\ifnum\csname pstFP@#2ia\endcsname=0\relax% + \expandafter\ifnum\csname pstFP@#2ib\endcsname=0\relax% + \edef#1{#10}% + \else% + \edef#1{#1\expandafter\the\csname pstFP@#2ib\endcsname}% + \fi% + \else% + \expandafter\advance\csname pstFP@#2ib\endcsname1000000000\relax% + \edef#1{#1\expandafter\the\csname pstFP@#2ia\endcsname\expandafter\pstFP@ignorenext\the\csname pstFP@#2ib\endcsname}% + \fi% + \expandafter\advance\csname pstFP@#2fa\endcsname1000000000\relax% + \expandafter\advance\csname pstFP@#2fb\endcsname1000000000\relax% + \edef#1{#1\noexpand.\expandafter\pstFP@ignorenext\the\csname pstFP@#2fa\endcsname\expandafter\pstFP@ignorenext\the\csname pstFP@#2fb\endcsname}% +} +%macros to expand some arguments +% +\def\pstFP@callc#1#2#3#4{% + % #1 macro to call + % #2 macro, which gets the result + % #3 1st value + % #4 2nd value + % expand the values and split them into the integer and the fractional parts + \edef\next{\noexpand#1\noexpand#2#3..\noexpand\relax#4..\noexpand\relax}% + \next% +} +% +\def\pstFP@divten#1{% + \expandafter\pstFP@regc\csname pstFP@#1ia\endcsname% + \expandafter\divide\csname pstFP@#1ia\endcsname10\relax% + \expandafter\pstFP@regb\csname pstFP@#1ia\endcsname% + \multiply\pstFP@regb10\relax% + \advance\pstFP@regc-\pstFP@regb% + \multiply\pstFP@regc100000000\relax% + % + \expandafter\pstFP@rega\csname pstFP@#1ib\endcsname% + \expandafter\divide\csname pstFP@#1ib\endcsname10\relax% + \expandafter\pstFP@regb\csname pstFP@#1ib\endcsname% + \multiply\pstFP@regb10\relax% + \advance\pstFP@rega-\pstFP@regb% + \multiply\pstFP@rega100000000\relax% + \expandafter\advance\csname pstFP@#1ib\endcsname\pstFP@regc% + % + \expandafter\pstFP@regc\csname pstFP@#1fa\endcsname% + \expandafter\divide\csname pstFP@#1fa\endcsname10\relax% + \expandafter\pstFP@regb\csname pstFP@#1fa\endcsname% + \multiply\pstFP@regb10\relax% + \advance\pstFP@regc-\pstFP@regb% + \multiply\pstFP@regc100000000\relax% + \expandafter\advance\csname pstFP@#1fa\endcsname\pstFP@rega% + % + \expandafter\divide\csname pstFP@#1fb\endcsname10\relax% + \expandafter\advance\csname pstFP@#1fb\endcsname\pstFP@regc% +} +% +\def\pstFP@multen#1{% + \expandafter\multiply\csname pstFP@#1ia\endcsname10\relax% + \expandafter\ifnum\csname pstFP@#1ib\endcsname<100000000\relax% + \else% + \expandafter\pstFP@regc\csname pstFP@#1ib\endcsname% + \divide\pstFP@regc100000000% + \expandafter\advance\csname pstFP@#1ia\endcsname\pstFP@regc% + \multiply\pstFP@regc100000000% + \expandafter\advance\csname pstFP@#1ib\endcsname-\pstFP@regc% + \fi% + \expandafter\multiply\csname pstFP@#1ib\endcsname10\relax% + \expandafter\ifnum\csname pstFP@#1fa\endcsname<100000000\relax% + \else% + \expandafter\pstFP@regc\csname pstFP@#1fa\endcsname% + \divide\pstFP@regc100000000% + \expandafter\advance\csname pstFP@#1ib\endcsname\pstFP@regc% + \multiply\pstFP@regc100000000% + \expandafter\advance\csname pstFP@#1fa\endcsname-\pstFP@regc% + \fi% + \expandafter\multiply\csname pstFP@#1fa\endcsname10\relax% + \expandafter\ifnum\csname pstFP@#1fb\endcsname<100000000\relax% + \else% + \expandafter\pstFP@regc\csname pstFP@#1fb\endcsname% + \divide\pstFP@regc100000000% + \expandafter\advance\csname pstFP@#1fa\endcsname\pstFP@regc% + \multiply\pstFP@regc100000000% + \expandafter\advance\csname pstFP@#1fb\endcsname-\pstFP@regc% + \fi% + \expandafter\multiply\csname pstFP@#1fb\endcsname10\relax% +} +% +\def\pstFP@counttimes{% + {\global\pstFP@times=0\relax% + \loop% + \ifnum% + \ifnum\pstFP@xia>\pstFP@yia1% + \else\ifnum\pstFP@xia<\pstFP@yia0% + \else% + \ifnum\pstFP@xib>\pstFP@yib1% + \else\ifnum\pstFP@xib<\pstFP@yib0% + \else% + \ifnum\pstFP@xfa>\pstFP@yfa1% + \else\ifnum\pstFP@xfa<\pstFP@yfa0% + \else% + \ifnum\pstFP@xfb>\pstFP@yfb1% + \else\ifnum\pstFP@xfb<\pstFP@yfb0% + \else% + 1% + \fi\fi% + \fi\fi% + \fi\fi% + \fi\fi% + =1\relax% + \global\advance\pstFP@times1\relax% + \global\advance\pstFP@xfb-\pstFP@yfb% + \ifnum\pstFP@xfb<0\relax% + \global\advance\pstFP@xfb1000000000\relax% + \global\advance\pstFP@xfa-1\relax% + \fi% + \global\advance\pstFP@xfa-\pstFP@yfa% + \ifnum\pstFP@xfa<0\relax% + \global\advance\pstFP@xfa1000000000\relax% + \global\advance\pstFP@xib-1\relax% + \fi% + \global\advance\pstFP@xib-\pstFP@yib% + \ifnum\pstFP@xib<0\relax% + \global\advance\pstFP@xib1000000000\relax% + \global\advance\pstFP@xia-1\relax% + \fi% + \global\advance\pstFP@xia-\pstFP@yia% + \repeat% + }% +} +% +\def\pstFP@add#1#2.#3.#4\relax#5.#6.#7\relax#8\relax{% + % #1 macro, which gets the result + % #2 integer part of 1st value + % #3 fractional part of 1st value + % #4 dummy to swallow everthing after the 2nd '.' + % #5 integer part of 2nd value + % #6 fractional part of 2nd value + % #7 dummy to swallow everthing after the 2nd '.' + % + {\pstFP@readvalue{x}{#2}{#3}% + \pstFP@readvalue{y}{#5}{#6}% + % + \ifnum\pstFP@xs=\pstFP@ys% + \advance\pstFP@xfb\pstFP@yfb% + \advance\pstFP@xfa\pstFP@yfa% + \ifnum\pstFP@xfb<1000000000\relax\else% + \advance\pstFP@xfb-1000000000\relax% + \advance\pstFP@xfa1\relax% + \fi% + \advance\pstFP@xib\pstFP@yib% + \ifnum\pstFP@xfa<1000000000\relax\else% + \advance\pstFP@xfa-1000000000\relax% + \advance\pstFP@xib1\relax% + \fi% + \advance\pstFP@xia\pstFP@yia% + \ifnum\pstFP@xib<1000000000\relax\else% + \advance\pstFP@xib-1000000000\relax% + \advance\pstFP@xia1\relax% + \fi% + \ifnum\pstFP@xia<1000000000\relax\else% + \pstFP@errmessage{Overflow}% + \fi% + \pstFP@store\pstFP@tmp{x}% + \else% + \advance\pstFP@xfb-\pstFP@yfb% + \ifnum\pstFP@xfb<0\relax% + \advance\pstFP@yfa1\relax% + \advance\pstFP@xfb1000000000\relax% + \fi% + \advance\pstFP@xfa-\pstFP@yfa% + \ifnum\pstFP@xfa<0\relax% + \advance\pstFP@yib1\relax% + \advance\pstFP@xfa1000000000\relax% + \fi% + \advance\pstFP@xib-\pstFP@yib% + \ifnum\pstFP@xib<0\relax% + \advance\pstFP@yia1\relax% + \advance\pstFP@xib1000000000\relax% + \fi% + \advance\pstFP@xia-\pstFP@yia% + \ifnum\pstFP@xia<0\relax% + \pstFP@xs=-\pstFP@xs% + \ifnum\pstFP@xfb=0\relax\else% + \advance\pstFP@xfb-1000000000\relax\pstFP@xfb=-\pstFP@xfb% + \advance\pstFP@xfa1\relax% + \fi% + \ifnum\pstFP@xfa=0\relax\else% + \advance\pstFP@xfa-1000000000\relax\pstFP@xfa=-\pstFP@xfa% + \advance\pstFP@xib1\relax% + \fi% + \ifnum\pstFP@xib=0\relax\else% + \advance\pstFP@xib-1000000000\relax\pstFP@xib=-\pstFP@xib% + \advance\pstFP@xia1\relax% + \fi% + \relax\pstFP@xia=-\pstFP@xia% + \fi% + \pstFP@store\pstFP@tmp{x}% + \fi% + \global\let\pstFP@tmp\pstFP@tmp% + }% + \let#1\pstFP@tmp% +} + + +\def\pstFP@div#1#2.#3.#4\relax#5.#6.#7\relax{% + % #1 macro, which gets the result + % #2 integer part of 1st value + % #3 fractional part of 1st value + % #4 dummy to swallow everthing after the 2nd '.' + % #5 integer part of 2nd value + % #6 fractional part of 2nd value + % #7 dummy to swallow everthing after the 2nd '.' + % + % algorithmic idea (for x>0, y>0) + % - %determine \pstFP@shift such that y*10^\pstFP@shift <100000000<=y*10^(\pstFP@shift+1) + % - %determine \pstFP@shift' such that x*10^\pstFP@shift'<100000000<=x*10^(\pstFP@shift+1) + % - x=x*\pstFP@shift' + % - y=y*\pstFP@shift + % - \pstFP@shift=\pstFP@shift-\pstFP@shift' + % - res=0 + % - while y>0 %fixed-point representation! + % - \pstFP@times=0 + % - while x>y + % - \pstFP@times=\pstFP@times+1 + % - x=x-y + % - end + % - y=y/10 + % - res=10*res+\pstFP@times/1000000000 + % - end + % - %shift the result according to \pstFP@shift + % + {\pstFP@readvalue{x}{#2}{#3}% + \pstFP@readvalue{y}{#5}{#6}% + % + %sign + \multiply\pstFP@xs\pstFP@ys% + \pstFP@rs=\pstFP@xs% + % + %compute division + \ifpstFP@zero{y}% + \typeout{>>>>Division by zero}% + \else% + \ifpstFP@zero{x}\def\next##1{\edef\pstFP@tmp{0}}\else\def\next##1{##1}\fi% + \next% + {\pstFP@shift=0\relax% + \loop% + \ifnum\pstFP@yia<100000000\relax% + \pstFP@multen{y}% + \advance\pstFP@shift1\relax% + \repeat% + \loop% + \ifnum\pstFP@xia<100000000\relax% + \pstFP@multen{x}% + \advance\pstFP@shift-1\relax% + \repeat% + \pstFP@ria=0\pstFP@rib=0\pstFP@rfa=0\pstFP@rfb=0\relax% + \loop% + \ifpstFP@zero{y}\else% + \pstFP@counttimes%divides x by \pstFP@times*y + \pstFP@divten{y}% + \pstFP@multen{r}% + \advance\pstFP@rfb\pstFP@times% + \ifnum\pstFP@rfb<1000000000\relax\else% + \advance\pstFP@rfa1\advance\pstFP@rfb-1000000000\relax% + \ifnum\pstFP@rfa<1000000000\relax\else% + \advance\pstFP@rib1\advance\pstFP@rfa-1000000000\relax% + \ifnum\pstFP@rib<1000000000\relax\else% + \advance\pstFP@ria1\advance\pstFP@rib-1000000000\relax% + \fi% + \fi% + \fi% + \repeat% + \loop% + \ifnum\pstFP@shift>17% + \advance\pstFP@shift-1\relax% + \ifnum\pstFP@ria<100000000\else\pstFP@ria=-1\fi% + \ifnum\pstFP@ria<0\pstFP@ria=-1\fi% + \pstFP@multen{r}% + \repeat% + \ifnum\pstFP@ria<1000000000\else\pstFP@ria=-1\fi% + \loop% + \ifnum\pstFP@shift<17% + \advance\pstFP@shift1\relax% + \pstFP@divten{r}% + \repeat% + \ifnum\pstFP@ria<0\relax% + \typeout{>>>>Overflow}% + \else% + \pstFP@store\pstFP@tmp{r}% + \fi% + }% + \fi% + % + \global\let\pstFP@tmp=\pstFP@tmp% + % + }% + \let#1\pstFP@tmp% +} +%multiply two values + +\def\pstFP@firstnine#1#2#3#4#5#6#7#8#9{% + \pstFP@res=#1#2#3#4#5#6#7#8#9\relax% +} +\def\pstFP@@ninesplit#1\relax#2\end#3{% + #1% + \edef#3{#2}% +} +\def\pstFP@ninesplit#1{% + \edef#1{\expandafter\pstFP@firstnine\pstFP@rd}% + \expandafter\pstFP@@ninesplit#1\end#1\relax% +} + +\def\pstFP@split#1#2#3#4{% + % #1 highest three digits + % #2 medium three digits + % #3 least three digits + % #4 counter + \pstFP@regc=#4% + \divide\pstFP@regc1000000\relax% + #1=\pstFP@regc% + \multiply\pstFP@regc-1000000\relax\advance\pstFP@regc#4% + #3=\pstFP@regc% + \divide\pstFP@regc1000\relax% + #2=\pstFP@regc% + \multiply\pstFP@regc-1000\relax\advance\pstFP@regc#3% + #3=\pstFP@regc% +} + +\def\pstFP@@mul#1#2#3{% + \pstFP@regc=\csname pstFP@x#1\endcsname% + \multiply\pstFP@regc\csname pstFP@y#2\endcsname% + \advance\pstFP@prod\pstFP@regc% + % + \ifx#3\relax% + \let\next=\relax% + \else% + \let\next=\pstFP@@mul% + \fi% + \next#3% +} + +\def\pstFP@saveshift{% + % save rightmost three digits + \pstFP@regc=\pstFP@prod% + \divide\pstFP@prod1000\relax% + \multiply\pstFP@prod1000\relax% + \advance\pstFP@regc-\pstFP@prod% + \advance\pstFP@regc1000\relax% + \edef\pstFP@rd{\expandafter\pstFP@ignorenext\the\pstFP@regc\pstFP@rd}% + % + \divide\pstFP@prod1000\relax% +} + +\def\pstFP@mul#1#2.#3.#4\relax#5.#6.#7\relax{% + % #1 macro, which gets the result + % #2 integer part of 1st value + % #3 fractional part of 1st value + % #4 dummy to swallow everthing after the 2nd '.' + % #5 integer part of 2nd value + % #6 fractional part of 2nd value + % #7 dummy to swallow everthing after the 2nd '.' + % + % split value in various parts + % x y = 123 456 789 123 456 789 . 123 456 789 123 456 789 + % -> xk xl xm xn xo xp xq xr xs xt xu xv + % -> yk yl ym yn yo yp yq yr ys yt yu yv + % multiply these parts and save the result wrt the necessary shifts + % + {\pstFP@readvalue{x}{#2}{#3}% + \pstFP@readvalue{y}{#5}{#6}% + % + %sign + \multiply\pstFP@xs\pstFP@ys% + \pstFP@rs=\pstFP@xs% + % + % split parts + \pstFP@split\pstFP@xk\pstFP@xl\pstFP@xm\pstFP@xia\pstFP@split\pstFP@xn\pstFP@xo\pstFP@xp\pstFP@xib% + \pstFP@split\pstFP@xq\pstFP@xr\pstFP@xz\pstFP@xfa\pstFP@split\pstFP@xt\pstFP@xu\pstFP@xv\pstFP@xfb% + \pstFP@split\pstFP@yk\pstFP@yl\pstFP@ym\pstFP@yia\pstFP@split\pstFP@yn\pstFP@yo\pstFP@yp\pstFP@yib% + \pstFP@split\pstFP@yq\pstFP@yr\pstFP@yz\pstFP@yfa\pstFP@split\pstFP@yt\pstFP@yu\pstFP@yv\pstFP@yfb% + % + \pstFP@prod=0\relax% + \edef\pstFP@rd{}% + % + %compute result + \pstFP@@mul vv \relax\pstFP@saveshift% + \pstFP@@mul vu uv \relax\pstFP@saveshift% + \pstFP@@mul uu vt tv \relax\pstFP@saveshift% + \pstFP@@mul ut tu vz zv \relax\pstFP@saveshift% + \pstFP@@mul tt zu uz rv vr \relax\pstFP@saveshift% + \pstFP@@mul zt tz ur ru vq qv \relax\pstFP@saveshift% + \pstFP@@mul zz rt tr uq qu vp pv \relax\pstFP@saveshift% + \pstFP@@mul zr rz tq qt up pu vo ov \relax\pstFP@saveshift% + \pstFP@@mul rr qz zq tp pt uo ou vn nv \relax\pstFP@saveshift% + \pstFP@@mul rq qr zp pz to ot un nu vm mv \relax\pstFP@saveshift% + \pstFP@@mul qq rp pr zo oz tn nt um mu vl lv \relax\pstFP@saveshift% + \pstFP@@mul qp pq ro or zn nz tm mt ul lu kv vk \relax\pstFP@saveshift% + \pstFP@@mul pp oq qo rn nr zm mz tl lt ku uk \relax\pstFP@saveshift% + \pstFP@@mul op po nq qn rm mr zl lz tk kt \relax\pstFP@saveshift% + \pstFP@@mul oo pn np mq qm rl lr kz zk \relax\pstFP@saveshift% + \pstFP@@mul no on mp pm lq ql kr rk \relax\pstFP@saveshift% + \pstFP@@mul nn mo om pl lp qk kq \relax\pstFP@saveshift% + \pstFP@@mul mn nm lo ok pk kp \relax\pstFP@saveshift% + \pstFP@@mul mm ln nl ko ok \relax\pstFP@saveshift% + \pstFP@@mul lm ml kn nk \relax\pstFP@saveshift% + \pstFP@@mul ll km mk \relax\pstFP@saveshift% + \pstFP@@mul kl lk \relax\pstFP@saveshift% + \pstFP@@mul kk \relax\pstFP@saveshift\pstFP@saveshift% + \pstFP@ninesplit\pstFP@rd% + \ifnum\pstFP@res=0\relax% + \pstFP@ninesplit\pstFP@rd% + \ifnum\pstFP@res=0\relax% + \pstFP@ninesplit\pstFP@rd\pstFP@ria=\pstFP@res% + \pstFP@ninesplit\pstFP@rd\pstFP@rib=\pstFP@res% + \pstFP@ninesplit\pstFP@rd\pstFP@rfa=\pstFP@res% + \pstFP@ninesplit\pstFP@rd\pstFP@rfb=\pstFP@res% + \pstFP@store\pstFP@tmp{r}% + \else\typeout{pstFPmul: Overflow}\fi% + \else\typeout{pstFPmul: Overflow}\fi% + \global\let\pstFP@tmp\pstFP@tmp}% + \let#1\pstFP@tmp% +} +% +\catcode`\@=\PstAtCode\relax +% +%% END: pst-fp.tex +\endinput diff --git a/Master/texmf-dist/tex/generic/pstricks/pst-node.tex b/Master/texmf-dist/tex/generic/pstricks/pst-node.tex deleted file mode 100644 index ab6a512ef1b..00000000000 --- a/Master/texmf-dist/tex/generic/pstricks/pst-node.tex +++ /dev/null @@ -1,1154 +0,0 @@ -%% BEGIN pst-node.tex -%% -%% Nodes with PSTricks 97. -%% See the betadoc documentation for usage. -%% This uses the header file `pst-node.pro'. -%% -\def\fileversion{1.01} -\def\filedate{2008/11/26} -%% -%% COPYRIGHT 1993, 1994, 1999 by Timothy Van Zandt, tvz@nwu.edu. -%% COPYRIGHT 2009- 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 -%% archives in directory macros/latex/base/lppl.txt. -%% -\message{ v\fileversion, \filedate} -\csname PSTnodesLoaded\endcsname -\let\PSTnodesLoaded\endinput -\ifx\PSTricksLoaded\endinput\else\input pstricks.tex \fi\relax -\edef\TheAtCode{\the\catcode`\@} -\catcode`\@=11 -% -\pstheader{pst-node.pro} -% -\def\pst@nodedict{tx@NodeDict begin } -\def\pst@zapspace#1 #2{% -#1% -\ifx#2\@empty\else\expandafter\pst@zapspace\fi -#2} -% -\def\pst@getnode#1#2{\pst@expandafter\pst@@getnode{#1},,\@nil#2} -\def\pst@@getnode#1,#2,#3\@nil#4{% - \ifx\@empty#3\@empty - \edef#4{/N@\pst@zapspace#1 \@empty\space}% - \else - \pst@cntg=#1\relax - \pst@cnth=#2\relax - \edef#4{/N@M-\ifnum\psmatrixcnt=\z@ 1\else\the\psmatrixcnt\fi - -\the\pst@cntg-\the\pst@cnth\space}% - \fi} -% -\def\tx@NewNode{NewNode } -\def\pst@newnode#1#2#3#4{% -% DG/SR modification begin - Nov. 9, 2000 - Patch 11 -\pst@killglue -% DG/SR modification end -\leavevmode -\pst@getnode{#1}\pst@thenode -\pst@Verb{% - \pst@nodedict - {#3} - \ifx\psk@name\relax false \else \psk@name true \fi - \pst@thenode - #2 - {#4} - \tx@NewNode - end }% -% -\global\let\psk@name\relax -\pstree@nodehook -\global\let\pstree@nodehook\relax} -\let\pstree@nodehook\relax -\newif\ifnodealign -\def\psset@nodealign#1{\@nameuse{nodealign#1}} -\psset@nodealign{false} -\def\pst@nodealign{% -\pst@dimg=\ht\pst@hbox -\advance\pst@dimg-\dp\pst@hbox -\divide\pst@dimg2 -\lower\pst@dimg} -% -\def\tx@InitPnode{InitPnode } -\def\pnode{\@ifnextchar({\pnode@}{\pnode@(0,0)}} -\def\pnode@(#1)#2{% - \pst@@getcoor{#1}% - \pst@newnode{#2}{10}{\pst@coor}{\tx@InitPnode}% - \ignorespaces} -% -\def\tx@InitCnode{InitCnode } -\def\cnode{\pst@object{cnode}} -\def\cnode@i{\@ifnextchar({\cnode@ii}{\cnode@ii(0,0)}} -\def\cnode@ii(#1)#2#3{% - \leavevmode - \hbox{% - \use@par - \pst@@getcoor{#1}% - \pssetlength\pst@dimc{#2}% - \pst@dimg=\psk@dimen\pslinewidth - \advance\pst@dimc-\pst@dimg - \advance\pst@dimc.5\pslinewidth - \ifnodealign - \kern\pst@dimc - \vrule width\z@ height \pst@dimc depth \pst@dimc - \fi - \pscircle@do(#1){#2}% - \pst@newnode{#3}{11}{\pst@coor \pst@number\pst@dimc}{\tx@InitCnode}% -%% % DG/SR modification begin - Jul. 30, 1997 - Patch 2 -%% %\ifnodealign \kern\pst@dimc\egroup \fi}% - \ifnodealign\kern\pst@dimc\fi% -%% % DG/SR modification end - }% - \ignorespaces} -% -\def\Cnode{\pst@object{Cnode}} -\def\Cnode@i{\@ifnextchar({\Cnode@ii}{\Cnode@ii(0,0)}} -\def\Cnode@ii(#1)#2{\cnode@ii(#1){\psk@radius}{#2}}% -% -\def\cnodeput{\pst@object{cnodeput}} -\def\cnodeput@i{\@ifnextchar({\cnodeput@iii}{\cnodeput@ii}} -\def\cnodeput@ii#1{% - \addto@par{rot={#1}}% - \@ifnextchar({\cnodeput@iii}{\cnodeput@iii(\z@,\z@)}} -\def\cnodeput@iii(#1)#2{% - \pst@killglue - \@fixedradiusfalse - \def\pst@nodehook{\cnodeput@iv{#2}}% - \pst@makebox{\cput@v{#1}}} -\def\cnodeput@iv#1{% - \pst@newnode{#1}{11}{\pscirclebox@iv \pst@number\pslinewidth add}{\tx@InitCnode}% - \global\let\pst@nodehook\relax} -% -\def\Cnodeput{\pst@object{Cnodeput}} -\def\Cnodeput@i{\@ifnextchar({\Cnodeput@iii}{\Cnodeput@ii}} -\def\Cnodeput@ii#1{% -\addto@par{rot={#1}}% -\@ifnextchar({\Cnodeput@iii}{\Cnodeput@iii(\z@,\z@)}} -\def\Cnodeput@iii(#1)#2{% -\pst@killglue -\@fixedradiustrue -\def\pst@nodehook{\Cnodeput@iv{#2}}% -\pst@makebox{\cput@iv{#1}}} -\def\Cnodeput@iv#1{% -\pst@newnode{#1}{11}{% -\pst@number{\wd\pst@hbox} 2 div \pst@number\pst@dima % x y -\pst@number\pst@dimb \pst@number\pslinewidth \psk@dimen .5 sub mul sub }% r -{\tx@InitCnode}% -\global\let\pst@nodehook\relax} -\def\circlenode{\pst@object{circlenode}} -\def\circlenode@i#1{\pst@makebox{\circlenode@ii{#1}}} -\def\circlenode@ii#1{% - \begingroup - \pst@useboxpar - \setbox\pst@hbox=\hbox{% - \cnodeput@iv{#1}% - \pscirclebox@iii - \box\pst@hbox}% - \ifnodealign \psboxseptrue \fi - \ifpsboxsep \pscirclebox@sep \fi - \leavevmode - \ifnodealign\pst@nodealign\fi - \box\pst@hbox - \endgroup} -\def\Circlenode{\pst@object{Circlenode}} -\def\Circlenode@i#1{\pst@makebox{\Circlenode@ii{#1}}} -\def\Circlenode@ii#1{% -\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{% -\Cnodeput@iv{#1}% -\pscircle(.5\wd\pst@hbox,\pst@dima){\pst@dimb}% -\box\pst@hbox}% -\ifnodealign \psboxseptrue \fi -\ifpsboxsep \psCirclebox@sep \fi -\leavevmode -\ifnodealign\pst@nodealign\fi -\box\pst@hbox -\endgroup} -\def\tx@GetRnodePos{GetRnodePos } -\def\tx@InitRnode{InitRnode } -\def\rnode{\@ifnextchar[{\rnode@i}{\def\pst@par{}\rnode@ii}} -\def\rnode@i[#1]{\def\pst@par{ref=#1}\rnode@ii} -\def\rnode@ii#1{\pst@makebox{\rnode@iii\rnode@iv{#1}}} -\def\rnode@iii#1#2{% -% DG modification begin - Jan. 1997 -\leavevmode -% DG modification end -\begingroup -% DG/SR modification begin - Apr. 28, 1998 - Patch 6 -\pst@useboxpar -% DG/SR modification end -#1% -\if@star\pst@starbox\fi -\ifnodealign\lower\pst@dimb\fi -\hbox{% -\pst@newnode{#2}{16}{% -\pst@number{\ht\pst@hbox}% -\pst@number{\dp\pst@hbox}% -\pst@number{\wd\pst@hbox}% -\pst@number\pst@dima -\pst@number\pst@dimb}% -{\tx@InitRnode}% -\box\pst@hbox}% -\endgroup} -\def\rnode@iv{% -\pst@dima=\psk@xref\wd\pst@hbox -\ifx\psk@yref\relax -\pst@dimb=\z@ -\else -\pst@dimb=\ht\pst@hbox -\advance\pst@dimb\dp\pst@hbox -\pst@dimb=\psk@yref\pst@dimb -\advance\pst@dimb-\dp\pst@hbox -\fi} -\def\psset@href#1{\pst@checknum{#1}\psk@href} -\psset@href{0} -\def\psset@vref#1{\def\psk@vref{#1}} -\psset@vref{.7ex} -\def\Rnode{\pst@object{Rnode}} -\def\Rnode@i#1{\pst@makebox{\rnode@iii\Rnode@ii{#1}}} -\def\Rnode@ii{% -% DG modification begin - Jan. 1997 -% - \begingroup removed as it seems to doesn't work any more -% - \Rnode doesn't process the optional parameter changes -%\begingroup -\use@par -% DG modification end -\pst@dima=\psk@href\wd\pst@hbox -\advance\pst@dima\wd\pst@hbox -\divide\pst@dima 2 -\pssetlength\pst@dimb{\psk@vref}} -\def\tx@DiaNodePos{DiaNodePos } -\def\dianode{\pst@object{dianode}} -\def\dianode@i#1{\pst@makebox{\dianode@ii{#1}}} -\def\dianode@ii#1{% -\begingroup -\pst@useboxpar -\psdiabox@iii -\setbox\pst@hbox=\hbox{% -\pst@newnode{#1}{14}{}{% -/X \pst@number\pst@dima def -/Y \pst@number\pst@dimb def -/w \pst@number\pst@dimc 2 mul def -/h \pst@number\pst@dimd 2 mul def -/NodePos { \tx@DiaNodePos } def}% -\box\pst@hbox}% -\ifnodealign\psboxseptrue\fi -\ifpsboxsep\psdiabox@sep\fi -% DG/SR modification begin - Sep. 2, 1997 - Patch 3 -\leavevmode -% DG/SR modification end -\ifnodealign\lower\pst@dimb\fi -\box\pst@hbox -\endgroup} -\def\tx@TriNodePos{TriNodePos } -\def\tx@InitTriNode{InitTriNode } -\def\trinode{\pst@object{trinode}} -\def\trinode@i#1{\pst@makebox{\trinode@ii{#1}}} -\def\trinode@ii#1{% -\begingroup -\pst@useboxpar -\pstribox@iii -\setbox\pst@hbox=\hbox{% -\pst@newnode{#1}{14}{}{% -\pst@number\pst@dimc -\pst@number\pst@dimd -\ifodd\psk@trimode -exch -\pst@number\pst@dima -\else -\pst@number\pst@dimb -\fi -\psk@trimode -\pst@number{\wd\pst@hbox}% -\pst@number{\ht\pst@hbox}% -\pst@number{\dp\pst@hbox}% -\tx@InitTriNode}% -\box\pst@hbox}% -\ifnodealign\psboxseptrue\fi -\ifpsboxsep\pstribox@sep\fi -% DG/SR modification begin - Sep. 2, 1997 - Patch 3 -\leavevmode -% DG/SR modification end -\ifnodealign\lower\pst@tempa\fi -\box\pst@hbox -\endgroup} -\def\tx@OvalNodePos{OvalNodePos } -\def\ovalnode{\pst@object{ovalnode}} -\def\ovalnode@i#1{\pst@makebox{\ovalnode@ii{#1}}} -\def\ovalnode@ii#1{% -\begingroup -\pst@useboxpar -\psovalbox@iii -\setbox\pst@hbox=\hbox{% -\pst@newnode{#1}{14}{}{% -/X \pst@number\pst@dima def -/Y \pst@number\pst@dimb def -/w \pst@number\pst@dimc def -/h \pst@number\pst@dimd def -/NodePos { \tx@OvalNodePos } def}% -\unhbox\pst@hbox}% -\ifnodealign\psboxseptrue\fi -\ifpsboxsep\psovalbox@sep\fi -% DG/SR modification begin - Sep. 2, 1997 - Patch 3 -\leavevmode -% DG/SR modification end -\ifnodealign\lower\pst@dimb\fi -\box\pst@hbox -\endgroup} -% -\def\dotnode{\pst@object{dotnode}} -\def\dotnode@i{\@ifnextchar({\dotnode@ii}{\dotnode@ii(\z@,\z@)}} -\def\dotnode@ii(#1)#2{% - \leavevmode% - \hbox{% - \use@par% - \pst@@getcoor{#1}% - \pst@getdotsize% - \pstree@nodehook% - \ifnodealign% - \pst@dima=\pst@dimg% - \kern\pst@dima% - \vrule width\z@ height \pst@dimh depth \pst@dimh% - \fi% - \pst@newnode{#2}{14}{}{ - \pst@coor - /Y ED /X ED - /w \pst@number\pst@dimg def - /h \pst@number\pst@dimh def - /NodePos { \tx@OvalNodePos } def}% - \psdot@ii(#1)% - \ifnodealign\kern\pst@dima\fi}% - \ignorespaces} -% -\def\psset@framesize#1{\pst@expandafter\psset@@framesize{#1} \@nil} -\def\psset@@framesize#1 #2\@nil{% -\pssetlength\pst@dimg{#1}% -\divide\pst@dimg2 -\edef\psk@framewidth{\pst@number\pst@dimg}% -\ifx\@empty#2\@empty -\let\psk@frameheight\psk@framewidth -\else -\pssetlength\pst@dimg{#2}% -\divide\pst@dimg2 -\edef\psk@frameheight{\pst@number\pst@dimg}% -\fi} -% -\psset@framesize{10pt} -% -\def\fnode{\pst@object{fnode}} -\def\fnode@i{\@ifnextchar({\fnode@ii}{\fnode@ii(\z@,\z@)}} -\def\fnode@ii(#1)#2{% - \leavevmode - \pst@killglue - \hbox{% - \use@par% - \begin@ClosedObj% - \ifnodealign - \kern\psk@framewidth\p@ - \vrule width\z@ height \psk@frameheight\p@ depth \psk@frameheight\p@ - \edef\pst@coor{0 0 }% - \else\pst@@getcoor{#1}\fi - \pst@newnode{#2}{14}{}{ - \pst@coor - /Y ED /X ED - /d \psk@dimen .5 sub CLW mul neg def - /r \psk@framewidth d add def - /l r neg def - /u \psk@frameheight d add def - /d u neg def - /NodePos { \tx@GetRnodePos } def}% - \addto@pscode{ - /x2 \psk@framewidth CLW \psk@dimen mul sub def - /y2 \psk@frameheight CLW \psk@dimen mul sub def - \pst@coor 2 copy - y2 sub /y1 ED - x2 sub /x1 ED - y2 add /y2 ED - x2 add /x2 ED - \psk@cornersize - 1 index 0 eq { pop pop \tx@Rect } { \tx@OvalFrame } ifelse}% - \def\pst@linetype{2}% - \showpointsfalse% - \end@ClosedObj% - \ifnodealign\kern\psk@framewidth\p@\fi}% end of \hbox - \ignorespaces} -% -\def\psset@nodesepA#1{% -\pst@getlength{#1}\psk@nodesepA -\def\psk@nodeseptypeA{0 }} -\def\psset@nodesepB#1{% -\pst@getlength{#1}\psk@nodesepB -\def\psk@nodeseptypeB{0 }} -\def\psset@nodesep#1{% -\pst@getlength{#1}\psk@nodesepA -\let\psk@nodesepB\psk@nodesepA -\def\psk@nodeseptypeA{0 }% -\def\psk@nodeseptypeB{0 }} -\psset@nodesep{0pt} -\def\psset@XnodesepA#1{% -\pst@getlength{#1}\psk@nodesepA -\def\psk@nodeseptypeA{1 }} -\def\psset@XnodesepB#1{% -\pst@getlength{#1}\psk@nodesepB -\def\psk@nodeseptypeB{1 }} -\def\psset@Xnodesep#1{% -\pst@getlength{#1}\psk@nodesepA -\let\psk@nodesepB\psk@nodesepA -\def\psk@nodeseptypeA{1 }% -\def\psk@nodeseptypeB{1 }} -\def\psset@YnodesepA#1{% -\pst@getlength{#1}\psk@nodesepA -\def\psk@nodeseptypeA{2 }} -\def\psset@YnodesepB#1{% -\pst@getlength{#1}\psk@nodesepB -\def\psk@nodeseptypeB{2 }} -\def\psset@Ynodesep#1{% -\pst@getlength{#1}\psk@nodesepA -\let\psk@nodesepB\psk@nodesepA -\def\psk@nodeseptypeA{2 }% -\def\psk@nodeseptypeB{2 }} -\def\psset@armA#1{% -\pst@getlength{#1}\psk@armA -\def\psk@armtypeA{0 }} -\def\psset@armB#1{% -\pst@getlength{#1}\psk@armB -\def\psk@armtypeB{0 }} -\def\psset@arm#1{% -\pst@getlength{#1}\psk@armA -\let\psk@armB\psk@armA -\def\psk@armtypeA{0 }% -\def\psk@armtypeB{0 }} -\psset@arm{10pt} -\def\psset@XarmA#1{% -\pst@getlength{#1}\psk@armA -\def\psk@armtypeA{1 }} -\def\psset@XarmB#1{% -\pst@getlength{#1}\psk@armB -\def\psk@armtypeB{1 }} -\def\psset@Xarm#1{% -\pst@getlength{#1}\psk@armA -\let\psk@armB\psk@armA -\def\psk@armtypeA{1 }% -\def\psk@armtypeB{1 }} -\def\psset@YarmA#1{% -\pst@getlength{#1}\psk@armA -\def\psk@armtypeA{2 }} -\def\psset@YarmB#1{% -\pst@getlength{#1}\psk@armB -\def\psk@armtypeB{2 }} -\def\psset@Yarm#1{% -\pst@getlength{#1}\psk@armA -\let\psk@armB\psk@armA -\def\psk@armtypeA{2 }% -\def\psk@armtypeB{2 }} -\def\psset@offsetA#1{\pst@getlength{#1}\psk@offsetA} -\def\psset@offsetB#1{\pst@getlength{#1}\psk@offsetB} -\def\psset@offset#1{\psset@offsetA{#1}\let\psk@offsetB\psk@offsetA} -\psset@offset{0pt} -\def\psset@angleA#1{\pst@getangle{#1}\psk@angleA} -\def\psset@angleB#1{\pst@getangle{#1}\psk@angleB}% -\def\psset@angle#1{% -\pst@getangle{#1}\psk@angleA -\let\psk@angleB\psk@angleA} -\psset@angle{0} -\def\psset@arcangleA#1{\pst@getangle{#1}\psk@arcangleA} -\def\psset@arcangleB#1{\pst@getangle{#1}\psk@arcangleB}% -\def\psset@arcangle#1{% -\pst@getangle{#1}\psk@arcangleA -\let\psk@arcangleB\psk@arcangleA} -\psset@arcangle{8} -\def\psset@ncurvA#1{\pst@checknum{#1}\psk@ncurvA} -\def\psset@ncurvB#1{\pst@checknum{#1}\psk@ncurvB}% -\def\psset@ncurv#1{\psset@ncurvA{#1}\let\psk@ncurvB\psk@ncurvA} -\psset@ncurv{.67} -\def\tx@GetCenter{GetCenter } -\def\tx@XYPos{XYPos } -\def\tx@GetEdge{GetEdge } -\def\tx@AddOffset{AddOffset } -\def\tx@GetEdgeA{GetEdgeA } -\def\tx@GetEdgeB{GetEdgeB } -\def\tx@GetArmA{GetArmA } -\def\tx@GetArmB{GetArmB } -% -\def\check@arrow#1#2{% - \check@@arrow#2-\@nil - \if@pst\addto@par{arrows=#2}\def\next{#1}% - \else\def\next{#1{#2}}\fi - \next} -\def\check@@arrow#1-#2\@nil{% -\ifx\@nil#2\@nil\@pstfalse\else\@psttrue\fi} -% -\def\tx@InitNC{InitNC } -\def\nc@object#1#2#3#4#5{% - \csname begin@#1Obj\endcsname - \showpointsfalse - \pst@getnode{#2}\pst@tempa - \pst@getnode{#3}\pst@tempb - \gdef\npos@default{#4 }% - \addto@pscode{% - /NCLW CLW def - \pst@nodedict - \psk@offsetA - \psk@offsetB neg - \psk@nodesepA - \psk@nodesepB - \psk@nodeseptypeA - \psk@nodeseptypeB - \pst@tempa - \pst@tempb - \tx@InitNC { #5 } if - end }% - \def\use@pscode{% - \pst@Verb{gsave \tx@STV newpath \pst@code\space grestore}% - \gdef\pst@code{}}% - \csname end@#1Obj\endcsname - \pst@shortput} -% -\def\npos@default{.5 } -\def\pc@object#1{% -\@ifnextchar({\pc@@object#1}{\pst@getarrows{\pc@@object#1}}} -\def\pc@@object#1(#2)(#3){% - \pnode(#2){@@A}\pnode(#3){@@B}% - #1{@@A}{@@B}} -\def\tx@LPutLine{LPutLine } -\def\tx@LPutLines{LPutLines } -\def\tx@BezierMidpoint{BezierMidpoint } -\def\tx@HPosBegin{HPosBegin } -\def\tx@HPosEnd{HPosEnd } -\def\tx@HPutLine{HPutLine } -\def\tx@HPutLines{HPutLines } -\def\tx@VPosBegin{VPosBegin } -\def\tx@VPosEnd{VPosEnd } -\def\tx@VPutLine{VPutLine } -\def\tx@VPutLines{VPutLines } -\def\tx@HPutCurve{HPutCurve } -\def\tx@NCCoor{NCCoor } -\def\tx@NCLine{NCLine } -% -\def\ncline{\pst@object{ncline}} -\def\ncline@i{\check@arrow{\ncline@ii}} -\def\ncline@ii#1#2{\nc@object{Open}{#1}{#2}{.5}{\tx@NCLine}} -% -\def\pcline{\pst@object{pcline}} -\def\pcline@i{\pc@object\ncline@ii} -% -\def\ncLine{\pst@object{ncLine}} -\def\ncLine@i{\check@arrow{\ncLine@ii}} -\def\ncLine@ii#1#2{\nc@object{Open}{#1}{#2}{.5}% -% DG/SR modification begin - Apr. 14, 1999 - Patch 9 -%{\tx@NCLine /LPutPos { xB xA yB yA \tx@LPutLine } def}} -{\tx@NCLine /LPutPos { xB yB xA yA \tx@LPutLine } def}} -% DG/SR modification end -% -\def\tx@NCLines{NCLines } -\def\nclines{\pst@object{nclines}} -\def\nclines@i{\check@arrow\nclines@ii} -\def\nclines@ii#1#2{% -\begingroup -\use@par -\def\pst@aftercoors{\nclines@iii{#1}{#2}}% -\def\pst@coors{}% -\pst@@getcoors} -\def\nclines@iii#1#2{% -\nc@object{Open}{#1}{#2}{.5}{% -tx@Dict begin \psline@iii pop end -mark \pst@coors \tx@NCLines}% -\endgroup -\ignorespaces} -\def\tx@NCCurve{NCCurve } -\def\nccurve{\pst@object{nccurve}} -\def\nccurve@i{\check@arrow{\nccurve@ii}} -\def\nccurve@ii#1#2{\nc@object{Open}{#1}{#2}{.5}{% - /AngleA \psk@angleA\space def /AngleB \psk@angleB\space def - \psk@ncurvB\space \psk@ncurvA\space - \tx@NCCurve}} -\def\pccurve{\pst@object{pccurve}} -\def\pccurve@i{\pc@object\nccurve@ii} -% -\def\ncarc{\pst@object{ncarc}} -\def\ncarc@i{\check@arrow{\ncarc@ii}} -\def\ncarc@ii#1#2{\nc@object{Open}{#1}{#2}{.5}{% - yB yA sub xB xA sub \tx@Atan dup - \psk@arcangleA\space add /AngleA ED - \psk@arcangleB\space sub 180 add /AngleB ED - \psk@ncurvB\space \psk@ncurvA\space - \tx@NCCurve}} -\def\pcarc{\pst@object{pcarc}} -\def\pcarc@i{\pc@object\ncarc@ii} -% -\def\tx@NCAngles{NCAngles } -\newif\ifPst@pcRef% border or center as reference point (hv) -\def\psset@pcRef#1{\@nameuse{Pst@pcRef#1}} -\psset@pcRef{false} -\def\ncangles{\pst@object{ncangles}} -\def\ncangles@i{\check@arrow{\ncangles@ii}} -\def\ncangles@ii#1#2{% - \nc@object{Open}{#1}{#2}{1.5}{\ncangles@iii \tx@NCAngles}} -\def\ncangles@iii{% - tx@Dict begin \psline@iii pop end - /AngleA \psk@angleA def - /AngleB \psk@angleB def - /ArmA \psk@armA \ifPst@pcRef - GetEdgeA yA yA1 sub dup mul xA xA1 sub dup mul add sqrt sub \fi def - /ArmB \psk@armB def - /ArmTypeA \psk@armtypeA def - /ArmTypeB \psk@armtypeB def } -% -\def\pcangles{\pst@object{pcangles}} -\def\pcangles@i{\pc@object\ncangles@ii} -\def\tx@NCAngle{NCAngle } -\def\ncangle{\pst@object{ncangle}} -\def\ncangle@i{\check@arrow{\ncangle@ii}} -\def\ncangle@ii#1#2{% -\nc@object{Open}{#1}{#2}{1.5}{\ncangles@iii \tx@NCAngle}} -\def\pcangle{\pst@object{pcangle}} -\def\pcangle@i{\pc@object\ncangle@ii} -\def\tx@NCBar{NCBar } -\def\ncbar{\pst@object{ncbar}} -\def\ncbar@i{\check@arrow{\ncbar@ii}} -\def\ncbar@ii#1#2{\nc@object{Open}{#1}{#2}{1.5}{% -\ncangles@iii /AngleB \psk@angleA def \tx@NCBar}} -\def\pcbar{\pst@object{pcbar}} -\def\pcbar@i{\pc@object\ncbar@ii} -\def\tx@NCDiag{NCDiag } -\def\ncdiag{\pst@object{ncdiag}} -\def\ncdiag@i{\check@arrow{\ncdiag@ii}} -\def\ncdiag@ii#1#2{% -\nc@object{Open}{#1}{#2}{1.5}{\ncangles@iii \tx@NCDiag}} -\def\pcdiag{\pst@object{pcdiag}} -\def\pcdiag@i{\pc@object\ncdiag@ii} -\def\tx@NCDiagg{NCDiagg } -\def\ncdiagg{\pst@object{ncdiagg}} -\def\ncdiagg@i{\check@arrow{\ncdiagg@ii}} -\def\ncdiagg@ii#1#2{% -\nc@object{Open}{#1}{#2}{.5}{\ncangles@iii \tx@NCDiagg}} -\def\pcdiagg{\pst@object{pcdiagg}} -\def\pcdiagg@i{\pc@object\ncdiagg@ii} -\def\tx@NCLoop{NCLoop } -\def\psset@loopsize#1{\pst@getlength{#1}\psk@loopsize} -\psset@loopsize{1cm} -\def\ncloop{\pst@object{ncloop}} -\def\ncloop@i{\check@arrow{\ncloop@ii}} -\def\ncloop@ii#1#2{% -\nc@object{Open}{#1}{#2}{2.5}% -{\ncangles@iii /loopsize \psk@loopsize def \tx@NCLoop}} -\def\pcloop{\pst@object{pcloop}} -\def\pcloop@i{\pc@object\ncloop@ii} -\def\tx@NCCircle{NCCircle } -\def\nccircle{\pst@object{nccircle}} -\def\nccircle@i{\check@arrow{\nccircle@ii}} -\def\nccircle@ii#1#2{% -\pssetlength\pst@dima{#2}% -\nc@object{Open}{#1}{#1}{.5}{% -/AngleA \psk@angleA def -/r \pst@number\pst@dima def -\tx@NCCircle \psarc@v end}} -\def\tx@NCBox{NCBox } -\def\ncbox{\pst@object{ncbox}} -\def\ncbox@i{\check@arrow{\ncbox@ii}} -\def\ncbox@ii#1#2{% -\def\pst@linetype{2}% -\nc@object{Closed}{#1}{#2}{.5}{% -tx@Dict begin \psline@iii pop end -\psk@boxheight \psk@boxdepth -\tx@NCBox}} -\def\pcbox{\pst@object{pcbox}} -\def\pcbox@i{\pc@object\ncbox@ii} -\def\tx@NCArcBox{NCArcBox } -\def\psset@boxheight#1{\pst@getlength{#1}\psk@boxheight} -\def\psset@boxdepth#1{\pst@getlength{#1}\psk@boxdepth} -\def\psset@boxsize#1{% -\psset@boxheight{#1}% -\let\psk@boxdepth\psk@boxheight} -\psset@boxsize{.4cm} -\def\ncarcbox{\pst@object{ncarcbox}} -\def\ncarcbox@i{\check@arrow{\ncarcbox@ii}} -\def\ncarcbox@ii#1#2{% -\def\pst@linetype{1}% -\nc@object{Closed}{#1}{#2}{.5}{% -\psk@arcangleA \psk@boxheight \psk@boxdepth \pst@number\pslinearc -\tx@NCArcBox}} -\def\pcarcbox{\pst@object{pcarcbox}} -\def\pcarcbox@i{\pc@object\ncarcbox@ii} -\def\tx@Tfan{Tfan } -% Changed according pst-beta.bug December 3, 1993 -% nrot=:<angle> does not work when : is active. -\begingroup -\catcode`\:=13 -\gdef\pst@activerot{\def:{\string:}} -\endgroup -\def\psset@nrot#1{% -\begingroup -\pst@activerot -\pst@expandafter{\@ifnextchar:{\psset@@nrot}{\psset@@rot}}{#1}\@nil -\global\let\pst@tempg\psk@rot -\endgroup -\let\psk@nrot\pst@tempg} -\def\psset@@nrot:#1\@nil{% -\psset@@rot#1\@nil -\edef\psk@rot{NAngle \ifx\psk@rot\@empty\else\psk@rot add \fi}} -\psset@nrot{0} -\def\tx@LPutCoor{LPutCoor } -\def\tx@LPut{LPut } -\def\psset@npos#1{% -\def\pst@tempa{#1}% -\ifx\pst@tempa\@empty -\def\psk@npos{\npos@default}% -\else -\pst@checknum{#1}\psk@npos -\fi} -\psset@npos{} -\def\ncput{\pst@object{ncput}} -\def\ncput@i{\pst@killglue\pst@makebox{\ncput@ii}} -\def\ncput@ii{% - \begingroup% - \use@par% - \if@star\pst@starbox\fi% - \pst@makesmall\pst@hbox% - \pst@rotate\psk@nrot\pst@hbox% - \ncput@iii% - \endgroup% - \pst@shortput} -\def\ncput@iii{% - \leavevmode% - \hbox{% - \pst@Verb{ - \pst@nodedict - /t \psk@npos def - \tx@LPut - end - \tx@PutBegin}% - \box\pst@hbox% - \pst@Verb{\tx@PutEnd}}} -\def\naput{\pst@object{naput}} -\def\naput@i{\pst@killglue\pst@makebox{\naput@ii{NAngle 90 add}}} -\def\naput@ii#1{% -\begingroup -\use@par -\if@star\pst@starbox\fi -\def\psk@refangle{#1 }% -\let\psk@rot\psk@nrot -\uput@vii -{exch pop add a \tx@PtoC h1 add exch w1 add exch }% -{tx@Dict /NCLW known { NCLW add } if }% -\ncput@iii -\endgroup -\pst@shortput} -\def\nbput{\pst@object{nbput}} -\def\nbput@i{\pst@killglue\pst@makebox{\naput@ii{NAngle 90 sub}}} -\def\psset@tpos#1{% - \pst@checknum{#1}\psk@tpos - \ifdim\psk@tpos \p@<\z@ - \def\psk@tpos{.5}% -% DG/SR modification begin - Sep. 23, 1998 - Patch 7 -%\@pstrickserr{Bad `tpos' value: `#1'. Must be 0<tpos<1}\@epha - \@pstrickserr{Bad `tpos' value: `#1'. Must be 0<tpos<1}\@ehpa -% DG/SR modification end - \else - \ifdim\psk@tpos \p@>\p@ - \def\psk@tpos{.5}% -% DG/SR modification begin - Sep. 23, 1998 - Patch 7 -%\@pstrickserr{Bad `tpos' value: `#1'. Must be 0<tpos<1}\@epha - \@pstrickserr{Bad `tpos' value: `#1'. Must be 0<tpos<1}\@ehpa% -% DG/SR modification end - \fi% - \fi} -\psset@tpos{.5} -\def\tvput{\pst@object{tvput}} -\def\tvput@i{\pst@makebox{\psput@tput{H}{1}}} -\def\tlput{\pst@object{tlput}} -\def\tlput@i{\pst@makebox{\psput@tput{H}{true}}} -\def\trput{\pst@object{trput}} -\def\trput@i{\pst@makebox{\psput@tput{H}{false}}} -\def\thput{\pst@object{thput}} -\def\thput@i{\pst@makebox{\psput@tput{V}{1}}} -\def\taput{\pst@object{taput}} -\def\taput@i{\pst@makebox{\psput@tput{V}{true}}} -\def\tbput{\pst@object{tbput}} -\def\tbput@i{\pst@makebox{\psput@tput{V}{false}}} -\def\tx@HPutAdjust{HPutAdjust } -\def\tx@VPutAdjust{VPutAdjust } -\def\psput@tput#1#2{% - \begingroup - \use@par - \pst@tputmakesmall - \leavevmode - \hbox{% - \pst@Verb{% - \pst@nodedict - /t \psk@tpos \pst@tposflip def - tx@NodeDict /HPutPos known - { #1PutPos } - { CP /Y ED /X ED /NAngle 0 def /NCLW 0 def } - ifelse - /Sin NAngle sin def - /Cos NAngle cos def - /s \pst@number\pslabelsep NCLW add def - /l \pst@number\pst@dima def - /r \pst@number\pst@dimb def - /h \pst@number\pst@dimc def - /d \pst@number\pst@dimd def -% DG/SR modification begin - Sep. 26, 1997 - Patch 4 -%\ifnum1=0#2\else - \ifnum1=0#2 \else -% DG/SR modification end - /flag #2 def - \csname tx@#1PutAdjust\endcsname - \fi - \tx@LPutCoor - end - \tx@PutBegin}% - \box\pst@hbox - \pst@Verb{\tx@PutEnd}}% - \endgroup - \pst@shortput} -% -\def\pst@tposflip{} -\def\pst@tputmakesmall{% -% -\pst@dima=\wd\pst@hbox -\divide\pst@dima 2 -\pst@dimg=\psk@href\pst@dimg -\pst@dimb\pst@dima -\advance\pst@dima\pst@dimg % leftsize -\advance\pst@dimb-\pst@dimg % rightsize -\pst@dimd=\psk@vref\relax -\pst@dimc=\ht\pst@hbox -\advance\pst@dimc-\pst@dimd % height -\advance\pst@dimd\dp\pst@hbox % depth -\setbox\pst@hbox=\hbox to\z@{% -\kern-\pst@dima\vbox to\z@{\vss\box\pst@hbox\vskip-\pst@dimd}\hss}} -\def\MakeShortNab#1#2{% - \def\pst@shortput@nab{% - \def\pst@tempg{\next}% - \ifx#1\next - \let\pst@tempg\naput - \else - \ifx#2\next - \let\pst@tempg\nbput - \else - \ifx\@sptoken\next - \let\pst@tempg\pst@shortput - \fi - \fi - \fi - \pst@tempg}} -\MakeShortNab{^}{_} -\def\MakeShortTablr#1#2#3#4{% - \def\pst@shortput@tablr{% - \def\pst@tempg{\next}% - \ifx#1\next - \let\pst@tempg\taput - \else - \ifx#2\next - \let\pst@tempg\tbput - \else - \ifx#3\next - \let\pst@tempg\tlput - \else - \ifx#4\next - \let\pst@tempg\trput - \else - \ifx\@sptoken\next - \let\pst@tempg\pst@shortput - \fi - \fi - \fi - \fi - \fi - \pst@tempg}} -\MakeShortTablr{^}{_}{<}{>} -\def\MakeShortTab#1#2{% - \def\pst@shortput@tab{% - \def\pst@tempg{\next}% - \ifx#1\next - \def\pst@tempg{% - \@nameuse{% - t\ifodd\psk@treemode\ifpstreeflip b\else a\fi - \else\ifpstreeflip r\else l\fi\fi put}}% - \else - \ifx#2\next - \def\pst@tempg{% - \@nameuse{% - t\ifodd\psk@treemode\ifpstreeflip a\else b\fi - \else\ifpstreeflip l\else r\fi\fi put}}% - \else - \ifx\@sptoken\next - \let\pst@tempg\pst@shortput - \fi - \fi - \fi - \pst@tempg}} -\MakeShortTab{^}{_} -\def\psset@shortput#1{% -\def\pst@tempg{#1}% -\ifx\pst@tempg\@none -\let\pst@shortput\ignorespaces -\else -\@ifundefined{pst@shortput@#1}% -{\@pstrickserr{Bad short put: `#1'}\@ehpa}% -{\edef\pst@shortput{\noexpand\afterassignment\expandafter\noexpand -\csname pst@shortput@#1\endcsname\noexpand\let\noexpand\next}}% -\fi} -\psset@shortput{none} -\def\lput{\def\pst@par{}\pst@ifstar{\@ifnextchar[{\lput@i}{\lput@ii}}} -\def\lput@i[#1]{\addto@par{ref=#1}\lput@ii} -\def\lput@ii{\@ifnextchar({\lput@iv}{\lput@iii}} -\def\lput@iii#1{\addto@par{nrot=#1}\@ifnextchar({\lput@iv}{\ncput@i}} -\def\lput@iv(#1){\addto@par{npos=#1}\ncput@i} -\def\mput{\def\pst@par{}\pst@ifstar{\@ifnextchar[{\mput@i}{\ncput@i}}} -\def\mput@i[#1]{\addto@par{ref=#1}\ncput@i} -\def\Lput{\def\pst@par{}\pst@ifstar{\@ifnextchar[{\Lput@ii}{\Lput@i}}} -\def\Lput@i#1{\addto@par{labelsep=#1}\Lput@ii} -\def\Lput@ii[#1]{\addto@par{ref={#1}}\@ifnextchar({\Lput@iv}{\Lput@iii}} -\def\Lput@iii#1{\addto@par{nrot={#1}}\@ifnextchar({\Lput@iv}{\Lput@v}} -\def\Lput@iv(#1){\addto@par{npos=#1}\Lput@v} -\def\Lput@v{\pst@killglue\pst@makebox{\Lput@vi}} -\def\Lput@vi{% -\begingroup -\use@par -\if@star\pst@starbox\fi -\Rput@vi -\pst@makesmall\pst@hbox -\pst@rotate\psk@nrot\pst@hbox -\ncput@iii -\endgroup -\pst@shortput} -\def\Mput{\def\pst@par{}\pst@ifstar{\@ifnextchar[{\Mput@ii}{\Mput@i}}} -\def\Mput@i#1{\addto@par{labelsep=#1}\Mput@ii} -\def\Mput@ii[#1]{\addto@par{ref={#1}}\Lput@v} -\def\aput@#1{\def\pst@par{}\pst@ifstar{\@ifnextchar[{\aput@i#1}{\aput@ii#1}}} -\def\aput@i#1[#2]{\addto@par{labelsep=#2}\aput@ii#1} -\def\aput@ii#1{\@ifnextchar({\aput@iv#1}{\aput@iii#1}} -\def\aput@iii#1#2{\addto@par{nrot=#2}\@ifnextchar({\aput@iv#1}{#1}} -\def\aput@iv#1(#2){\addto@par{npos=#2}#1} -\def\aput{\aput@\naput@i} -\def\bput{\aput@\nbput@i} -\def\Aput{\def\pst@par{}\pst@ifstar{\@ifnextchar[{\Aput@i}{\naput@i}}} -\def\Aput@i[#1]{\addto@par{labelsep=#1}\naput@i} -\def\Bput{\def\pst@par{}\pst@ifstar{\@ifnextchar[{\Bput@i}{\nbput@i}}} -\def\Bput@i[#1]{\addto@par{labelsep=#1}\nbput@i} -\def\node@coor#1;#2\@nil{% - \pst@getnode{#1}\pst@tempg - \edef\pst@coor{% - \pst@nodedict - tx@NodeDict \pst@tempg known - \pslbrace \pst@tempg load \tx@GetCenter \psrbrace - \pslbrace 0 0 \psrbrace ifelse - end }} -\def\Node@coor[#1]#2;#3\@nil{% -\begingroup -\psset{#1}% -\@ifnextchar\bgroup{\Node@@@coor}{\Node@@coor}#2\@nil -\endgroup -\let\pst@coor\pst@tempg} -\def\Node@@coor#1\@nil{% -\pst@getnode{#1}\pst@tempg -\xdef\pst@tempg{% -\pst@nodedict -tx@NodeDict \pst@tempg known -{ \psk@nodesepA \psk@angleA -\pst@tempg load \psk@nodeseptypeA \tx@GetEdge -\psk@offsetA \psk@angleA \tx@AddOffset -\pst@tempg load \tx@GetCenter -3 -1 roll add 3 1 roll add exch } -{ CP } -ifelse -end }}% -\def\Node@@@coor#1{% -\pst@@getcoor{#1}% -\def\psk@angleA{% -\pst@tempg load \tx@GetCenter \pst@coor -3 -1 roll sub 3 1 roll sub neg \tx@Atan}% -\Node@@coor} -\def\nput{\pst@object{nput}} -\def\nput@i#1#2{\pst@killglue\pst@makebox{\nput@ii{#1}{#2}}} -\def\nput@ii#1#2{% -\begingroup -\use@par -\psset@refangle{#1}% -\let\psk@angleA\psk@refangle -\edef\psk@nodesepA{\pst@number\pslabelsep}% -\def\psk@nodeseptypeA{0 }% -\pslabelsep\z@ -\uput@vi -\Node@@coor#2\@nil -\let\pst@coor\pst@tempg -\leavevmode -\psput@special\pst@hbox -\endgroup -\ignorespaces} -\newcount\psrow -\newcount\pscol -\newcount\psmatrixcnt -\newskip\psrowsep -\newskip\pscolsep -\def\psset@colsep#1{\pssetlength\pscolsep{#1}} -\def\psset@rowsep#1{\pssetlength\psrowsep{#1}} -\psset@colsep{1.5cm} -\psset@rowsep{1.5cm} -\newif\ifpsmatrix -% DG/SR modification begin - Nov. 27, 1998 - Patch 8 -%\let\mscount\@multicnt -\ifx\mscount\@undefined\let\mscount\@multicnt\fi -% DG/SR modification end -\def\psmatrix{\begingroup{\ifnum0=`}\fi % Don't want to expand any &. - \@ifnextchar[{\psmatrix@i}{\ifnum0=`{\fi}{}\psmatrix@ii}} -\def\psmatrix@i[#1]{% - \ifnum0=`{\fi}{}% - \psset{#1}% - \psmatrix@ii} -\def\psmatrix@ii{% - \KillGlue - \edef\psm@beginmath{% - \ifmmode$\m@th\ifinner\textstyle\else\displaystyle\fi\fi}% - \edef\psm@endmath{\ifmmode$\fi}% - \let\\\psm@cr - \advance\psmatrixcnt 1 - \def\psm@thenode{M-\the\psmatrixcnt-\the\psrow-\the\pscol}% - \tabskip\z@ - \psrow1 - \pscol\z@ - \psset@shortput{tablr}% - \leavevmode - \vbox\bgroup\halign\bgroup&% - \begingroup - \global\advance\pscol 1 - \csname psrowhook\romannumeral\psrow\endcsname - \csname pscolhook\romannumeral\pscol\endcsname - \psm@beginnode##\psm@endnode\endgroup - \cr} -% -\def\endpsmatrix{% - \crcr\egroup\unskip\egroup - \endgroup} -% -% hv 2007-10-16 fix bug with \\[name=...] -%\def\psm@cr{{\ifnum0=`}\fi\@ifnextchar[{\psm@@cr}{\psm@@@cr{}}} -\def\psm@cr{{\ifnum0=`}\fi\ps@ifnextchar[{\psm@@cr}{\psm@@@cr{}}} -% -\def\psm@@cr[#1]{\psm@@@cr{\vskip#1\relax}} -\def\psm@@@cr#1{% - \ifnum0=`{\fi}{}\cr - \noalign{% - \global\advance\psrow 1 - \global\pscol\z@ - \vskip\psrowsep - #1}} -\def\psm@beginnode{% - \@ifnextchar\psm@endnode - {\let\psm@endnode@i\relax\setbox\pst@hbox=\hbox{}}% - {\pst@object{psm@beginnode}}} -\def\psm@beginnode@i{% - \setbox\pst@hbox=\hbox\bgroup - \psm@beginmath - \begingroup - \ignorespaces} -\def\psm@endnode@i{% - \unskip - \endgroup - \psm@endmath - \egroup - \use@par - \@psttrue} -\def\psm@endnode{% - \@pstfalse - \psm@endnode@i - \ifnum\pscol>1 \hskip\pscolsep \fi - \psk@mnodesize - \hfil - \nodealigntrue - \if@pst\csname mnode@\psk@mnode\endcsname - \else\csname mnode@\psk@emnode\endcsname\fi - \psk@mcol - \psk@@mnodesize} -% DG/SR modification begin - Sep. 3, 1999 - Patch 10 - From Michael Sharpe -%\def\psspan#1{\mscount#1\relax\loop\ifnum\mscount>\@ne \sp@n\repeat} -\def\psspan#1{\global\mscount#1\relax\pstloop\ifnum\mscount>\@ne\sp@n\repeat} -\def\pstloop#1\repeat{\gdef\pstiterate{#1\relax\expandafter\pstiterate\fi}% - \pstiterate - \let\pstiterate\relax} -% DG/SR modification end -\def\psset@name#1{\pst@getnode{#1}\psk@name} -\let\psk@name\relax -\def\psset@mcol#1{% - \ifx r#1\relax\let\psk@mcol\relax\else - \ifx l#1\relax\let\psk@mcol\hfill\else - \let\psk@mcol\hfil\fi\fi} -\psset@mcol{c} -\def\psset@mnodesize#1{% -\pssetlength\pst@dimg{#1}% -\ifdim\pst@dimg<\z@ -\let\psk@mnodesize\relax -\let\psk@@mnodesize\relax -\else -\edef\psk@mnodesize{\noexpand\hbox to\number\pst@dimg sp\noexpand\bgroup}% -\let\psk@@mnodesize\egroup -\fi} -\psset@mnodesize{-1pt} -\def\mnode@R{\rnode@iii\Rnode@ii{\psm@thenode}} -\def\mnode@r{\rnode@iii\rnode@iv{\psm@thenode}} -\def\mnode@oval{\ovalnode@ii{\psm@thenode}} -\def\mnode@tri{\trinode@ii{\psm@thenode}} -\def\mnode@dia{\dianode@ii{\psm@thenode}} -\def\mnode@C{{\nodealigntrue\cnode@ii(\z@,\z@){\psk@radius}{\psm@thenode}}} -\def\mnode@f{{\nodealigntrue\fnode@ii(\z@,\z@){\psm@thenode}}} -\def\mnode@circle{\circlenode@ii{\psm@thenode}} -% hv modification begin - Aug. 16, 2007 -\def\mnode@Circle{\Circlenode@ii{\psm@thenode}} -% hv modification end - Aug. 16, 2007 -\def\mnode@p{\pnode(\z@,\z@){\psm@thenode}} -% DG/SR modification begin - Jul. 22, 1997 - Patch 1 -\def\mnode@dot{\dotnode@ii(\z@,\z@){\psm@thenode}} -% DG/SR modification end -\def\mnode@none{\box\pst@hbox} -\def\psset@mnode#1{% -\@ifundefined{mnode@#1}% -{\@pstrickserr{\string\psmatrix\space node `#1' not defined.}\@ehpa}% -{\edef\psk@mnode{#1}}} -\def\psset@emnode#1{% -\@ifundefined{mnode@#1}% -{\@pstrickserr{\string\psmatrix\space node `#1' not defined.}\@ehpa}% -{\edef\psk@emnode{#1}}} -\psset@mnode{R} -\psset@emnode{none} -%%%% FROM pst-coil.tex -\def\nccoil{\pst@object{nccoil}} -\def\nccoil@i{\check@arrow{\nccoil@ii}} -\def\nccoil@ii#1#2{\nc@object{Open}{#1}{#2}{.5}{% -\tx@NCCoor -tx@Dict begin -% DG/SR modification begin - Mar. 19, 1998 - Patch 5 -4 2 roll -% DG/SR modification end -\psk@coilwidth \pscoilheight -\psk@coilarmA \psk@coilarmB -\psk@coilaspect \psk@coilinc -\pst@coildict \tx@Coil end -end}} -\def\nczigzag{\pst@object{nczigzag}} -\def\nczigzag@i{\check@arrow{\nczigzag@ii}} -\def\nczigzag@ii#1#2{\nc@object{Open}{#1}{#2}{.5}{% -\tx@NCCoor -tx@Dict begin -% DG/SR modification begin - Mar. 19, 1998 - Patch 5 -4 2 roll -% DG/SR modification end -\pscoilheight -\psk@coilwidth -\psk@coilarmA -\psk@coilarmB -\pst@coildict \tx@ZigZag end -\psline@iii -\tx@Line -end}} -\catcode`\@=\TheAtCode\relax -\endinput -%% -%% END pst-node.tex diff --git a/Master/texmf-dist/tex/generic/pstricks/pst-plot.tex b/Master/texmf-dist/tex/generic/pstricks/pst-plot.tex deleted file mode 100644 index 11dd9385fef..00000000000 --- a/Master/texmf-dist/tex/generic/pstricks/pst-plot.tex +++ /dev/null @@ -1,709 +0,0 @@ -%% $Id: pst-plot.tex 119 2009-06-03 07:37:40Z herbert $ -%% BEGIN pst-plot.tex -%% -%% Plots and axes with PSTricks -%% See the PSTricks User's Guide for documentation. -%% -%% -%% COPYRIGHT 1993-2006 by Timothy Van Zandt, tvz@nwu.edu. -%% COPYRIGHT 2007-2009 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 -%% archives in directory macros/latex/base/lppl.txt. -%% -\csname PSTplotLoaded\endcsname -\let\PSTplotLoaded\endinput -% -\ifx\PSTricksLoaded\endinput\else\input pstricks.tex \fi -\ifx\MultidoLoaded\endinput\else \input multido.tex \fi -% -\def\fileversion{1.04} -\def\filedate{2009/06/08} -\message{ v\fileversion, \filedate} -% -\edef\TheAtCode{\the\catcode`\@} -\catcode`\@=11 -% -% Using lists of data is optimized for \dataplot and \fileplot -% Here is the tricky part. As each line is read from file, -% we want to ignore trailing delimiters, and convert arbitrary -% strings of non-trailing delimiters to _D_. -% We end up with -% D x1 D y1 D x2 D y2 ... D xn D yn -% -\begingroup -\catcode`\{=13 -\catcode`\}=13 -\catcode`\(=13 -\catcode`\)=13 -\catcode`\,=13 -\catcode`\!=1 -\catcode`\*=2 -\catcode`\ =13 -\catcode`\_=13 -\catcode`\^^M=13 -\gdef\pst@datadelimiters!% Begin def -\catcode`\{=13% -\catcode`\}=13% -\catcode`\(=13% -\catcode`\)=13% -\catcode`\,=13% -\catcode`\ =13% -\catcode`\^^M=13% -\def,##1!% -\ifcat\noexpand,\noexpand##1% -\expandafter##1% -\else\space% -D\space##1% -\fi*% -\let(,\let),\let{,\let},\let ,\let^^M,\let_\@empty*% End def -\endgroup -% -\begingroup -\catcode`\,=13 -\catcode`\_=13 -\gdef\savedata@#1[#2]{% - \xdef\pst@tempg{#2_}% - \endgroup - \let#1\pst@tempg - \global\let\pst@tempg\relax - \ignorespaces} -% -\gdef\readdata@{% - \read1 to \pst@tempa - \expandafter\readdata@@\pst@tempa_\@nil - \ifeof1\else\expandafter\readdata@\fi} - \gdef\pst@@readfile#1#2\@nil{\addto@pscode{,#1#2}}% - \gdef\readdata@@#1#2\@nil{\xdef\pst@tempg{\pst@tempg,#1#2}}% -\endgroup -% -\def\readdata#1#2{% - \openin1=#2 - \begingroup - \def\pst@tempg{}% - \ifeof1 - \@pstrickserr{Data file `#2' not found.}\@ehpa - \else - \pst@datadelimiters - \catcode`\[=1 - \catcode`\]=2 - \readdata@% - \fi - \endgroup - \let#1\pst@tempg -% \ifnum\Pst@Debug>0 \typeout{==DEBUG== pst-plot:readdata:\string\pst@tempg: \pst@tempg}\fi% hv 2008-02-28 - \global\let\pst@tempg\relax - \ignorespaces} -% -\def\pst@readfile#1{{\let\readdata@@\pst@@readfile\readdata\pst@tempg{#1}}} -\def\pst@altreadfile#1{% - \openin1=#1 - \ifeof1 - \@pstrickserr{Data file `#1' not found.}\@ehpa - \else - \catcode`\{=10 - \catcode`\}=10 - \catcode`\(=10 - \catcode`\)=10 - \catcode`\,=10 - \catcode`\^^M=10 - \catcode`\[=1 - \catcode`\]=2 - \pst@@altreadfile - \fi} -\def\pst@@altreadfile{% - \read1 to \pst@tempg - \expandafter\pst@@@altreadfile\pst@tempg\@empty\@nil - \ifeof1\else\expandafter\pst@@@altreadfile\fi} -\def\pst@@@altreadfile#1#2\@nil{\addto@pscode{#1#2}}% -% -\def\savedata#1{\begingroup\pst@datadelimiters\savedata@{#1}} -% -\def\beginplot@line{\begin@OpenObj} -\def\endplot@line{\psline@ii} -\def\beginplot@polygon{\begin@ClosedObj} -\def\endplot@polygon{\pspolygon@ii} -\def\beginplot@curve{\begin@OpenObj} -\def\endplot@curve{\pscurve@ii} -\def\beginplot@ecurve{\begin@OpenObj} -\def\endplot@ecurve{\psecurve@ii} -\def\beginplot@ccurve{\begin@ClosedObj} -\def\endplot@ccurve{\psccurve@ii} -\def\beginplot@dots{\begin@SpecialObj} -\def\endplot@dots{\psdots@ii} -\def\beginplot@bezier{\begin@OpenObj} -\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}% - {\edef\psplotstyle{#1}}} -\psset@plotstyle{line} -% -\def\psset@plotpoints#1{% - \pst@cntg=#1\relax - \ifnum\pst@cntg<2 - \@pstrickserr{plotpoints parameter must be at least 2}\@ehpa - \else - \advance\pst@cntg-1 - \edef\psk@plotpoints{\the\pst@cntg\space}% - \fi} -\psset@plotpoints{50} -% -% For quick plots, define: -% \beginqp@<foo> : What to do to first point (PS code only). -% \doqp@<foo> : What to do to subsequent points (PS code only). -% \endqp@<foo> : How to end plot. -% \testqp@<foo> : Set \@psttrue if OK to use quick plot. -% -\def\beginqp@line{\pst@oplineto} -\def\doqp@line{L } -\def\endqp@line{\end@OpenObj}% -\def\testqp@line{% - \ifdim\pslinearc>\z@\else - \ifshowpoints\else - \ifx\psk@arrowA\@empty - \ifx\psk@arrowB\@empty - \@psttrue - \fi - \fi - \fi - \fi} -% -\def\beginqp@polygon{moveto } -\def\doqp@polygon{L } -\def\endqp@polygon{% - \addto@pscode{closepath}% - \end@ClosedObj} -\def\testqp@polygon{% - \ifdim\pslinearc>\z@\else - \ifshowpoints\else - \@psttrue - \fi - \fi} -% -\def\beginqp@dots{% - \psk@dotsize - \@nameuse{psds@\psk@dotstyle} -% DG/SR modification begin - Dec. 12, 1999 - Patch 2 -% /TheDot { gsave \psk@dotangle \psk@dotscale Dot grestore } def -% TheDot } - Dot } -%\def\doqp@dots{TheDot } -\def\doqp@dots{Dot } -% DG/SR modification end -\def\endqp@dots{\end@SpecialObj} -\def\testqp@dots{\@psttrue} -% -\def\beginqp@bezier{/n 0 def \pst@oplineto} -\def\doqp@bezier{/n n 1 add def n 3 mod 0 eq { curveto } if } -\def\endqp@bezier{% - \addto@pscode{n 3 mod { pop pop } repeat} - \end@OpenObj}% -\def\testqp@bezier{% - \ifshowpoints\else - \ifx\psk@arrowA\@empty - \ifx\psk@arrowB\@empty - \@psttrue - \fi - \fi - \fi} -% -\def\beginqp@cbezier{/n 0 def moveto } -\def\doqp@cbezier{\doqp@bezier} -\def\endqp@cbezier{% - \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\psdataplot{\def\pst@par{}\pst@object{dataplot}} -\def\dataplot{\def\pst@par{}\pst@object{dataplot}} -\def\dataplot@i#1{% - \pst@killglue - \begingroup - \use@par - \@pstfalse - \@nameuse{testqp@\psplotstyle}% - \if@pst - \dataplot@ii{\addto@pscode{#1}}% - \else - \listplot@ii{\addto@pscode{#1}}% - \fi - \endgroup - \ignorespaces} -% -\def\dataplot@ii#1{% - \@nameuse{beginplot@\psplotstyle}% - \addto@pscode{% - /Dx { \pst@number\psxunit mul /D { Dy } def } def - /Dy { \pst@number\psyunit mul Do /D { Dx } def } def - /D { /D { Dx } def } def - /Do { - \@nameuse{beginqp@\psplotstyle}% - /Do { \@nameuse{doqp@\psplotstyle}} def - } def}% - #1% % this is \pst@readfile{#1} for fileplot - \addto@pscode{ D }% - \@nameuse{endqp@\psplotstyle}} -% -\def\psfileplot{\def\pst@par{}\pst@object{fileplot}} -\def\fileplot{\def\pst@par{}\pst@object{fileplot}} -\def\fileplot@i#1{% - \pst@killglue% - \begingroup% - \use@par% - \@pstfalse% - \@nameuse{testqp@\psplotstyle}% - \if@pst\dataplot@ii{\pst@readfile{#1}}\else\listplot@ii{\pst@altreadfile{#1}}\fi% - \endgroup% - \ignorespaces} -% -\pst@def{ScalePoints}<% - /y ED /x ED - counttomark dup dup cvi eq not { exch pop } if - /m exch def /n m 2 div cvi def - n { y mul m 1 roll x mul m 1 roll /m m 2 sub def } repeat> -% -\def\pslistplot{\def\pst@par{}\pst@object{listplot}} -\def\listplot{\def\pst@par{}\pst@object{listplot}} -\def\listplot@i#1{\listplot@ii{\addto@pscode{#1}}} -\def\listplot@ii#1{% - \@nameuse{beginplot@\psplotstyle}% - \addto@pscode{/D {} def mark}% - #1% - \addto@pscode{\pst@number\psxunit \pst@number\psyunit \tx@ScalePoints}% - \@nameuse{endplot@\psplotstyle}} -% -% \psplot -\def\psplotinit#1{\xdef\psplot@init{#1 }} -\def\psplot@init{} -% -\def\psplot{\def\pst@par{}\pst@object{psplot}} -\def\psplot@i#1#2#3{% - \pst@killglue - \begingroup - \use@par - \@nameuse{beginplot@\psplotstyle}% - \addto@pscode{% - \psplot@init - /x #1 def - /x1 #2 def - /dx x1 x sub \psk@plotpoints div def - /xy { - x \pst@number\psxunit mul - #3 \pst@number\psyunit mul - } def}% - \gdef\psplot@init{}% - \@pstfalse - \@nameuse{testqp@\psplotstyle}% - \if@pst - \psplot@ii - \else - \psplot@iii - \fi - \endgroup - \ignorespaces} -\def\psplot@ii{% - \addto@pscode{% - /ps@Exit false def % hv 2008-11-22 - xy \@nameuse{beginqp@\psplotstyle} - \psk@plotpoints 1 sub { - /x x dx add def - xy \@nameuse{doqp@\psplotstyle} - ps@Exit { exit } if % hv 2008-11-22 - } repeat - ps@Exit not { % hv 2008-11-22 - /x x1 def - xy \@nameuse{doqp@\psplotstyle} - } if }% - \@nameuse{endqp@\psplotstyle}} -\def\psplot@iii{% - \addto@pscode{% - mark - /n 2 def - \psk@plotpoints { - xy - n 2 roll - /n n 2 add def - /x x dx add def - } repeat - /x x1 def - xy - n 2 roll}% - \@nameuse{endplot@\psplotstyle}} -% -\def\psparametricplot{\def\pst@par{}\pst@object{parametricplot}}% hv 2008-11-22 -\def\parametricplot{\def\pst@par{}\pst@object{parametricplot}} -\def\parametricplot@i#1#2#3{% - \pst@killglue - \begingroup - \use@par - \@nameuse{beginplot@\psplotstyle}% - \addto@pscode{% - \psplot@init - /t #1 def - /t1 #2 def - /dt t1 t sub \psk@plotpoints div def - /xy { - #3 - \pst@number\psyunit mul exch - \pst@number\psxunit mul exch - } def}% - \gdef\psplot@init{}% - \@pstfalse - \@nameuse{testqp@\psplotstyle}% - \if@pst - \parametricplot@ii - \else - \parametricplot@iii - \fi - \endgroup - \ignorespaces} -\def\parametricplot@ii{% - \addto@pscode{% - /ps@Exit false def % hv 2008-11-22 - xy \@nameuse{beginqp@\psplotstyle} - \psk@plotpoints 1 sub { - /t t dt add def - xy \@nameuse{doqp@\psplotstyle} - ps@Exit { exit } if % hv 2008-11-22 - } repeat - ps@Exit not { - /t t1 def - xy \@nameuse{doqp@\psplotstyle} - } if }% - \@nameuse{endqp@\psplotstyle}} -\def\parametricplot@iii{% - \addto@pscode{% - mark - /n 2 def - \psk@plotpoints { - xy - n 2 roll - /n n 2 add def - /t t dt add def - } repeat - /t t1 def - xy - n 2 roll}% - \@nameuse{endplot@\psplotstyle}} -% -% These axes macros are complicated. Be careful. -% -% \pst@ticks{angle}{dx}{n}{int} -% int=1 if ticks appear on top of axes, 0 otherwise. -\def\pst@ticks#1#2#3#4{% - \begin@SpecialObj - \addto@pscode{% - #1 rotate - /n #3 def - /dx #2 def - n 0 lt { /dx dx neg def /n n neg def } if - /y2 \psk@ticksize CLW 2 div add def - /y1 y2 neg def - \ifnum\psk@tickstyle=1 - \ifdim#4<\z@ /y2 \else /y1 \fi 0 def - \else - \ifnum\psk@tickstyle=-1 - \ifdim#4<\z@ /y1 \else /y2 \fi 0 def - \fi - \fi - /x dx def - n { x y1 moveto x y2 lineto stroke /x x dx add def } repeat}% - \end@SpecialObj} -% -\def\psset@ticksize#1{\pst@getlength{#1}\psk@ticksize} -\psset@ticksize{3pt} -% -\def\psset@tickstyle#1{\pst@expandafter\psset@@tickstyle{#1}\@nil} -\def\psset@@tickstyle#1#2\@nil{% - \ifx#1f\let\psk@tickstyle\z@\else - \ifx#1t\let\psk@tickstyle\@ne\else - \ifx#1b\let\psk@tickstyle\m@ne\else - \@pstrickserr{Bad tick style: `#1#2'}\@ehpa - \fi\fi\fi} -\psset@tickstyle{full} -% -\def\psset@ticks#1{\pst@expandafter\psset@@ticks{#1}\@nil\psk@ticks} -\def\psset@@ticks#1#2\@nil#3{% - \ifx#1a\let#3\z@\else - \ifx#1x\let#3\@ne\else - \ifx#1y\let#3\tw@\else - \ifx#1n\let#3\thr@@\else - \@pstrickserr{Bad argument: `#1#2'}\@ehpa - \fi\fi\fi\fi} -\psset@ticks{all} -% -\def\psset@labels#1{\pst@expandafter\psset@@ticks{#1}\@nil\psk@labels} -\psset@labels{all} -% -\def\psset@Ox#1{\edef\psk@Ox{#1}} -\psset@Ox{0} -\def\psset@Dx#1{\edef\psk@Dx{#1}} -\psset@Dx{1} -\def\psset@dx#1{% - \pssetxlength\pst@dimg{#1}% - \edef\psk@dx{\number\pst@dimg}} -\psset@dx{0} -% -\def\psset@Oy#1{\edef\psk@Oy{#1}} -\psset@Oy{0} -\def\psset@Dy#1{\edef\psk@Dy{#1}} -\psset@Dy{1} -\def\psset@dy#1{% - \pssetylength\pst@dimg{#1}% - \edef\psk@dy{\number\pst@dimg}} -\psset@dy{0} -% -\newif\ifshoworigin -\def\psset@showorigin#1{\@nameuse{showorigin#1}} -\psset@showorigin{true} -% -\def\psaxes{\def\pst@par{}\pst@object{psaxes}} -\def\psaxes@i{\pst@getarrows\psaxes@ii} -\def\psaxes@ii(#1){\@ifnextchar({\psaxes@iii(#1)}{\psaxes@iv(0,0)(0,0)(#1)}} -\def\psaxes@iii(#1)(#2){% - \@ifnextchar(% - {\psaxes@iv(#1)(#2)}% - {\psaxes@iv(#1)(#1)(#2)}} -\def\psaxes@iv(#1,#2)(#3,#4)(#5,#6){% - \setbox\pst@hbox=\hbox\bgroup - \use@par - \pssetxlength\pst@dimg{#1}% o-x - \pssetylength\pst@dimh{#2}% o-y - \pssetxlength\pst@dima{#3}% bl-x - \pssetylength\pst@dimb{#4}% bl-y - \pssetxlength\pst@dimc{#5}% ur-x - \pssetylength\pst@dimd{#6}% ur-y -% Whole thing will be translated to origin: - \advance\pst@dima-\pst@dimg % Dist. from bl-x to o-x - \advance\pst@dimb-\pst@dimh % Dist. from bl-y to o-y - \advance\pst@dimc-\pst@dimg % Dist. from ur-x to o-x - \advance\pst@dimd-\pst@dimh % Dist. from ur-y to o-y -% Make lines/arrows or frame: - \@nameuse{psxs@\psk@axesstyle}% -% "\pslabelsep" should be from the edge of the axis. - \advance\pslabelsep.5\pslinewidth -% Now the ticks and labels. Start by checking for "\multido". -% !!Need to fix this so that does nothing when there are 0 ticks.!! - \begingroup - \ifdim\pst@dimb=\z@\else\showoriginfalse\fi - \ifnum\psk@dx=\z@ - \pst@dimg=\psk@Dx\psxunit - \psDEBUG[psaxes@iv]{local:\textbackslash pst@dimg=\the\pst@dimg}% v.1.01 - \ifdim\pst@dimg<\p@ \pst@cnta=\psk@Dx \edef\psk@Dx{-\the\pst@cnta} % v.1.01 - \psDEBUG[psaxes@iv]{Dx -> -Dx (was negative)}% v.1.01 - \fi % v.1.01 - \edef\psk@dx{\number\pst@dimg}% - \psDEBUG[psaxes@iv]{local: \textbackslash psk@dx=\psk@dx}% v.1.01 - \else\psDEBUG[psaxes@iv]{global: \textbackslash psk@dx=\psk@dx}% - \fi - \ifnum\psk@ticks<\tw@ - \ifnum\psk@tickstyle>\z@ \else\advance\pslabelsep\psk@ticksize\p@\fi - \fi - \pst@hlabels\pst@dimc\psk@arrowB - \pst@hlabels\pst@dima\psk@arrowA - \endgroup - \begingroup - \ifdim\pst@dima=\z@\else\showoriginfalse\fi - \ifnum\psk@dy=\z@ - \pst@dimg=\psk@Dy\psyunit - \psDEBUG[psaxes@iv]{\textbackslash pst@dimg=\the\pst@dimg}% v.1.01 - \ifdim\pst@dimg<\p@ \pst@cnta=\psk@Dy \edef\psk@Dy{-\the\pst@cnta} % v.1.01 - \psDEBUG[psaxes@iv]{Dy -> -Dy (was negative)}% v.1.01 - \fi % v.1.01 - \edef\psk@dy{\number\pst@dimg}% - \psDEBUG[psaxes@iv]{\textbackslash psk@dy=\psk@dy}% v.1.01 - \fi - \ifodd\psk@ticks\else - \ifnum\psk@tickstyle>\z@ \else\advance\pslabelsep\psk@ticksize\p@\fi - \fi - \pst@vlabels\pst@dimd\psk@arrowB - \pst@vlabels\pst@dimb\psk@arrowA - \endgroup -% Now close "\pst@hbox" (which is 0-dimensional), and put it at the origin. - \egroup - \pssetxlength\pst@dimg{#1}% - \pssetylength\pst@dimh{#2}% - \leavevmode\psput@cartesian\pst@hbox - \ignorespaces} -% -\def\psxs@axes{% - \psxs@@axes\pst@dima\pst@dimc{}% - \psxs@@axes\pst@dimb\pst@dimd{exch}} -\def\psxs@@axes#1#2#3{% - \begin@SpecialObj - \ifdim#1=\z@ - \def\psk@arrowA{C}% - \else - \ifdim#2=\z@ - \def\psk@arrowB{C}% - \fi - \fi - \let\pst@linetype\pst@arrowtype - \pst@addarrowdef - \addto@pscode{% - \pst@number#2 0 #3 - \pst@number#1 0 #3 - ArrowA - CP 4 2 roll - ArrowB - L - pop pop}% - \pst@stroke - \end@SpecialObj} -% -\def\psxs@frame{% - \begin@SpecialObj - \addto@pscode{% - 0 0 moveto \pst@number\pst@dimc 0 L - 0 \pst@number\pst@dimd 2 copy rlineto L closepath}% - \pst@stroke - \psk@fillstyle - \end@SpecialObj - \let\psk@arrowA\@empty - \let\psk@arrowB\@empty} - -\def\psset@axesstyle#1{% - \@ifundefined{psxs@#1}% - {\@pstrickserr{Axes style `#1' not defined}\@eha}% - {\edef\psk@axesstyle{#1}}} -\psset@axesstyle{axes} -% -\def\psxs@none{\let\psk@arrowA\@empty\let\psk@arrowB\@empty} -% -% The origin is never the only label. -\def\pst@hlabels#1#2{% - \ifdim#1=\z@\else - \ifx#2\empty\else\advance#1\ifdim#1>\z@-\fi7\pslinewidth\fi - \pst@cnta=#1\relax % Distance (in sp) to end. - \divide\pst@cnta\psk@dx\relax % Number of ticks/labels - \ifnum\pst@cnta=\z@\else - \pst@dimb=\psk@dx sp % Space between ticks. - \ifnum\psk@ticks<\tw@ - \pst@ticks{0}{\pst@number\pst@dimb}{\the\pst@cnta}{\pst@dimd}% - \fi - \ifnum\psk@labels<\tw@ \pst@@hlabels\fi - \showoriginfalse - \fi -\fi} -% -% Knows \pst@dimb and \pst@cnta -\def\pst@minusZero{-0} -\def\pst@@hlabels{% - \vbox to\z@{% - \ifdim\pst@dimd>\z@\vskip\pslabelsep\else\vss\fi - \ifnum\pst@cnta<\z@ \pst@dimb=-\pst@dimb\fi - \hbox to\z@{% - \ifshoworigin\hbox to \z@{\hss\pshlabel{\psk@Ox}\hss}\fi - \mmultido - {\nA=\psk@Ox+\psk@Dx}% - {\pst@cnta}% - {\hskip\pst@dimb\hbox to \z@{% - \hss\ifx\nA\pst@minusZero \pshlabel{0}\else\pshlabel{\nA}\fi -% \hss\ifdim\nA pt=\z@ \pshlabel{0}\else\pshlabel{\nA}\fi - \hss}}% prevent "-0" - \hss}% - \ifdim\pst@dimd>\z@\vss\else\vskip\pslabelsep\fi}}% - -\def\pshlabel#1{$#1$} -% -\def\pst@vlabels#1#2{% - \ifdim#1=\z@\else - \ifx#2\empty\else - \advance#1\ifdim#1>\z@-\fi7\pslinewidth - \fi - \pst@cnta=#1\relax % Distance (in sp) to end. - \divide\pst@cnta\psk@dy\relax % Number of ticks/labels - \ifnum\pst@cnta=\z@\else - \pst@dima=\psk@dy sp % Space between ticks. - \ifodd\psk@ticks\else - \pst@ticks{90}{\pst@number\pst@dima}{\the\pst@cnta}{-\pst@dimc}% - \fi - \ifodd\psk@labels\else\pst@@vlabels\fi - \showoriginfalse - \fi - \fi} -% -% Knows \pst@dima and \pst@cnta -\def\pst@@vlabels{% - \vbox to\z@{% - \ifnum\pst@cnta>\z@ - \pst@dima=-\pst@dima - \fi - \offinterlineskip - \ifshoworigin - \vbox to \z@{\vss\hbox to\z@{% - \ifdim\pst@dimc>\z@\hss\else\hskip\pslabelsep\fi - \psvlabel{\psk@Oy}% - \ifdim\pst@dimc>\z@\hskip\pslabelsep\else\hss\fi}\vss}% - \fi - \mmultido - {\nA=\psk@Oy+\psk@Dy}% - {\pst@cnta}% - {\vbox to\pst@dima{\vss}\vbox to \z@{\vss\hbox to\z@{% - \ifdim\pst@dimc>\z@\hss\else\hskip\pslabelsep\fi - \ifx\nA\pst@minusZero \psvlabel{0}\else\psvlabel{\nA}\fi% -% \ifdim\nA sp=\z@ \psvlabel{0}\else\psvlabel{\nA}\fi% prevent -0, doesn't work with \ifnum - \ifdim\pst@dimc>\z@\hskip\pslabelsep\else\hss\fi}\vss}}% - \vss}} -% -\def\psvlabel#1{$#1$} -% -\catcode`\@=\TheAtCode\relax -\endinput -%% -%% END pst-plot.tex diff --git a/Master/texmf-dist/tex/generic/pstricks/pstricks.con b/Master/texmf-dist/tex/generic/pstricks/pstricks.con index 8dbf0b8bef4..08f7a66be78 100644 --- a/Master/texmf-dist/tex/generic/pstricks/pstricks.con +++ b/Master/texmf-dist/tex/generic/pstricks/pstricks.con @@ -1,15 +1,15 @@ %% BEGIN: pstricks.con (for dvips driver) %% -%% Configuration file for PSTricks 97 +%% Configuration file for PSTricks %% -%% Version 97 patch 2 (1997/04/28) +%% Version 1.00 (2010/01/16) %% %% For use with Rokicki's dvips (tested with v5.74 and older) \def\pstdriver{Rokicki's dvips} {\catcode`\"=12\gdef\pstverb#1{\special{" #1}}} % Check catcode of " \def\pstunit{1bp}% -\def\pstVerb#1{\special{ps: #1}} +\def\pstVerb#1{\special{ps:#1}}% hv write it without a preceding space \def\pstverbscale{SDict begin normalscale end} % DG/SR modification begin - Apr. 28, 1997 (D. Carlisle + S. Rahtz) % \def\pstheader#1{\special{header=#1}} diff --git a/Master/texmf-dist/tex/generic/pstricks/pstricks.tex b/Master/texmf-dist/tex/generic/pstricks/pstricks.tex index 68310975004..06f90a2553e 100644 --- a/Master/texmf-dist/tex/generic/pstricks/pstricks.tex +++ b/Master/texmf-dist/tex/generic/pstricks/pstricks.tex @@ -20,13 +20,20 @@ % See the PSTricks User's Guide for description. % This uses the header file `pstricks.pro'. % -\def\fileversion{1.31} -\def\filedate{2009/11/27} % \csname PSTricksLoaded\endcsname \let\PSTricksLoaded\endinput +\ifx\PSTXKeyLoaded\endinput\else \input pst-xkey.tex \fi +\ifx\PSTFPloaded\endinput\else \input pst-fp.tex\fi +% +\def\fileversion{2.0} +\def\filedate{2010/02/11} +% \edef\PstAtCode{\the\catcode`\@} \catcode`\@=11\relax +% +\pst@addfams{pstricks} +% \expandafter\ifx\csname @latexerr\endcsname\relax% do we have LaTeX? \def\typeout#1{\immediate\write\@unused{#1}} \alloc@7\write\chardef\sixt@@n\@unused @@ -59,8 +66,80 @@ \def\:{\@xifnch} \expandafter\gdef\: {\futurelet\@tempc\@ifnch} \endgroup \fi +% stolen from latex.ltx to make it TeX compatible +\newcount\psLoopIndex +\def\@fornoop#1\@@#2#3{} +\long\def\@for#1:=#2\do#3{% + \pst@cntm=0% + \expandafter\def\expandafter\@fortmp\expandafter{#2}% + \ifx\@fortmp\@empty \else + \expandafter\@forloop#2,\@nil,\@nil\@@#1{#3}\fi} +\long\def\@forloop#1,#2,#3\@@#4#5{\def#4{#1}\ifx #4\@nnil \else + #5\def#4{#2}\ifx #4\@nnil \else\global\advance\psLoopIndex by \@ne\relax% + #5\@iforloop #3\@@#4{#5}\fi\fi} +\long\def\@iforloop#1,#2\@@#3#4{\global\advance\psLoopIndex by \@ne\relax% + \def#3{#1}\ifx #3\@nnil + \expandafter\@fornoop \else + #4\relax\expandafter\@iforloop\fi#2\@@#3{#4}} +% +\long\def\psforeach#1#2#3{% + \global\psLoopIndex=0\relax + \if$\ifnum9<1#2$ \else \fi \psforeach@ii{#1}{#2}{#3} + \else \expandafter\psforeach@i#2,..,,..,\@nil{#1}{#3}\fi} +\long\def\psforeach@i#1,#2,..,#3,..,#4\@nil#5#6{% + \ifx\relax#3\relax\psforeach@ii{#5}{#1,#2}{#6} + \else\psforeach@iii{#5}{#1}{#2}{#3}{#6}\fi} +\long\def\psforeach@ii#1#2#3{% + \begingroup% + \edef\reserved@a{#2}% + \@for#1:=\reserved@a\do{#3}% + \endgroup} +\long\def\psforeach@iii#1#2#3#4#5{% + \pstFPsub\pst@tempA{#3}{#2}% + \pst@dimm=\pst@tempA pt + \pstFPstripZeros{\pst@tempA}\pst@tempB% + \def\pst@tempA{#2}% + \def\pst@tempa{#2}% + \pst@dimn=#4pt% + \loop% + \pst@dimm=\pst@tempA pt% + \ifdim\pst@dimm<\pst@dimn% + \pstFPadd\pst@tempA{\pst@tempA}{\pst@tempB}% + \pstFPstripZeros{\pst@tempA}\pst@tempA + \edef\pst@tempa{\pst@tempa,\pst@tempA}% + \repeat% + \psforeach@ii{#1}{\pst@tempa}{#5}} +% +\long\def\psForeach#1#2#3{% + \global\psLoopIndex=0\relax + \if$\ifnum9<1#2$ \else \fi \psforeach@ii{#1}{#2}{#3} + \else \expandafter\psForeach@i#2,..,,..,\@nil{#1}{#3}\fi} +\long\def\psForeach@i#1,#2,..,#3,..,#4\@nil#5#6{% + \ifx\relax#3\relax\psForeach@ii{#5}{#1,#2}{#6} + \else\psForeach@iii{#5}{#1}{#2}{#3}{#6}\fi} +\long\def\psForeach@ii#1#2#3{% + \edef\reserved@a{#2}% + \@for#1:=\reserved@a\do{#3}} +\long\def\psForeach@iii#1#2#3#4#5{% + \pstFPsub\pst@tempA{#3}{#2}% + \pst@dimm=\pst@tempA pt + \pstFPstripZeros{\pst@tempA}\pst@tempB% + \def\pst@tempA{#2}% + \def\pst@tempa{#2}% + \pst@dimn=#4pt% + \loop% + \pst@dimm=\pst@tempA pt% + \ifdim\pst@dimm<\pst@dimn% + \pstFPadd\pst@tempA{\pst@tempA}{\pst@tempB}% + \pstFPstripZeros{\pst@tempA}\pst@tempA + \edef\pst@tempa{\pst@tempa,\pst@tempA}% + \repeat% + \psForeach@ii{#1}{\pst@tempa}{#5}} +% +% % % hv 2007-10-16 to fix the bug in pst-node with \\[name=...] +% hv fix bug with empty fnodes in psmatrix \def\ps@ifnextchar#1#2#3{% \let\reserved@d= #1% \def\reserved@a{#2}\def\reserved@b{#3}% @@ -69,6 +148,7 @@ \ifx\@let@token\reserved@d \let\reserved@b\reserved@a \fi \reserved@b } +\def\pshskip#1{\vrule \@width\z@\nobreak \hskip #1\hskip \z@skip} % end bugfix \typeout{`PSTricks' v\fileversion\space\space <\filedate> (tvz)} \def\@pstrickserr#1#2{% @@ -92,6 +172,10 @@ You better fix this before proceding.^^J See the PSTricks User's Guide or ask your system administrator for help.^^J Type \space X <return> \space to quit.} +\def\@ehpd{% + Not allowed optional argument.^^J + Will proceed with the default setting.^^J + Type \space X <return> \space to quit.} \def\pst@misplaced#1{\@pstrickserr{Misplaced \string#1 command}\@ehpb} \newdimen\pst@dima \newdimen\pst@dimb @@ -99,6 +183,12 @@ \newdimen\pst@dimd \newdimen\pst@dimg \newdimen\pst@dimh +\newdimen\pst@dimm +\newdimen\pst@dimn +\newdimen\pst@dimo +\newdimen\pst@dimp +\chardef\f@ur=4 +% \newbox\pst@hbox \newbox\pst@boxg \newcount\pst@cnta @@ -107,6 +197,11 @@ \newcount\pst@cntd \newcount\pst@cntg \newcount\pst@cnth +\newcount\pst@cntm +\newcount\pst@cntn +\newcount\pst@cnto +\newcount\pst@cntp +\newcount\@zero\@zero=0\relax % \newif\ifPst@SpecialLength \Pst@SpecialLengthfalse @@ -124,10 +219,90 @@ \def\@tempa{\@empty}% \fi \expandafter\ps@next\@tempa} +% \def\pst@dimtonum#1#2{\edef#2{\pst@@dimtonum#1}} \def\pst@@dimtonum#1{\expandafter\pst@@@dimtonum\the#1} {\catcode`\p=12 \catcode`\t=12 \global\@namedef{pst@@@dimtonum}#1pt{#1}} % +\def\pst@getdimdim#1 #2 #3\@nil{% + \def\pst@tempA{#2}% + \ifx\pst@tempA\@empty + \pssetlength\pst@dimn{#1}% + \pst@dimm=\z@% + \else% + \pssetlength\pst@dimm{#1}% + \pssetlength\pst@dimn{#2}% + \fi% +} +\def\pst@getxdimdim#1 #2 #3\@nil{% + \def\pst@tempA{#2}% + \ifx\pst@tempA\@empty + \pssetxlength\pst@dimn{#1}% + \pst@dimm=\z@ + \else% + \pssetxlength\pst@dimm{#1}% + \pssetxlength\pst@dimn{#2}% + \fi% +} +\def\pst@getydimdim#1 #2 #3\@nil{% + \def\pst@tempA{#2} + \ifx\pst@tempA\@empty + \pssetylength\pst@dimn{#1} + \pst@dimm=\z@ + \else + \pssetylength\pst@dimm{#1}% + \pssetylength\pst@dimn{#2}% + \fi% +} +% +% A modulo macro for integer values +% \pst@mod{34}{6}\value ==> \value is 4 +% +\def\pst@mod#1#2#3{% + \begingroup% + \pst@cntm=#1\pst@cntn=#2\relax% + \pst@cnto=\pst@cntm% + \divide\pst@cntm by \pst@cntn% + \multiply\pst@cntn by \pst@cntm% + \advance\pst@cnto by -\pst@cntn% + \edef\value{\endgroup\def\noexpand#3{\number\pst@cnto}}\value% +} +\def\pst@max#1#2#3{% + \begingroup% + \pst@cntm=#1\pst@cntn=#2\relax% + \ifnum\pst@cntm<\pst@cntn\pst@cntm=\pst@cntn\fi + \global#3=\the\pst@cntm% + \endgroup% +} +\def\pst@maxdim#1#2#3{% + \begingroup% + \pst@dimm=#1\pst@dimn=#2\relax% + \ifdim\pst@dimm<\pst@dimn\pst@dimm=\pst@dimn\fi + \global#3=\the\pst@dimm% + \endgroup% +} +\def\pst@mindim#1#2#3{% + \begingroup% + \pst@dimm=#1\pst@dimn=#2\relax% + \ifdim\pst@dimm>\pst@dimn\pst@dimm=\pst@dimn\fi + \global#3=\the\pst@dimm% + \endgroup% +} +\def\pst@abs#1#2{% + \begingroup% + \pst@cntm=#1\relax% + \ifnum\pst@cntm<\z@\pst@cntm=-\pst@cntm\fi% + \global#2=\the\pst@cntm + \endgroup% +} +\def\pst@absdim#1#2{% + \begingroup% + \pst@dimm=#1\relax% + \ifdim\pst@dimm<\z@\pst@dimm=-\pst@dimm\fi% + \global#2=\the\pst@dimm% + \endgroup% +} +% \def\pst@pyth#1#2#3{% from pst-3d \begingroup \pst@dima=#1\relax @@ -286,24 +461,6 @@ \pssetlength\pst@dimg{#1}% \pst@checknum{#2}\pst@tempg% } -% DG/SR modification begin - Jan. 7, 1998 - Patch 9 -% Missing from pstricks.bug 0.93 -%\def\pst@getscale#1#2{% -%\pst@expandafter\pst@getnumii{#1 #1} {} {} {}\@nil -%\@psttrue -%\ifdim\pst@tempg\p@=\z@ -%\@pstrickserr{Bad scaling argument `#1'}\@ehpa -%\def\pst@tempg{1 }% -%\@pstfalse -%\fi -%\ifdim\pst@temph\p@=\z@ -%\if@pst\@pstrickserr{Bad scaling argument `#1'}\@ehpa\fi -%\def\pst@temph{1 }% -%\fi -%\edef#2{\pst@tempg\space \pst@temph\space scale }% -%\ifdim\pst@tempg\p@=\p@ \ifdim\pst@temph\p@=\p@ -%\def#2{}% -%\fi\fi} \def\pst@getscale#1#2{% read and check a scale input x [y] \edef\pst@tempg{#1}% \ifx\pst@tempg\@none @@ -323,7 +480,6 @@ \fi \fi% } -% DG/SR modification end \def\pst@getint#1#2{% read and check an integer \pst@cntg=#1\relax \edef#2{\the\pst@cntg\space}% @@ -384,28 +540,17 @@ \newrgbcolor{yellow}{1 1 0} \newrgbcolor{cyan}{0 1 1} \newrgbcolor{magenta}{1 0 1} -\def\psset#1{\@psset#1,\@nil\ignorespaces} -\def\@psset#1,{% - \@@psset#1==\@nil% - \@ifnextchar\@nil{\@gobble}{\@psset}% -} -\def\@@psset#1=#2=#3\@nil{% - \@ifundefined{psset@#1}% - {\@pstrickserr{Graphics parameter `#1' not defined.}\@ehpa}% - {\@nameuse{psset@#1}{#2}}% -}% -\def\psset@style#1{% +% +\define@key[psset]{pstricks}{style}{% \@ifundefined{pscs@#1}% {\@pstrickserr{Custom style `#1' undefined}\@ehpa}% {\@nameuse{pscs@#1}}% } -%\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}} -%------------ hv 1.10 end ------------------- -%------------ hv 1.16 begin ------------------- + \ifx\pst@tempA\@empty\else\psset{#2}\fi}% +} +% \def\addto@psstyle#1#2{% \pst@toks=\expandafter{#1#2}% \edef#1{\the\pst@toks}} @@ -452,20 +597,20 @@ \afterassignment\pstunit@off #1 #2\@psunit% } -\def\psset@unit#1{% +\define@key[psset]{pstricks}{unit}[1cm]{% \pssetlength\psunit{#1}% \psxunit=\psunit% \psyunit=\psunit% } -\def\psset@runit#1{\pssetlength\psrunit{#1}} -\def\psset@xunit#1{\pssetxlength\psxunit{#1}} -\def\psset@yunit#1{\pssetylength\psyunit{#1}} -% v 1.05 begin -\def\psset@PstDebug#1{\pst@getint{#1}{\Pst@Debug}}% hv 2004-06-22 -\psset{PstDebug=0} +\define@key[psset]{pstricks}{runit}[1cm]{\pssetlength\psrunit{#1}} +\define@key[psset]{pstricks}{xunit}[1cm]{\pssetxlength\psxunit{#1}} +\define@key[psset]{pstricks}{yunit}[1cm]{\pssetylength\psyunit{#1}} +% +\define@key[psset]{pstricks}{PstDebug}[0]{\pst@getint{#1}\Pst@Debug}% hv 2004-06-22 +\psset[pstricks]{PstDebug=0} \def\psDEBUG{\@ifnextchar[\psDEBUG@i{\psDEBUG@i[PSTricks]}}% \def\psDEBUG@i[#1]#2{\ifnum\Pst@Debug>0 \expandafter\typeout{<#1>: #2}\fi}% -% end +% \def\pst@getlength#1#2{% \pssetlength\pst@dimg{#1}% \edef#2{\pst@number\pst@dimg}% @@ -674,56 +819,47 @@ \def\psput@cartesian{\psput@special}% \def\cartesian@coor##1,##2,##3\@nil{\polar@coor{##1}{##2}}% }% -\def\psset@origin#1{% +\define@key[psset]{pstricks}{origin}[]{% \pst@@getcoor{#1}% -% ----------- 1.10 beg hv ------------------- -% \edef\psk@origin{\pst@coor \tx@NET }} \edef\psk@origin{\pst@coor T }} -% ----------- 1.10 end hv ------------------- \def\psk@origin{} % -\newif\ifswapaxes -\def\psset@swapaxes#1{% \if@pst +\newif\ifPst@algebraic +\define@boolkey[psset]{pstricks}[Pst@]{algebraic}[true]{} +\psset[pstricks]{algebraic=false} +% +\define@boolkey[psset]{pstricks}[]{swapaxes}[true]{% \if@pst \@nameuse{@pst#1}% \if@pst\def\psk@swapaxes{-90 rotate -1 1 scale }% \else\def\psk@swapaxes{}% - \fi% -} -\psset@swapaxes{false} + \fi} +\psset[pstricks]{swapaxes=false} % -\newif\ifshowpoints -\def\psset@showpoints#1{\@nameuse{showpoints#1}} -\psset@showpoints{false} +\define@boolkey[psset]{pstricks}[]{showpoints}[true]{} +\psset[pstricks]{showpoints=false} % \let\pst@setrepeatarrowsflag\relax % -\def\psset@border#1{% -\pst@getlength{#1}\psk@border -\pst@setrepeatarrowsflag} -\psset@border{0pt} -\def\psset@bordercolor#1{\pst@getcolor{#1}\psbordercolor} -\psset@bordercolor{white} -\newif\ifpsdoubleline -\def\psset@doubleline#1{% - \@nameuse{psdoubleline#1}% - \pst@setrepeatarrowsflag} -\psset@doubleline{false} -\def\psset@doublesep#1{\def\psdoublesep{#1}} -\psset@doublesep{1.25\pslinewidth} -\def\psset@doublecolor#1{\pst@getcolor{#1}\psdoublecolor} -\psset@doublecolor{white} -% -\newif\ifpsshadow -\def\psset@shadow#1{% - \@nameuse{psshadow#1}% - \pst@setrepeatarrowsflag} -\psset@shadow{false} -\def\psset@shadowsize#1{\pst@getlength{#1}\psk@shadowsize} -\psset@shadowsize{3pt} -\def\psset@shadowangle#1{\pst@getangle{#1}\psk@shadowangle} -\psset@shadowangle{-45} -\def\psset@shadowcolor#1{\pst@getcolor{#1}\psshadowcolor} -\psset@shadowcolor{darkgray} +\define@key[psset]{pstricks}{border}[0pt]{\pst@getlength{#1}\psk@border \pst@setrepeatarrowsflag} +\psset[pstricks]{border=0pt} +\define@key[psset]{pstricks}{bordercolor}[white]{\pst@getcolor{#1}\psbordercolor} +\psset[pstricks]{bordercolor=white} +\define@boolkey[psset]{pstricks}[ps]{doubleline}[true]{\pst@setrepeatarrowsflag} +\psset[pstricks]{doubleline=false} +\define@key[psset]{pstricks}{doublesep}[1.25\pslinewidth]{\def\psdoublesep{#1}} +\psset[pstricks]{doublesep=1.25\pslinewidth} +\define@key[psset]{pstricks}{doublecolor}[white]{\pst@getcolor{#1}\psdoublecolor} +\psset[pstricks]{doublecolor=white} +% +\define@boolkey[psset]{pstricks}[ps]{shadow}[true]{\pst@setrepeatarrowsflag} +\psset[pstricks]{shadow=false} +\define@key[psset]{pstricks}{shadowsize}[3pt]{\pst@getlength{#1}\psk@shadowsize} +\psset[pstricks]{shadowsize=3pt} +\define@key[psset]{pstricks}{shadowangle}[-45]{\pst@getangle{#1}\psk@shadowangle} +\psset[pstricks]{shadowangle=-45} +\define@key[psset]{pstricks}{shadowcolor}[darkgrey]{\pst@getcolor{#1}\psshadowcolor} +\psset[pstricks]{shadowcolor=darkgray} +% \def\pst@repeatarrowsflag{\z@} \def\pst@setrepeatarrowsflag{% \edef\pst@repeatarrowsflag{% @@ -731,88 +867,90 @@ \ifpsshadow 1\else \z@\fi\fi\fi}} % \def\psls@none{} -\newdimen\pslinewidth -\def\psset@linewidth#1{\pssetlength\pslinewidth{#1}} -\psset@linewidth{.8pt} -\def\psset@linecolor#1{\pst@getcolor{#1}\pslinecolor} -\psset@linecolor{black} \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 +\newdimen\pslinewidth +\define@key[psset]{pstricks}{linewidth}[0.8pt]{\pssetlength\pslinewidth{#1}} +\psset[pstricks]{linewidth=.8pt} +\define@key[psset]{pstricks}{linecolor}[black]{\pst@getcolor{#1}\pslinecolor} +\psset[pstricks]{linecolor=black} +\define@key[psset]{pstricks}{linecap}[0]{\pst@getint{#1}\psk@linecap}% hv 2007-12-01 +\psset[pstricks]{linecap=0} +\define@key[psset]{pstricks}{linejoin}[0]{\pst@getint{#1}\psk@linejoin}% hv 2007-10-13 +\psset[pstricks]{linejoin=0} \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} % %%------------------- begin patch 15 HV 2004-05-15 ------------- -%\def\psset@dash#1{% -% \pst@expandafter\psset@@dash{#1} {\pst@missing} {\pst@missing} {}\@nil -% \edef\psk@dash{\pst@number\pst@dimg \pst@number\pst@dimh}% -%} -%\def\psset@@dash#1 #2 #3\@nil{% -%\pssetlength\pst@dimg{#1}% -%\pssetlength\pst@dimh{#2}} -%\psset@dash{5pt 3pt} \def\pst@empty{\z@} -\def\psset@dash#1{% black white [ black white ] - \pst@expandafter\psset@@dash{#1} {\pst@empty} {\pst@empty} % - {\pst@missing} {\pst@missing} {}\@nil - \edef\psk@dash{\pst@number\pst@dimg \pst@number\pst@dimh - \pst@number\pst@dimc \pst@number\pst@dimd}% -} -\def\psset@@dash#1 #2 #3 #4 #5\@nil{% - \pssetlength\pst@dimg{#1}% - \pssetlength\pst@dimh{#2}% - \pssetlength\pst@dimc{#3}% - \pssetlength\pst@dimd{#4}% -} -\psset@dash{5pt 3pt 0pt 0pt}% black white black white + +\define@key[psset]{pstricks}{dash}[5pt 3pt 0pt 0pt]{% defined in pstricks.tex + \pst@expandafter\psset@@dash{#1}\@nil}% Error handling for empty argument. +\define@key[psset]{pstricks}{maxdashes}[11]{\def\psk@maxdashes{#1}} +\psset[pstricks]{maxdashes=11} +% +\def\psset@@dash#1\@nil{% + \def\psk@dash{}% + \pst@cntm0 + \def\next##1 ##2\relax{% + \expandafter\ifnum\psk@maxdashes>\pst@cntm\relax % 04-08-07 + \edef\@tempa{##1}% + \ifx\@tempa\@empty\else% gobble leading spaces + \pssetlength\pst@dimc{##1}% + \advance\pst@cntm by 1 + \edef\psk@dash{\psk@dash\space\pst@number\pst@dimc}% + \fi% + \edef\@tempa{##2}% + \ifx\@tempa\@empty\else% detect end + \ifx\@tempa\space\else% gobble trailing spaces + \next##2\relax% + \fi\fi% + \else% 04-08-07 + \@pstrickserr{Number of dashes > \psk@maxdashes. Increasing + 'maxdashes' might work.}\@ehpa% 04-08-07 + \fi% 04-08-07 + }% + \expandafter\next#1 \relax} +\psset[pstricks]{dash=5pt 3pt 0pt 0pt}% black white black white %%------------------- end patch 15 HV 2004-05-15 ------------- -\newif\ifpsdashadjust -\def\psset@dashadjust#1{\@nameuse{psdashadjust#1}} -\psset@dashadjust{true} +\define@boolkey[psset]{pstricks}[ps]{dashadjust}[true]{} +\psset[pstricks]{dashadjust} \def\tx@DashLine{DashLine } -\def\psls@dashed{% -%%--------------------------------- hv 2006-04-29 beg --------------------- - \psk@linecap\space setlinecap -%%--------------------------------- hv 2006-04-29 end --------------------- +% +\def\psls@dashed{ + \psk@linecap\space setlinecap \ifpsdashadjust -% \psk@dash \pst@linetype\space \tx@DashLine - \psk@dash \@ifundefined{pst@linetype}{2}{\pst@linetype}\space \tx@DashLine + [ \psk@dash ] \pst@linetype\space \tx@DashLine \else [ \psk@dash ] 0 setdash stroke \fi} +%% End patch TN; Date (YY-MM-DD): 04-07-17; 2nd part % -\def\psset@dotsep#1{\pst@getlength{#1}\psk@dotsep} -\psset@dotsep{3pt} +\define@key[psset]{pstricks}{dotsep}[3pt]{\pst@getlength{#1}\psk@dotsep} +\psset[pstricks]{dotsep=3pt} \def\tx@DotLine{DotLine } -\def\psls@dotted{% +\def\psls@dotted{ \ifpsdashadjust \psk@dotsep \pst@linetype\space \tx@DotLine \else [ 0 \psk@dotsep CLW add ] 0 setdash 1 setlinecap stroke - \fi% + \fi } -\def\psset@linestyle#1{% +\define@key[psset]{pstricks}{linestyle}[solid]{% \@ifundefined{psls@#1}% {\@pstrickserr{Line style `#1' not defined}\@eha}% - {\edef\pslinestyle{#1}}% -} -\psset@linestyle{solid} -%%--------------------------------- hv 2006-04-29 beg --------------------- -\def\psset@linecap#1{% + {\def\pslinestyle{#1}}} +\psset[pstricks]{linestyle=solid} +\define@key[psset]{pstricks}{linecap}[0]{% \def\psk@linecap{0}% \ifnum#1>-1 \ifnum#1<3 \pst@getint{#1}\psk@linecap% - \fi\fi% -} + \fi\fi} \psset{linecap=0} -%--------------------------------- hv 2006-04-29 end --------------------- %------------------------- Transparency modes ---------------------------- \pst@def{setTransparency}< \psk@opacityalpha .setopacityalpha > \pst@def{setStrokeTransparency}< \psk@strokeopacityalpha .setopacityalpha > @@ -831,21 +969,25 @@ %--------------------------------- hv 2007-09-09 begin --------------------- % transparency needs a run through latex -> dvips -> ps2pdf14(!) % -\def\psset@fillcolor#1{\pst@getcolor{#1}\psfillcolor} -\psset@fillcolor{white} -\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 +\define@key[psset]{pstricks}{fillcolor}[white]{\pst@getcolor{#1}\psfillcolor} +\psset[pstricks]{fillcolor=white} +\define@key[psset]{pstricks}{strokeopacity}[1]{\pst@checknum{#1}\psk@strokeopacityalpha }% for lines +\psset[pstricks]{strokeopacity=1} +\define@key[psset]{pstricks}{opacity}[1]{\pst@checknum{#1}\psk@opacityalpha }% for filled areas +\psset[pstricks]{opacity=1} +\define@key[psset]{pstricks}{shapealpha}[0.6]{\pst@checknum{#1}\psk@shapealpha } +\psset[pstricks]{shapealpha=0.6} +\define@key[psset]{pstricks}{blendmode}[0]{\pst@getint{#1}\psk@blendmode }% must be one of % /Normal 0 % /Compatible 1 % /Screen 2 % /Multiply 3 % /HardLight 4 -\psset@blendmode{0} +\psset[pstricks]{blendmode=0} +\define@key[psset]{pstricks}{fsAngle}[137.50775]{\pst@getangle{#1}\pst@fsAngle } +\define@key[psset]{pstricks}{fsOrigin}[(0,0)]{% + \pst@@getcoor{#1}\edef\pst@fsOrigin{\pst@coor T }} +\psset[pstricks]{fsOrigin={0,0},fsAngle=137.50775} % \def\tx@LineFill{LineFill } \def\tx@PenroseFill{PenroseFill } @@ -853,23 +995,21 @@ \def\psfs@none{} \def\psfs@solid{\pst@fill{\pst@usecolor\psfillcolor \tx@setTransparency fill }} \def\psfs@eofill{\pst@fill{\pst@usecolor\psfillcolor \tx@setTransparency eofill}} -\def\psfs@shape{\pst@fill{ \pst@usecolor\psfillcolor \tx@setBlendmode 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} -\psset@hatchsep{4pt} -\def\psset@hatchcolor#1{\pst@getcolor{#1}\pshatchcolor} -\psset@hatchcolor{black} -\def\psset@hatchangle#1{\pst@getangle{#1}\psk@hatchangle} -\psset@hatchangle{45} -% ------------ hv 1.11 ------------ -\def\psset@hatchsepinc#1{\pst@getlength{#1}\psk@hatchsepinc} -\def\psset@hatchwidthinc#1{\pst@getlength{#1}\psk@hatchwidthinc} -\psset@hatchwidthinc{0pt} -\psset@hatchsepinc{0pt} +\def\psfs@shape{\pst@fill{\pst@usecolor\psfillcolor \tx@setBlendmode fill }} +\def\psfs@spiral{\pst@fill{\pst@fsOrigin \pst@usecolor\psfillcolor clip newpath + 0 .1 500 { dup dup sqrt 4 div 0 360 arc fill \pst@fsAngle rotate } for }} +% +\define@key[psset]{pstricks}{hatchwidth}[0.8pt]{\pst@getlength{#1}\psk@hatchwidth} +\psset[pstricks]{hatchwidth=.8pt} +\define@key[psset]{pstricks}{hatchsep}[4pt]{\pst@getlength{#1}\psk@hatchsep} +\psset[pstricks]{hatchsep=4pt} +\define@key[psset]{pstricks}{hatchcolor}[black]{\pst@getcolor{#1}\pshatchcolor} +\psset[pstricks]{hatchcolor=black} +\define@key[psset]{pstricks}{hatchangle}[45]{\pst@getangle{#1}\psk@hatchangle} +\psset[pstricks]{hatchangle=45} +\define@key[psset]{pstricks}{hatchsepinc}[0pt]{\pst@getlength{#1}\psk@hatchsepinc} +\define@key[psset]{pstricks}{hatchwidthinc}[0pt]{\pst@getlength{#1}\psk@hatchwidthinc} +\psset[pstricks]{hatchwidthinc=0pt,hatchsepinc=0pt} % \def\pst@linefill{% \psk@hatchangle rotate @@ -879,7 +1019,6 @@ \psk@hatchsepinc \psk@hatchwidthinc \tx@LineFill } -% ------------ hv 1.11 ------------ % \def\psfs@vlines{\pst@fill\pst@linefill} \@namedef{psfs@vlines*}{\psfs@solid \psfs@vlines} @@ -888,8 +1027,10 @@ \def\psfs@crosshatch{\psfs@vlines \psfs@hlines} \@namedef{psfs@crosshatch*}{\psfs@solid \psfs@vlines \psfs@hlines} % -\def\psset@psscale#1{\pst@checknum{#1}\psk@psscale} -\psset@psscale{1} +\define@key[psset]{pstricks}{psscale}[1]{% + \def\psk@@psscale{#1}% for use with \psscalebox + \pst@checknum{#1}\psk@psscale} +\psset[pstricks]{psscale=1} % \def\pst@penroseFill{% gsave % restore in PenroseFill @@ -900,7 +1041,7 @@ \def\psfs@penrose{\pst@fill\pst@penroseFill} \@namedef{psfs@penrose*}{\psfs@solid \psfs@penrose} % -\def\psset@fillstyle#1{% +\define@key[psset]{pstricks}{fillstyle}[none]{% \edef\pst@tempg{#1}\def\pst@temph{none}% \ifx\pst@tempg\pst@temph \let\psk@fillstyle\relax @@ -910,41 +1051,21 @@ {\edef\psk@fillstyle{\expandafter\noexpand\csname psfs@#1\endcsname}}% \fi% } -\def\psset@addfillstyle#1{% +\define@key[psset]{pstricks}{addfillstyle}[]{% \@ifundefined{psfs@#1}% {\@pstrickserr{Undefined fill style: `#1'}\@eha}% {\edef\psk@fillstyle{% \expandafter\noexpand\psk@fillstyle \expandafter\noexpand\csname psfs@#1\endcsname}% - }% -} -\psset@fillstyle{none} + }} +\psset[pstricks]{fillstyle=none} +% +%--------------------------- A R R O W S --------------------------- % -\def\psset@arrows#1{% - \begingroup - \pst@activearrows - \xdef\pst@tempg{#1}% - \endgroup - \expandafter\psset@@arrows\pst@tempg\@empty-\@empty\@nil - \if@pst\else - \@pstrickserr{Bad arrows specification: #1}\@ehpa - \fi% -} -\def\psset@@arrows#1-#2\@empty#3\@nil{% - \@psttrue - \def\ps@next##1,#1-##2,##3\@nil{\def\pst@tempg{##2}}% - \expandafter\ps@next\pst@arrowtable,#1-#1,\@nil - \@ifundefined{psas@\pst@tempg}% - {\@pstfalse\def\psk@arrowA{}}% - {\let\psk@arrowA\pst@tempg}% - \@ifundefined{psas@#2}% - {\@pstfalse\def\psk@arrowB{}}% - {\def\psk@arrowB{#2}}% -} \def\psk@arrowA{} \def\psk@arrowB{} -%\def\pst@arrowtable{,<->,<<->>,>-<,>>-<<,(-),[-]} -\def\pst@arrowtable{,<->,<<->>,>-<,>>-<<,(-),[-],)-(,]-[,|>-<|,<D-D>,D>-<D,<D<D-D>D>} % hv --1.16 +\def\pst@arrowtable{,-,<->,<<->>,>-<,>>-<<,(-),[-],)-(,]-[,|>-<|,<D-D>,D>-<D,<D<D-D>D>} % hv --1.16 +\edef\pst@arrowtable{\pst@arrowtable,|<*->|*,|<->|} \begingroup \catcode`\<=13 \catcode`\>=13 @@ -953,25 +1074,8 @@ \endgroup \def\tx@BeginArrow{BeginArrow } \def\tx@EndArrow{EndArrow } -% Redefininition of \psset@arrowscale to store value of X scale factor hv --1.12 -%\def\psset@arrowscale#1{\pst@getscale{#1}\psk@arrowscale} -\def\psset@arrowscale#1{% hv --1.12 - \pst@@arrowscale@i#1 \@nil% hv -- 1.12 - \pst@getscale{\pst@arrowscale}\psk@arrowscale}% hv --1.12 -\def\pst@@arrowscale@i#1 #2\@nil{\edef\pst@arrowscale{#1}}% hv --1.12 -\psset@arrowscale{1} % -\def\psset@arrowsize#1{% - \pst@expandafter\pst@getdimnum{#1} 0 {} {}\@nil - \edef\psk@arrowsize{\pst@number\pst@dimg \pst@tempg}% -} -\psset@arrowsize{1.5pt 2} -\def\psset@arrowlength#1{\pst@checknum{#1}\psk@arrowlength} -\psset@arrowlength{1.4} -\def\psset@arrowinset#1{\pst@checknum{#1}\psk@arrowinset}% -\psset@arrowinset{.4} \def\tx@Arrow{ \tx@setStrokeTransparency Arrow }% hv 2008-01-13 -% new definitions of the missing arrows ---- hv 1.1.2 \def\tx@ArrowD{ \tx@setStrokeTransparency ArrowD }% hv 2008-01-13 % \@namedef{psas@<|}{ @@ -1050,11 +1154,11 @@ 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{% +\define@key[psset]{pstricks}{tbarsize}[2pt 5]{% \pst@expandafter\pst@getdimnum{#1} 0 {} {}\@nil - \edef\psk@tbarsize{\pst@number\pst@dimg \pst@tempg}% -} -\psset@tbarsize{2pt 5} + \edef\psk@tbarsize{\pst@number\pst@dimg \pst@tempg}} +\psset[pstricks]{tbarsize=2pt 5} +% \def\tx@Tbar{Tbar } \@namedef{psas@|}{\psk@tbarsize \tx@Tbar} \@namedef{psas@|*}{0 CLW -2 div T \psk@tbarsize \tx@Tbar} @@ -1071,36 +1175,75 @@ newpath false \psk@arrowinset \psk@arrowlength \psk@arrowsize \tx@Arrow } -\edef\pst@arrowtable{\pst@arrowtable,|<*->|*,|<->|} -\def\psset@bracketlength#1{\pst@checknum{#1}\psk@bracketlength} -\psset@bracketlength{.15} +% +\define@key[psset]{pstricks}{bracketlength}[0.15]{\pst@checknum{#1}\psk@bracketlength} +\psset[pstricks]{bracketlength=.15} \def\tx@Bracket{Bracket } \@namedef{psas@]}{\psk@bracketlength \psk@tbarsize \tx@Bracket} -\def\psset@rbracketlength#1{\pst@checknum{#1}\psk@rbracketlength} -\psset@rbracketlength{.15} +\define@key[psset]{pstricks}{rbracketlength}[0.15]{\pst@checknum{#1}\psk@rbracketlength} +\psset[pstricks]{rbracketlength=.15} \def\tx@RoundBracket{RoundBracket } \@namedef{psas@)}{\psk@rbracketlength \psk@tbarsize \tx@RoundBracket} +% \def\psas@c{1 \psas@@c} \def\psas@cc{0 CLW 2 div T 1 \psas@@c} \def\psas@C{2 \psas@@c} \def\psas@@c{% setlinecap 0 0 moveto -%%-------------------- v.1.04 begin HV 2004-05-18 ---------------- -% 0 CLW 2 div L 0 0.1 L % changed value from 0.5 to 0.1 -%%-------------------- v. 1.04 end HV 2004-05-18 ---------------- stroke - 0 0 moveto -} + 0 0 moveto } +% \def\psas@{} -\psset@arrows{-} +% +\define@key[psset]{pstricks}{arrowLW}{\pst@getlength{#1}\psk@arrowLW} +\psset[pstricks]{arrowLW=0} +% arrowLW as LineWidth for the circled line ends +% +\def\psas@o{\psk@arrowLW\space dup 0 eq { pop }{ SLW } ifelse + {\pst@usecolor\psfillcolor true} false \psk@dotsize \tx@EndDot } +\def\psas@oo{\psk@arrowLW\space dup 0 eq { pop }{ SLW } ifelse + {\pst@usecolor\psfillcolor true} true \psk@dotsize \tx@EndDot } +\@namedef{psas@*}{\psk@arrowLW\space dup 0 eq { pop }{ SLW } ifelse + {false} false \psk@dotsize \tx@EndDot } +\@namedef{psas@**}{\psk@arrowLW\space dup 0 eq { pop }{ SLW } ifelse + {false} true \psk@dotsize \tx@EndDot } +% +\define@key[psset]{pstricks}{arrows}[-]{% + \begingroup + \pst@activearrows + \xdef\pst@tempg{#1}% + \endgroup + \expandafter\psset@@arrows\pst@tempg\@empty-\@empty\@nil + \if@pst\else\@pstrickserr{Bad arrows specification: #1}\@ehpa\fi} +\def\psset@@arrows#1-#2\@empty#3\@nil{% + \@psttrue + \def\ps@next##1,#1-##2,##3\@nil{\def\pst@tempg{##2}}% + \expandafter\ps@next\pst@arrowtable,#1-#1,\@nil + \@ifundefined{psas@\pst@tempg}{\@pstfalse\def\psk@arrowA{}}{\let\psk@arrowA\pst@tempg}% + \@ifundefined{psas@#2}{\@pstfalse\def\psk@arrowB{}}{\def\psk@arrowB{#2}}} +\psset[pstricks]{arrows=-} +% +\define@key[psset]{pstricks}{arrowscale}[1]{% hv --1.12 + \pst@@arrowscale@i#1 \@nil% hv -- 1.12 + \pst@getscale{\pst@arrowscale}\psk@arrowscale}% hv --1.12 +\def\pst@@arrowscale@i#1 #2\@nil{\edef\pst@arrowscale{#1}}% hv --1.12 +\psset[pstricks]{arrowscale=1} +% +\define@key[psset]{pstricks}{arrowsize}[1.5pt 2]{% + \pst@expandafter\pst@getdimnum{#1} 0 {} {}\@nil + \edef\psk@arrowsize{\pst@number\pst@dimg \pst@tempg}% +} +\psset[pstricks]{arrowsize=1.5pt 2} +\define@key[psset]{pstricks}{arrowlength}[1.4]{\pst@checknum{#1}\psk@arrowlength} +\psset[pstricks]{arrowlength=1.4} +\define@key[psset]{pstricks}{arrowinset}[0.4]{\pst@checknum{#1}\psk@arrowinset}% +\psset[pstricks]{arrowinset=0.4} +% \def\tx@SD{ \tx@setTransparency 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} -\@namedef{psas@**}{{false} true \psk@dotsize \tx@EndDot} -\@namedef{psas@*}{{false} false \psk@dotsize \tx@EndDot} +% \def\pst@par{} \def\addto@par#1{% \ifx\pst@par\@empty @@ -1119,11 +1262,16 @@ \fi% } \def\use@par{% + \ifx\pst@par\@empty\else% + \expandafter\@psset\pst@par,\@nil% + \def\pst@par{}% + \fi} +\def\use@keep@par{% same as \use@par, but keeps the values \ifx\pst@par\@empty\else \expandafter\@psset\pst@par,\@nil - \def\pst@par{}% - \fi% -} +% \def\pst@par{}% + \fi} +% \def\pst@object#1{% \def\pst@par{}% \pst@ifstar{% @@ -1149,14 +1297,15 @@ % ------------------------- hv 1.10 end ------------------------ % \def\begin@ClosedObj{% - \leavevmode - \pst@killglue - \begingroup - \use@par - \solid@star - \ifpsdoubleline \pst@setdoublesep \fi - \init@pscode% -} + \leavevmode% + \pst@killglue% + \begingroup% + \use@par% + \solid@star% + \ifpsdoubleline\pst@setdoublesep\fi% + \pst@addarrowdef% DG addition + \init@pscode} +% \def\end@ClosedObj{% \ifpsshadow \pst@closedshadow \fi \ifdim\psk@border\p@>\z@ \pst@addborder \fi @@ -1366,46 +1515,48 @@ grestore }} % -\def\pscustom{\def\pst@par{}\pst@object{pscustom}} +\newif\ifPst@custom\Pst@customfalse +% +\def\pscustom{\pst@object{pscustom}} \long\def\pscustom@i#1{% - \begin@SpecialObj - \solid@star - \let\pst@ifcustom\iftrue - \let\begin@ClosedObj\begin@CustomObj - \let\end@ClosedObj\endgroup + \begin@SpecialObj% + \solid@star% + \let\pst@ifcustom\iftrue% + \Pst@customtrue% + \let\begin@ClosedObj\begin@CustomObj% + \let\end@ClosedObj\endgroup% \def\begin@OpenObj{\begin@CustomObj\pst@addarrowdef}% - \let\end@OpenObj\endgroup - \let\begin@AltOpenObj\begin@CustomObj + \let\end@OpenObj\endgroup% + \let\begin@AltOpenObj\begin@CustomObj% \def\begin@SpecialObj{% - \begingroup + \begingroup% \pst@misplaced{special graphics object}% - \def\addto@pscode####1{} + \def\addto@pscode####1{}% \let\end@SpecialObj\endgroup}% - \def\@multips(##1)(##2)##3##4{\pst@misplaced\multips}% - \def\psclip##1{\pst@misplaced\psclip}% - \def\pst@repeatarrowsflag{\z@}% - \let\pst@setrepeatarrowsflag\relax - \showpointsfalse - \let\showpointstrue\relax - \def\pst@linetype{\pslinetype}% - \let\psset@liftpen\psset@@liftpen - \psset@liftpen{\z@}% - \def\pst@cp{/currentpoint load stopped pop }% - \def\pst@oplineto{/lineto load stopped { moveto } if }% - \def\pst@optcp##1##2{% - \ifnum##1=\z@\def##2{/currentpoint load stopped { 0 0 } if }\fi}% - \let\caddto@pscode\addto@pscode - \def\cuse@par##1{{\use@par##1}}% - \the\pst@customdefs - \setbox\pst@hbox=\hbox{#1}% - \psk@fillstyle - \pst@stroke - \end@SpecialObj} + \def\@multips(##1)(##2)##3##4{\pst@misplaced\multips}% + \def\psclip##1{\pst@misplaced\psclip}% + \def\pst@repeatarrowsflag{\z@}% + \let\pst@setrepeatarrowsflag\relax% + \showpointsfalse% + \def\pst@linetype{\pslinetype}% + \def\psk@liftpen{\z@}% +% \psset{liftpen=0}% + \def\pst@cp{/currentpoint load stopped pop }% + \def\pst@oplineto{/lineto load stopped { moveto } if }% + \def\pst@optcp##1##2{\ifnum##1=\z@\def##2{/currentpoint load stopped { 0 0 } if }\fi}% + \let\caddto@pscode\addto@pscode% + \def\cuse@par##1{{\use@par##1}}% + \the\pst@customdefs% + \setbox\pst@hbox=\hbox{#1}% + \psk@fillstyle% + \pst@stroke% + \end@SpecialObj% +} % \def\begin@CustomObj{% - \begingroup - \use@par - \addto@pscode{% + \begingroup% + \use@par% + \addto@pscode{ \pst@number\pslinewidth SLW \pst@usecolor\pslinecolor }% @@ -1413,45 +1564,36 @@ \def\pst@oplineto{moveto } \def\pst@cp{} \def\pst@optcp#1#2{} -\def\psset@liftpen#1{} -\def\psset@@liftpen#1{% - \ifcase#1\relax +\define@key[psset]{pstricks}{liftpen}[0]{% + \ifPst@custom% + \ifcase#1\relax% \def\psk@liftpen{\z@}% \def\pst@cp{/currentpoint load stopped pop }% \def\pst@oplineto{/lineto load stopped { moveto } if }% - \or + \or% \def\psk@liftpen{1}% \def\pst@cp{}% \def\pst@oplineto{/lineto load stopped { moveto } if }% - \or + \or% \def\psk@liftpen{2}% \def\pst@cp{}% \def\pst@oplineto{moveto }% - \fi% + \fi\fi% } -\psset@liftpen{0} +\psset[pstricks]{liftpen=0} \def\psk@liftpen{-1} % -\def\psset@linetype#1{% +\define@key[psset]{pstricks}{linetype}[2]{% \pst@getint{#1}\pslinetype -%----------------- hv begin 2006-04-20 ------------- patch 1.14b \ifnum\pst@cntg<-3 -% \ifnum\pst@dimg<-3 -%----------------- hv end 2004-05-07 ------------- patch 1.14b \@pstrickserr{linetype must be greater than -3}\@ehpa -%----------------- hv begin 2004-05-07 ------------- patch 15 -% \def\pslinetype{0}% \def\pslinetype{2}% - \fi% -} -%\psset@linetype{0} -\psset@linetype{2}% otherwise there is a problem when using e.g. + \fi} +\psset[pstricks]{linetype=2}% otherwise there is a problem when using e.g. % \psaxes[axesstyle=frame,linestyle=dashed]{->}(3,-2) -%----------------- hv end 2004-05-07 ------------- patch 15 % \def\caddto@pscode#1{% - \@pstrickserr{Command can only be used in \string\pscustom}\@ehpa% -} + \@pstrickserr{Command can only be used in \string\pscustom}\@ehpa} \let\cuse@par\caddto@pscode % \def\tx@MSave{% @@ -1477,10 +1619,7 @@ \def\closepath{\addto@pscode{closepath}}% \def\gsave{\begingroup\addto@pscode{gsave}}% \def\grestore{\endgroup\addto@pscode{grestore}}% -% DG/SR modification begin - May 12, 1997 - Patch 2 -% \def\translate(#1){\pst@@getcoor{#1}\addto@pscode{\pst@coor moveto}}% \def\translate(#1){\pst@@getcoor{#1}\addto@pscode{\pst@coor translate}}% -% DG/SR modification end \def\rotate#1{\pst@@getangle{#1}\addto@pscode{\pst@angle rotate}}% \def\scale#1{\pst@getscale{#1}\pst@tempg\addto@pscode{\pst@tempg}}% \def\msave{\addto@pscode{\tx@MSave}}% @@ -1490,10 +1629,7 @@ \def\fill{\def\pst@par{}\pst@object{fill}}% \def\openshadow{\def\pst@par{}\pst@object{openshadow}}% \def\closedshadow{\def\pst@par{}\pst@object{closedshadow}}% -% DG/SR modification begin - Jan. 7, 1998 - Patch 8 -% \def\movepath(#1){\pst@@getcoor{#1}\addto@pscode{\pst@coor tx@Shadow}}% \def\movepath(#1){\pst@@getcoor{#1}\addto@pscode{\pst@coor \tx@Shadow}}% -% DG/SR modification end \def\lineto{\pst@onecoor{lineto}}% \def\rlineto{\pst@onecoor{rlineto}}% \def\curveto{\pst@threecoor{curveto}}% @@ -1503,13 +1639,9 @@ \def\rcoor{\pst@getcoors{}{}}% \def\dim#1{\pssetlength\pst@dimg{#1}\addto@pscode{\pst@number\pst@dimg}}% \def\setcolor#1{% -% ----------------hv begin 2004-05-07-------------------- patch 15 -% \@ifundefined{color@#1}{}{\addto@pscode{\use@color{#1}}}}% -% \@ifundefined{color@#1}{}{\addto@pscode{\pst@usecolor{#1}}}}% \@ifundefined{\string\color@#1}{}{\addto@pscode{\pst@usecolor{#1}}}}% hv 1.14 2005-12-17 -% ----------------hv end 2004-05-07-------------------- - \def\arrows#1{{\psset@arrows{#1}\pst@addarrowdef}}% - \let\file\pst@rawfile + \def\arrows#1{{\psset[pstricks]{arrows=#1}\pst@addarrowdef}}% + \let\file\pst@rawfile% } % END \pst@customdefs % \def\closedshadow@i{\cuse@par\pst@closedshadow} @@ -1559,8 +1691,9 @@ \def\tx@Arcto{Arcto } \def\tx@CheckClosed{CheckClosed } \def\tx@Polygon{Polygon } -\def\psset@gangle#1{\pst@getangle{#1}\psk@gangle} -\psset@gangle{0} +\define@key[psset]{pstricks}{gangle}[0]{\pst@getangle{#1}\psk@gangle} +\define@boolkey[psset]{pstricks}[Pst@]{trueAngle}[true]{} +\psset[pstricks]{trueAngle=false,gangle=0} % \def\tx@Diamond{Diamond } \def\psdiamond{\def\pst@par{}\pst@object{psdiamond}} @@ -1613,16 +1746,19 @@ \def\tx@OpenCurve{OpenCurve } \def\tx@AltCurve{AltCurve } \def\tx@ClosedCurve{ClosedCurve } -\def\psset@curvature#1{% -\edef\pst@tempg{#1 }% -\expandafter\psset@@curvature\pst@tempg * * * \@nil} +% +\define@key[psset]{pstricks}{curvature}[1 0.1 0]{% + \edef\pst@tempg{#1 }% + \expandafter\psset@@curvature\pst@tempg * * * \@nil} \def\psset@@curvature#1 #2 #3 #4\@nil{% -\pst@checknum{#1}\pst@tempg -\pst@checknum{#2}\pst@temph -\pst@checknum{#3}\pst@tempi -\edef\psk@curvature{\pst@tempg \pst@temph \pst@tempi}} -\psset@curvature{1 .1 0} -\def\pscurve{\def\pst@par{}\pst@object{pscurve}} + \pst@checknum{#1}\pst@tempg + \pst@checknum{#2}\pst@temph + \pst@checknum{#3}\pst@tempi + \edef\psk@curvature{\pst@tempg \pst@temph \pst@tempi}} +% +\psset[pstricks]{curvature=1 .1 0} +% +\def\pscurve{\pst@object{pscurve}} \def\pscurve@i{% \pst@getarrows{% \begin@OpenObj @@ -1631,74 +1767,68 @@ } \def\pscurve@ii{% \addto@pscode{ - \pst@cp % current point + \pst@cp % current point \psk@curvature\space /c ED /b ED /a ED \ifshowpoints true \else false \fi - \tx@OpenCurve + \ifx\pslinestyle\psls@@symbol \psls@symbol OpenSymbolCurve \else \tx@OpenCurve \fi }% + \ifx\pslinestyle\psls@@symbol\def\pslinestyle{none}\fi% \end@OpenObj% } -\def\psecurve{\def\pst@par{}\pst@object{psecurve}} -\def\psecurve@i{% -\pst@getarrows{% -\begin@OpenObj -\pst@getcoors[\psecurve@ii}} +\def\psecurve{\pst@object{psecurve}} +\def\psecurve@i{\pst@getarrows{\begin@OpenObj\pst@getcoors[\psecurve@ii}} \def\psecurve@ii{% -\addto@pscode{% -\psk@curvature\space /c ED /b ED /a ED -\ifshowpoints true \else false \fi -\tx@AltCurve}% -\end@OpenObj} -\def\psccurve{\def\pst@par{}\pst@object{psccurve}} -\def\psccurve@i{% -\begin@ClosedObj -\pst@getcoors[\psccurve@ii} + \addto@pscode{ + \psk@curvature\space /c ED /b ED /a ED + \ifshowpoints true \else false \fi + \ifx\pslinestyle\psls@@symbol \psls@symbol AltOpenSymbolCurve \else \tx@AltCurve \fi + }% + \ifx\pslinestyle\psls@@symbol\def\pslinestyle{none}\fi% + \end@OpenObj} +% +\def\psccurve{\pst@object{psccurve}} +\def\psccurve@i{\begin@ClosedObj\pst@getcoors[\psccurve@ii} \def\psccurve@ii{% -\addto@pscode{% -\psk@curvature\space /c ED /b ED /a ED -\ifshowpoints true \else false \fi -\tx@ClosedCurve}% -\def\pst@linetype{1}% -\end@ClosedObj} -\def\psset@dotsize#1{% + \addto@pscode{% + \psk@curvature\space /c ED /b ED /a ED + \ifshowpoints true \else false \fi + \ifx\pslinestyle\psls@@symbol \psls@symbol ClosedSymbolCurve \else \tx@ClosedCurve \fi + }% + \def\pst@linetype{1}% + \ifx\pslinestyle\psls@@symbol\def\pslinestyle{none}\fi% + \end@ClosedObj} +% +\define@key[psset]{pstricks}{dotsize}[2pt 2]{% \pst@expandafter\pst@getdimnum{#1} 0 {} {}\@nil% \edef\psk@@dotsize{\pst@number\pst@dimg}% \let\psk@@@dotsize\pst@tempg% - \edef\psk@dotsize{% - /DS \psk@@dotsize \psk@@@dotsize CLW mul add 2 div def }} -\psset@dotsize{2pt 2} -\def\psset@dotscale#1{% -\pst@getscale{#1}\psk@dotscale -\ifx\psk@dotscale\@empty -\def\psk@xdotscale{1 }% -\def\psk@ydotscale{1 }% -\else -\let\psk@xdotscale\pst@tempg -\let\psk@ydotscale\pst@temph -\fi} -% DG/SR modification begin - Oct. 17, 1997 - Patch 5 -%\psset@dotscale{1} -% DG/SR modification end + \edef\psk@dotsize{ /DS \psk@@dotsize \psk@@@dotsize CLW mul add 2 div def }} +\psset[pstricks]{dotsize=2pt 2} +% +\define@key[psset]{pstricks}{dotscale}[1]{% + \pst@getscale{#1}\psk@dotscale + \ifx\psk@dotscale\@empty + \def\psk@xdotscale{1 }% + \def\psk@ydotscale{1 }% + \else + \let\psk@xdotscale\pst@tempg + \let\psk@ydotscale\pst@temph + \fi} +% \def\pst@Getangle#1#2{% -\pst@getangle{#1}\pst@tempg -\def\pst@temph{0. }% -\ifx\pst@tempg\pst@temph -\def#2{}% -\else -\edef#2{\pst@tempg\space rotate }% -\fi} -\def\psset@dotangle#1{% -\pst@getangle{#1}\psk@@dotangle -\ifdim\psk@@dotangle\p@=\z@ -\let\psk@dotangle\@empty -\else -% DG/SR modification begin - Aug. 8, 1997 - Patch 4 -%\edef\psk@dotangle{\psk@@dotangle rotate } -\edef\psk@dotangle{\psk@@dotangle rotate }% -% DG/SR modification end -\fi} + \pst@getangle{#1}\pst@tempg + \def\pst@temph{0. }% + \ifx\pst@tempg\pst@temph\def#2{}\else\edef#2{\pst@tempg\space rotate }\fi} +% +\define@key[psset]{pstricks}{dotangle}[0]{% + \pst@getangle{#1}\psk@@dotangle + \ifdim\psk@@dotangle\p@=\z@ + \let\psk@dotangle\@empty + \else + \edef\psk@dotangle{\psk@@dotangle rotate }% + \fi} +\psset[pstricks]{dotangle=0} % -\psset@dotangle{0} \def\pst@getdotsize{% \pst@dimg=\psk@@@dotsize\pslinewidth \advance\pst@dimg\psk@@dotsize\p@ @@ -1706,11 +1836,10 @@ \pst@dimg=\psk@xdotscale\pst@dimg \divide\pst@dimh 2 \divide\pst@dimg 2\relax} -% DG/SR modification begin - Oct. 17, 1997 - Patch 5 -\psset@dotscale{1} -% DG/SR modification end % -\def\psdot{\def\pst@par{}\pst@object{psdot}} +\psset[pstricks]{dotscale=1} +% +\def\psdot{\pst@object{psdot}} \def\psdot@i{\@ifnextchar({\psdot@ii}{\psdot@ii(\z@,\z@)}} \def\psdot@ii(#1){% \begin@SpecialObj% @@ -1720,11 +1849,11 @@ \pst@@getcoor{#1}% \addto@pscode{ \psk@dotsize - \@nameuse{psds@\psk@dotstyle}% + \@nameuse{psds@\psk@dotstyle} \pst@coor Dot}% \end@SpecialObj} % -\def\psdots{\def\pst@par{}\pst@object{psdots}} +\def\psdots{\pst@object{psdots}} \def\psdots@i{% \begin@SpecialObj% \pst@getcoors[\psdots@ii} @@ -1737,7 +1866,7 @@ newpath n { transform floor .5 add exch floor .5 add exch itransform Dot } repeat } % -% DG: dead code (to suppress until \psset@dotstyle) ? - Aug. 4, 1997 +% DG: dead code (to suppress until \psset[pstricks]{dotstyle) ? - Aug. 4, 1997 \def\tx@SQ{SQ } \def\tx@ST{ST } \def\tx@SP{SP } @@ -1773,11 +1902,11 @@ \pst@gdot{0 DS moveto 0 DS neg L stroke}} % DG: end dead code? % -\def\psset@dotstyle#1{% -\@ifundefined{psds@#1}% -{\@pstrickserr{Dot style `#1' not defined}\@eha}% -{\edef\psk@dotstyle{#1}}} -\psset@dotstyle{*} +\define@key[psset]{pstricks}{dotstyle}[*]{% + \@ifundefined{psds@#1}% + {\@pstrickserr{Dot style `#1' not defined}\@eha}% + {\edef\psk@dotstyle{#1}}} +\psset[pstricks]{dotstyle=*} % \def\tx@FontDot{FontDot } \def\newpsfontdot#1[#2]#3#4{% @@ -1889,12 +2018,12 @@ \newpsfontdotH{Diamond}[1.0 0.0 0.0 1.0 0.0 0.0]{PSTricksDotFont}{(d)}{(l)} \newpsfontdotH{BoldDiamond}[1.0 0.0 0.0 1.0 0.0 0.0]{PSTricksDotFont}{(D)}{(l)} \newpsfontdot{SolidDiamond}[1.0 0.0 0.0 1.0 0.0 0.0]{PSTricksDotFont}{(l)} -%% +% \newdimen\pslinearc -\def\psset@linearc#1{\pssetlength\pslinearc{#1}} -\psset@linearc{0pt} +\define@key[psset]{pstricks}{linearc}[0pt]{\pssetlength\pslinearc{#1}} +\psset[pstricks]{linearc=0pt} % -\def\psline{\def\pst@par{}\pst@object{psline}} +\def\psline{\pst@object{psline}} \def\psline@i{% \pst@getarrows{% \begin@OpenObj @@ -1902,11 +2031,14 @@ }% } \def\psline@ii{% - \addto@pscode{ - \pst@cp % current point - \psline@iii % arc and lineto type - \tx@Line % .pro function - }% + \ifx\pslinestyle\psls@@symbol\addto@pscode{ \psls@symbol SymbolLine }% + \else + \addto@pscode{ + \pst@cp % current point + \psline@iii % arc and lineto type + \tx@Line % .pro function + }% + \fi% \end@OpenObj% } \def\psline@iii{% @@ -1920,6 +2052,55 @@ \tx@setlinejoin % hv 2007-10-13 } % +\def\pst@isnum#1{\pst@isnum@i\zap@space#1 \@empty\@nil}% +\def\pst@isnum@i#1\@nil{% + \if!\ifnum9<1#1!\else_\fi + \expandafter\@firstoftwo + \else + \expandafter\@secondoftwo + \fi +} +\def\psset@@symbol#1#2#3#4\@nil{% + \ifx\relax#4\relax\def\psk@symbol{(#1)}% + \else + \pst@isnum{#1#2#3}{% + \pst@cnta='#1#2#3\relax + \ifnum\pst@cnta>'377\relax + \@pstrickserr{Number too large!}\@ehpb + \else + \def\psk@symbol{(\@backslashchar#1#2#3)}% + \fi% + }{\@pstrickserr{Not a number!}\@ehpb} + \fi} +\define@key[psset]{pstricks}{symbol}[a]{\expandafter\psset@@symbol#1!!\@nil} +\psset[pstricks]{symbol=a} +% +\newdimen\pst@symbolStep +\define@key[psset]{pstricks}{symbolStep}[20pt]{\pssetlength\pst@symbolStep{#1}} +\psset[pstricks]{symbolStep=20pt} +\newdimen\pst@symbolWidth +\define@key[psset]{pstricks}{symbolWidth}[10pt]{\pssetlength\pst@symbolWidth{#1}} +\psset[pstricks]{symbolWidth=10pt} +\define@key[psset]{pstricks}{symbolFont}[Dingbats]{\def\psk@symbolFont{/#1 }} +\psset[pstricks]{symbolFont=Dingbats} +\define@boolkey[psset]{pstricks}[Pst@]{rotateSymbol}[true]{} +\psset[pstricks]{rotateSymbol=false} +\define@key[psset]{pstricks}{startAngle}[0]{\pst@getangle{#1}\psk@startAngle} +\psset[pstricks]{startAngle=0} +% +\def\psls@symbol{ + /Symbol \psk@symbol def + /SymbolWidth \pst@number\pst@symbolWidth def + /SymStep \pst@number\pst@symbolStep def + \psk@symbolFont findfont %0. [1.0 0.0 0.0 1.0 0.0 0.0] + \pst@number\pst@symbolWidth scalefont %dup + setfont + /rotateSymbol \ifPst@rotateSymbol true \else false \fi def + /startAngle \psk@startAngle\space def + /CorrAngle \ifx\psk@rot\@empty 0 \else \psk@rot \fi def +} +\def\psls@@symbol{symbol} +% \def\psPline{\def\pst@par{}\pst@object{psPline}}% perpendicular to another line B-C \def\psPline@i{% \pst@getarrows{% @@ -1954,33 +2135,36 @@ \@nameuse{psls@\pslinestyle}% }% \end@SpecialObj} -\def\pspolygon{\def\pst@par{}\pst@object{pspolygon}} +% +\def\pspolygon{\pst@object{pspolygon}} \def\pspolygon@i{% \begin@ClosedObj% \def\pst@cp{}% \pst@getcoors[\pspolygon@ii% } \def\pspolygon@ii{% - \addto@pscode{\psline@iii \tx@Polygon}% + \ifx\pslinestyle\psls@@symbol\addto@pscode{ \psls@symbol SymbolPolygon }% + \else \addto@pscode{\psline@iii \tx@Polygon}% + \fi% \def\pst@linetype{1}% \end@ClosedObj} % -\def\psset@framearc#1{\pst@checknum{#1}\psk@framearc} -\psset@framearc{0} +\define@key[psset]{pstricks}{framearc}[0]{\pst@checknum{#1}\psk@framearc} +\psset[pstricks]{framearc=0} % -\def\psset@cornersize#1{\pst@expandafter\psset@@cornersize{#1}\@nil} +\define@key[psset]{pstricks}{cornersize}[relative]{\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} -\psset@cornersize{relative} +\psset[pstricks]{cornersize=relative} % \def\tx@Rect{Rect } \def\tx@OvalFrame{OvalFrame } \def\tx@Frame{Frame } % -\def\psset@dimen#1{\pst@expandafter\psset@@dimen{#1}\@nil} +\define@key[psset]{pstricks}{dimen}[outer]{\pst@expandafter\psset@@dimen{#1}\@nil} \def\psset@@dimen#1#2\@nil{% \if #1o\relax% outer \def\psk@dimen{.5 }% @@ -1991,9 +2175,9 @@ \if #1i\relax% inner \def\psk@dimen{-.5 }% \fi\fi\fi} -\psset@dimen{outer} +\psset[pstricks]{dimen=outer} % -\def\psframe{\def\pst@par{}\pst@object{psframe}} +\def\psframe{\pst@object{psframe}} \def\psframe@i(#1){% \@ifnextchar({\psframe@ii(#1)}{\psframe@ii(0,0)(#1)}} \def\psframe@ii(#1)(#2){% @@ -2006,7 +2190,7 @@ \end@ClosedObj% } % -\def\psTextFrame{\def\pst@par{}\pst@object{psTextFrame}} +\def\psTextFrame{\pst@object{psTextFrame}} \def\psTextFrame@i(#1)(#2)#3{% \addbefore@par{ref=c}% to prevent an empty value \leavevmode% @@ -2029,14 +2213,14 @@ \endgroup \ignorespaces} % -\def\tx@BezierNArray{BezierNArray } -\def\tx@OpenBezier{OpenBezier } -\def\tx@ClosedBezier{ClosedBezier } -\def\tx@BezierShowPoints{BezierShowPoints } -\def\tx@BezierCurve{BezierCurve } +\def\tx@BezierNArray{ BezierNArray } +\def\tx@OpenBezier{ OpenBezier } +\def\tx@ClosedBezier{ ClosedBezier } +\def\tx@BezierShowPoints{ BezierShowPoints } +\def\tx@BezierCurve{ BezierCurve } \def\pst@BezierType{2 } % the default % -\def\psbezier{\def\pst@par{}\pst@object{psbezier}} +\def\psbezier{\pst@object{psbezier}} \def\psbezier@i{% \pst@getarrows{% \begin@OpenObj @@ -2044,30 +2228,40 @@ }% } \def\psbezier@ii{% - \addto@pscode{% -% DG/SR modification begin - Apr. 28, 1997 - Patch 1 -% \psbezier doesn't work inside \pscustom -\pst@cp -% DG/SR modification end + \addto@pscode{ + \pst@cp \ifshowpoints true \else false \fi - \tx@OpenBezier - \ifshowpoints \tx@BezierShowPoints \fi}% + \ifx\pslinestyle\psls@@symbol \psls@symbol OpenSymbolBezier + \else + \tx@OpenBezier + \ifshowpoints \tx@BezierShowPoints \fi + \fi + }% + \def\pst@linetype{1}% + \ifx\pslinestyle\psls@@symbol\def\pslinestyle{none}\fi% \end@OpenObj} +% \def\pscbezier{\def\pst@par{}\pst@object{pscbezier}} \def\pscbezier@i{% \begin@ClosedObj \pst@getcoors[\pscbezier@ii} +% \def\pscbezier@ii{% \addto@pscode{% \ifshowpoints true \else false \fi - \tx@ClosedBezier - \ifshowpoints \tx@BezierShowPoints \fi}% - \chardef\pst@linetype=1 + \ifx\pslinestyle\psls@@symbol \psls@symbol ClosedSymbolBezier + \else + \tx@ClosedBezier + \ifshowpoints \tx@BezierShowPoints \fi + \fi}% +% \chardef\pst@linetype=1 + \def\pst@linetype{1}% + \ifx\pslinestyle\psls@@symbol\def\pslinestyle{none}\fi% \end@ClosedObj} - +% \iffalse -\def\psset@epsilon#1{\pst@checknum{#1}\psk@epsilon} -\psset@epsilon{0.005} % 200 steps for one curve +\define@key[psset]{pstricks}{epsilon}[0.005]{\pst@checknum{#1}\psk@epsilon} +\psset[pstricks]{epsilon=0.005} % 200 steps for one curve % \def\psBezier#1{% % allowed order is 1 ... 9 \ifnum#1>0 \ifnum#1<10 \def\pst@BezierType{#1 }\fi\fi% @@ -2087,11 +2281,12 @@ \end@OpenObj} \fi % -\def\psset@pType#1{\pst@cntg=#1\relax\edef\psk@pType{\the\pst@cntg}} -\psset@pType{0} +\define@key[psset]{pstricks}{pType}[0]{\pst@cntg=#1\relax\edef\psk@pType{\the\pst@cntg}} +\psset[pstricks]{pType=0} \def\tx@Parab{Parab }% given by 1 point and the min/max \def\tx@Parabo{Parab1 }% given by 2 points for y-a=(x-b)^2 -\def\psparabola{\def\pst@par{}\pst@object{psparabola}}% 2009-05-19 (hv) +% +\def\psparabola{\pst@object{psparabola}}% 2009-05-19 (hv) \def\psparabola@i{\pst@getarrows\psparabola@ii} \def\psparabola@ii#1(#2)#3(#4){% #2 P #4 SP \begin@OpenObj @@ -2106,36 +2301,36 @@ \let\parabola\psparabola% compatibility (hv) % % -\def\psset@gridwidth#1{\pst@getlength{#1}\psk@gridwidth} -\psset@gridwidth{.8pt} -\def\psset@griddots#1{% +\define@key[psset]{pstricks}{gridwidth}[0.8pt]{\pst@getlength{#1}\psk@gridwidth} +\psset[pstricks]{gridwidth=.8pt} +\define@key[psset]{pstricks}{griddots}[0]{% \pst@cntg=#1\relax \edef\psk@griddots{\the\pst@cntg}} -\psset@griddots{0} -\def\psset@gridcolor#1{\pst@getcolor{#1}\psgridcolor} -\psset@gridcolor{black} -\def\psset@subgridwidth#1{\pst@getlength{#1}\psk@subgridwidth} -\psset@subgridwidth{.4pt} -\def\psset@subgridcolor#1{\pst@getcolor{#1}\pssubgridcolor} -\psset@subgridcolor{gray} -\def\psset@subgriddots#1{% +\psset[pstricks]{griddots=0} +\define@key[psset]{pstricks}{gridcolor}[black]{\pst@getcolor{#1}\psgridcolor} +\psset[pstricks]{gridcolor=black} +\define@key[psset]{pstricks}{subgridwidth}[0.4pt]{\pst@getlength{#1}\psk@subgridwidth} +\psset[pstricks]{subgridwidth=0.4pt} +\define@key[psset]{pstricks}{subgridcolor}[gray]{\pst@getcolor{#1}\pssubgridcolor} +\psset[pstricks]{subgridcolor=gray} +\define@key[psset]{pstricks}{subgriddots}[0]{% \pst@cntg=#1\relax\edef\psk@subgriddots{\the\pst@cntg}} -\psset@subgriddots{0} -\def\psset@subgriddiv#1{% +\psset[pstricks]{subgriddots=0} +\define@key[psset]{pstricks}{subgriddiv}[5]{% \pst@cntg=#1\relax\edef\psk@subgriddiv{\the\pst@cntg}} -\psset@subgriddiv{5} +\psset[pstricks]{subgriddiv=5} % -\def\psset@gridfont#1{\def\psk@gridfont{/#1 }}% hv 2007-11-13 -\psset@gridfont{Helvetica} +\define@key[psset]{pstricks}{gridfont}[Helvetica]{\def\psk@gridfont{/#1 }}% hv 2007-11-13 +\psset[pstricks]{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} +\define@key[psset]{pstricks}{gridlabels}[10pt]{\pst@getlength{#1}\psk@gridlabels} +\psset[pstricks]{gridlabels=10pt} +\define@key[psset]{pstricks}{gridlabelcolor}[black]{\pst@getcolor{#1}\psgridlabelcolor} +\psset[pstricks]{gridlabelcolor=black} \def\tx@Grid{Grid } -\def\psgrid{\def\pst@par{}\pst@object{psgrid}} +\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)}} @@ -2189,21 +2384,19 @@ % \def\pst@makeverbbox#1{% \def\pst@afterbox{#1}% - \edef\pst@mathflag{% - \ifpsmathbox\ifmmode\ifinner 1\else 2\fi\else \z@\fi\else \z@\fi% - }% - \afterassignment\pst@beginbox + \edef\pst@mathflag{\ifpsmathbox\ifmmode\ifinner1\else2\fi\else\z@\fi\else\z@\fi}% + \afterassignment\pst@beginbox% \setbox\pst@hbox\hbox% } \def\pst@beginbox{% - \ifcase\pst@mathflag\or$\m@th\or$\m@th\displaystyle\fi - \bgroup\aftergroup\pst@endbox - \pst@thisbox + \ifcase\pst@mathflag\or$\m@th\or$\m@th\displaystyle\fi% + \bgroup\aftergroup\pst@endbox% + \pst@thisbox% \the\everypsbox% } \def\pst@endbox{% - \ifnum\pst@mathflag>\z@$\fi %$ - \egroup + \ifnum\pst@mathflag>\z@\relax$\fi% $ + \egroup% \pst@afterbox% } \def\pst@makebox{\pst@@makebox} @@ -2238,13 +2431,11 @@ \@namedef{end#1}{\pst@endlongbox}} % \newdimen\psframesep -\def\psset@framesep#1{\pssetlength\psframesep{#1}} -\psset@framesep{3pt} +\define@key[psset]{pstricks}{framesep}[3pt]{\pssetlength\psframesep{#1}} +\psset[pstricks]{framesep=3pt} % -\newif\ifpsboxsep -\def\psset@boxsep#1{\@nameuse{psboxsep#1}} -% -\psset@boxsep{true} +\define@boolkey[psset]{pstricks}[ps]{boxsep}[true]{} +\psset[pstricks]{boxsep} % \def\pst@useboxpar{% \use@par @@ -2536,89 +2727,100 @@ pop \ht\pst@hbox\pst@dimd \advance\pst@dimd-2\pst@dimb \dp\pst@hbox\pst@dimd} -\def\psset@trimode#1{\pst@expandafter\psset@@trimode{#1}\@empty\@empty\@nil} +% +\define@key[psset]{pstricks}{trimode}[U]{\pst@expandafter\psset@@trimode{#1}\@empty\@empty\@nil} \def\psset@@trimode#1#2#3\@nil{% -\let\pst@tempg#1\relax -\ifx\pst@tempg*% -\let\psk@@trimode\@empty -\let\pst@tempg#2\relax -\else -\let\psk@@trimode\relax -\fi -\edef\psk@trimode{% -\ifx R\pst@tempg 1 \else\ifx D\pst@tempg 2 -\else\ifx L\pst@tempg 3 \else 0 \fi\fi\fi}} -\psset@trimode{U} -\def\pstribox{\def\pst@par{}\pst@object{pstribox}} + \let\pst@tempg#1\relax + \ifx\pst@tempg* + \let\psk@@trimode\@empty + \let\pst@tempg#2\relax + \else + \let\psk@@trimode\relax + \fi + \edef\psk@trimode{% + \ifx R\pst@tempg 1 % Right + \else + \ifx D\pst@tempg 2 % Down + \else + \ifx L\pst@tempg 3 % Left + \else 0 % Up + \fi + \fi + \fi}% +} +\psset[pstricks]{trimode=U} +% +\def\pstribox{\pst@object{pstribox}} \def\pstribox@i{\pst@makebox{\pstribox@ii}} \def\pstribox@ii{% -\begingroup -\pst@useboxpar -\pstribox@iii -\ifpsboxsep\pstribox@sep\fi -\leavevmode -\box\pst@hbox -\endgroup} + \begingroup + \pst@useboxpar + \pstribox@iii + \ifpsboxsep\pstribox@sep\fi + \leavevmode + \box\pst@hbox + \endgroup} +% \def\pstribox@iii{% -\pstribox@iv -\setbox\pst@hbox=\hbox{% -\begin@ClosedObj -\addto@pscode{% -\psline@iii -pop -.5 -\pst@number\pst@dimc \pst@number\pst@dimd -\ifodd\psk@trimode exch \fi -\psk@trimode -90 mul -\pst@number\pst@dima \pst@number\pst@dimb -\tx@Triangle}% -\def\pst@linetype{2}% -\end@ClosedObj -\box\pst@hbox}} + \pstribox@iv + \setbox\pst@hbox=\hbox{% + \begin@ClosedObj + \addto@pscode{ + \psline@iii + pop + 0.5 + \pst@number\pst@dimc \pst@number\pst@dimd + \ifodd\psk@trimode exch \fi + \psk@trimode -90 mul + \pst@number\pst@dima \pst@number\pst@dimb + \tx@Triangle}% + \def\pst@linetype{2}% + \end@ClosedObj + \box\pst@hbox}% +} +% \def\pstribox@iv{% -\pst@dimh=\pslinewidth -\advance\pst@dimh\psframesep -\pst@dimg=\ht\pst@hbox -\advance\pst@dimg-\dp\pst@hbox -\divide\pst@dimg 2 -\edef\pst@tempa{\number\pst@dimg sp}% For use by nodes. -\ifodd\psk@trimode -\pst@dimb\pst@dimg -\else -\pst@dima=\wd\pst@hbox -\divide\pst@dima 2 -\fi -\ifcase\psk@trimode -\pst@dimb=-\dp\pst@hbox -\advance\pst@dimb-\pst@dimh -\or -\pst@dima=-\pst@dimh -\or -\pst@dimb=\ht\pst@hbox -\advance\pst@dimb\pst@dimh -\or -\pst@dima=\wd\pst@hbox -\advance\pst@dima\pst@dimh -\fi -\pst@dimd=\dp\pst@hbox -\advance\pst@dimd\ht\pst@hbox -\ifx\psk@@trimode\relax -\pst@dimc=\wd\pst@hbox -\advance\pst@dimc\ifodd\psk@trimode 1.447\else 1.789\fi\pst@dimh -\multiply\pst@dimc 2 -\advance\pst@dimd\ifodd\psk@trimode 1.789\else 1.447\fi\pst@dimh -\multiply\pst@dimd 2 -\else -\ifodd\psk@trimode -\advance\pst@dimd 1.1547\wd\pst@hbox -\advance\pst@dimd 3.4641\pst@dimh -\pst@dimc=.866\pst@dimd -\else -\advance\pst@dimd .866\wd\pst@hbox %.866=(sqrt(3)/2) -\advance\pst@dimd 3\pst@dimh -\pst@dimc=1.1547\pst@dimd % 1.1547=(2/sqrt(3)) -\fi -\fi} + \pst@dimh=\pslinewidth + \advance\pst@dimh\psframesep + \pst@dimg=\ht\pst@hbox + \advance\pst@dimg-\dp\pst@hbox + \divide\pst@dimg 2 + \edef\pst@tempa{\number\pst@dimg sp}% For use by nodes. + \ifodd\psk@trimode + \pst@dimb\pst@dimg + \else + \pst@dima=\wd\pst@hbox + \divide\pst@dima 2 + \fi + \ifcase\psk@trimode + \pst@dimb=-\dp\pst@hbox + \advance\pst@dimb-\pst@dimh + \or\pst@dima=-\pst@dimh + \or\pst@dimb=\ht\pst@hbox + \advance\pst@dimb\pst@dimh + \or\pst@dima=\wd\pst@hbox + \advance\pst@dima\pst@dimh + \fi + \pst@dimd=\dp\pst@hbox + \advance\pst@dimd\ht\pst@hbox + \ifx\psk@@trimode\relax% no star for trimode= + \pst@dimc=\wd\pst@hbox + \advance\pst@dimc\ifodd\psk@trimode 1.447\else 1.789\fi\pst@dimh + \multiply\pst@dimc 2 + \advance\pst@dimd\ifodd\psk@trimode 1.789\else 1.447\fi\pst@dimh + \multiply\pst@dimd 2 + \else% trimode=R*,L*,U*,D* + \ifodd\psk@trimode + \advance\pst@dimd 1.1547\wd\pst@hbox + \advance\pst@dimd 3.4641\pst@dimh + \pst@dimc=.866\pst@dimd + \else + \advance\pst@dimd .866\wd\pst@hbox %.866=(sqrt(3)/2) + \advance\pst@dimd 3\pst@dimh + \pst@dimc=1.1547\pst@dimd % 1.1547=(2/sqrt(3)) + \fi + \fi} +% \def\pstribox@sep{% \ifodd\psk@trimode \advance\pst@dimb.5\pst@dimd @@ -2649,14 +2851,14 @@ pop \hss\box\pst@hbox\kern\psframesep\kern\pslinewidth}% \fi} % -\def\psset@arcsepA#1{\pst@getlength{#1}\psk@arcsepA} -\def\psset@arcsepB#1{\pst@getlength{#1}\psk@arcsepB} -\def\psset@arcsep#1{% -\psset@arcsepA{#1}\let\psk@arcsepB\psk@arcsepA} -\psset@arcsep{0} +\define@key[psset]{pstricks}{arcsepA}[0]{\pst@getlength{#1}\psk@arcsepA} +\define@key[psset]{pstricks}{arcsepB}[0]{\pst@getlength{#1}\psk@arcsepB} +\define@key[psset]{pstricks}{arcsep}[0]{% + \pst@getlength{#1}\psk@arcsepA\let\psk@arcsepB\psk@arcsepA} +\psset[pstricks]{arcsep=0} \def\tx@ArcArrow{ArcArrow } % -\def\psarc{\def\pst@par{}\pst@object{psarc}} +\def\psarc{\pst@object{psarc}} \def\psarc@i{\@ifnextchar({\psarc@iii}{\psarc@ii}} \def\psarc@ii#1{\addto@par{arrows=#1}% \@ifnextchar({\psarc@iii}{\psarc@iii(0,0)}% @@ -2738,16 +2940,16 @@ pop \def\psarcn{\def\pst@par{}\pst@object{psarcn}} \def\psarcn@i{\def\psarc@type{1}\psarc@i} % -\def\psarcAB{\def\pst@par{}\pst@object{psarcAB}}% hv 2008-11-26 +\def\psarcAB{\pst@object{psarcAB}}% hv 2008-11-26 \def\psarcAB@i{% \addbefore@par{psscale=1}% be sure, that it is defined \pst@getarrows{% - \begin@OpenObj + \begin@OpenObj% \pst@getcoors{}\psarcAB@ii% }% } \def\psarcAB@ii{% - \addto@pscode{% + \addto@pscode{ /y ED /x ED /yA ED /xA ED /yB ED /xB ED /r xB yB x y Pyth2 \psk@psscale\space mul def /c 57.2957 r \tx@Div def @@ -2767,10 +2969,9 @@ pop y add exch x add exch moveto \fi \fi - \psarc@v - } + \psarc@v }% \gdef\psarc@type{0}% - \showpointsfalse + \showpointsfalse% \end@OpenObj% } \def\psarcnAB{\def\pst@par{}\pst@object{psarcnAB}} @@ -2943,14 +3144,14 @@ pop \tx@SD }% \end@SpecialObj} % -\def\psset@radius#1{\pst@@getlength{#1}\psk@radius} -\psset@radius{.25cm} +\define@key[psset]{pstricks}{radius}[0.25cm]{\pst@@getlength{#1}\psk@radius} +\psset[pstricks]{radius=.25cm} % -\def\psCircle{\def\pst@par{}\pst@object{psCircle}}% same as \pscircle, but uses \psk@radius +\def\psCircle{\pst@object{psCircle}}% same as \pscircle, but uses \psk@radius \def\psCircle@i{\@ifnextchar({\psCircle@ii}{\psCircle@ii(0,0)}} \def\psCircle@ii(#1){\pscircle@do(#1){\psk@radius}} % -\def\pswedge{\def\pst@par{}\pst@object{pswedge}} +\def\pswedge{\pst@object{pswedge}} \def\pswedge@i{\@ifnextchar({\pswedge@ii}{\pswedge@ii(0,0)}} \def\pswedge@ii(#1)#2#3#4{% \begin@ClosedObj% @@ -3135,7 +3336,7 @@ pop \fi \setbox#1=\hbox to\z@{% \kern-\pst@dimh\vbox to\z@{\vss\box#1\kern-\pst@dimg}\hss}} -\def\psset@ref#1{\pst@expandafter\psset@@ref{#1}\@empty,,\@nil} +\define@key[psset]{pstricks}{ref}[c]{\pst@expandafter\psset@@ref{#1}\@empty,,\@nil} \def\psset@@ref#1#2,#3,#4\@nil{% \def\psk@xref{.5}% \def\psk@yref{.5}% @@ -3153,18 +3354,15 @@ pop \def\getref@B{\let\psk@yref\relax} \def\getref@l{\def\psk@xref{0}} \def\getref@r{\def\psk@xref{1}} -\psset@ref{c} +\psset[pstricks]{ref=c} % -\def\psset@rot#1{% -\pst@expandafter{\@ifnextchar*{\psset@@@rot}{\psset@@rot}}{#1}\@nil} +\define@key[psset]{pstricks}{rot}[0]{% + \pst@expandafter{\@ifnextchar*{\psset@@@rot}{\psset@@rot}}{#1}\@nil} \def\psset@@rot#1\@nil{% \def\ps@next##1@#1=##2@##3\@nil{% -\ifx\relax##2% -\pst@getangle{#1}\psk@rot -\else -\def\psk@rot{##2}% -\fi}% +\ifx\relax##2\pst@getangle{#1}\psk@rot\else\def\psk@rot{##2}\fi}% \expandafter\ps@next\pst@rottable @#1=\relax @\@nil} +% \def\psset@@@rot#1#2\@nil{% \psset@@rot#2\@nil \edef\psk@rot{\pst@rotlist \ifx\psk@rot\@empty\else\psk@rot add \fi}} @@ -3179,7 +3377,8 @@ pop @W=\pst@rotlist 90 add % @S=\pst@rotlist 180 add % @E=\pst@rotlist 90 sub } -\psset@rot{0} +\psset[pstricks]{rot=0} +% \def\tx@RotBegin{RotBegin } \def\tx@RotEnd{RotEnd } \def\pst@rotate#1#2{% @@ -3281,19 +3480,20 @@ pop \def\Cput{\def\pst@par{}\pst@object{Cput}} \def\Cput@i{\@fixedradiustrue\cput@ii} \newdimen\pslabelsep -\def\psset@labelsep#1{\pssetlength\pslabelsep{#1}} -\psset@labelsep{5pt} -\def\psset@refangle#1{\pst@expandafter\psset@@refangle{#1}\@nil} +\define@key[psset]{pstricks}{labelsep}[5pt]{\pssetlength\pslabelsep{#1}} +\psset[pstricks]{labelsep=5pt} +\define@key[psset]{pstricks}{refangle}[0]{\pst@expandafter\psset@@refangle{#1}\@nil} \def\psset@@refangle#1\@nil{% -\def\ps@next##1@#1=##2"##3@##4\@nil{% -\ifx\relax##2% -\pst@getangle{#1}\psk@refangle -\def\psk@uputref{}% -\else -\def\psk@refangle{##2 }% -\def\psk@uputref{##3}% -\fi}% -\expandafter\ps@next\pst@refangletable @#1=\relax"@\@nil} + \def\ps@next##1@#1=##2"##3@##4\@nil{% + \ifx\relax##2% + \pst@getangle{#1}\psk@refangle + \def\psk@uputref{}% + \else + \def\psk@refangle{##2 }% + \def\psk@uputref{##3}% + \fi}% + \expandafter\ps@next\pst@refangletable @#1=\relax"@\@nil} +% \def\pst@refangletable{% @r=0"20% @u=90"02% @@ -3303,7 +3503,8 @@ pop @ul=135"12% @dr=-135"21% @dl=-45"11} -\psset@refangle{0} +\psset[pstricks]{refangle=0} + % DG/SR modification begin - Mar. 24, 1999 - Patch 10 %\def\uput{\def\pst@par{}\@ifnextchar[{\uput@ii}{\uput@i}} \def\uput{\def\pst@par{}\pst@ifstar{\@ifnextchar[{\uput@ii}{\uput@i}}} @@ -3317,40 +3518,42 @@ pop \@ifnextchar({\uput@iv}{\uput@iv(\z@,\z@)}} \def\uput@iv(#1){\pst@killglue\pst@makebox{\uput@v{#1}}} \def\uput@v#1{% - \begingroup - \use@par - \if@star\pst@starbox\fi - \uput@vi + \begingroup% + \use@par% + \if@star\pst@starbox\fi% + \uput@vi% \psput@{#1}\pst@hbox - \endgroup + \endgroup% \ignorespaces} \def\uput@vi{% \ifx\psk@uputref\@empty\uput@vii\tx@UUput{}% - \else - \ifx\psk@rot\@empty\expandafter\uput@viii\psk@uputref - \else\uput@vii\tx@UUput{}\fi + \else% + \ifx\psk@rot\@empty\expandafter\uput@viii\psk@uputref% + \else\uput@vii\tx@UUput{}\fi% \fi} \def\uput@vii#1#2{% - \edef\pst@coor{% + \edef\pst@coor{ \pst@number\pslabelsep #2% - \pst@number{\wd\pst@hbox}% - \pst@number{\ht\pst@hbox}% - \pst@number{\dp\pst@hbox}% + \pst@number{\wd\pst@hbox} + \pst@number{\ht\pst@hbox} + \pst@number{\dp\pst@hbox} \psk@refangle\space \ifx\psk@rot\@empty\else\psk@rot\space sub \fi \tx@Uput #1}% \setbox\pst@hbox=\hbox to\z@{\hss\vbox to\z@{\vss\box\pst@hbox\vss}\hss}% - \setbox\pst@hbox=\psput@special\pst@hbox + \setbox\pst@hbox=\psput@special\pst@hbox% \ifx\psk@rot\@empty\else\pst@rotate\psk@rot\pst@hbox\fi} +% \def\uput@viii#1#2{% - \ifnum#1>\z@\ifnum#2>\z@\pslabelsep=.707\pslabelsep\fi\fi + \ifnum#1>\z@\relax\ifnum#2>\z@\relax\pslabelsep=.707\pslabelsep\fi\fi% \setbox\pst@hbox=\vbox to\z@{% - \ifnum#2=1 \vskip\pslabelsep\else\vss\fi + \ifnum#2=1\relax\vskip\pslabelsep\else\vss\fi% \hbox to\z@{% - \ifnum#1=2 \hskip\pslabelsep\else\hss\fi - \box\pst@hbox - \ifnum#1=1 \hskip\pslabelsep\else\hss\fi}% - \ifnum#2=2 \vskip\pslabelsep\else\vss\fi}} + \ifnum#1=2\relax\hskip\pslabelsep\else\hss\fi% + \box\pst@hbox% + \ifnum#1=1\relax\hskip\pslabelsep\else\hss\fi}% + \ifnum#2=2\relax\vskip\pslabelsep\else\vss\fi}} +% \def\tx@Uput{Uput } \def\tx@UUput{UUput } % @@ -3388,13 +3591,12 @@ pop % % ----------- 1.10/12 beg hv ------------------- \newpsstyle{gridstyle}{subgriddiv=0,gridcolor=lightgray,griddots=10,gridlabels=8pt} -\newif\ifshowgrid -\def\psset@showgrid#1{\@nameuse{showgrid#1}} -\psset@showgrid{false} +\define@boolkey[psset]{pstricks}[]{showgrid}[true]{} +\psset[pstricks]{showgrid=false} % \newdimen\pst@shift \newif\ifPst@shift@star -\def\psset@shift#1{% +\define@key[psset]{pstricks}{shift}[0]{% \ifx#1* \global\Pst@shift@startrue \pst@shift=\p@ @@ -3403,9 +3605,7 @@ pop \pssetlength\pst@dimg{#1} \global\pst@shift\pst@dimg% only the outer pspicture env can have a shift \fi} -% \global\pst@shift\pst@dimg} -\psset@shift{0} -% ----------- 1.10/12 end hv ------------------- +\psset[pstricks]{shift=0} % %------------------------------- pspicture ------------------------------ % @@ -3476,7 +3676,7 @@ pop \if@star\setbox\pst@hbox=\hbox{\clipbox@@\z@}\fi% \leavevmode\box\pst@hbox% \endgroup% - \psset@shift{0}% reset value + \psset[pstricks]{shift=0}% reset value } % \@namedef{pspicture*}{\pspicture*} diff --git a/Master/texmf-dist/tex/generic/pstricks/textures.con b/Master/texmf-dist/tex/generic/pstricks/textures.con deleted file mode 100644 index b126464a767..00000000000 --- a/Master/texmf-dist/tex/generic/pstricks/textures.con +++ /dev/null @@ -1,127 +0,0 @@ -%% BEGIN pstricks.con (for Textures 1.7 and 1.8 driver) -%% -%% Configuration file for PSTricks 97: must be renamed `pstricks.con' -%% -%% Version 97 (1997/03/01) -%% -%% For use with Textures, v1.7 and v1.8. - -\def\pstdriver{Textures-V1.7} -%\def\pstdriver{Textures-V1.8} -\def\pstunit{1bp} -\def\pstverb#1{\special{postscript #1 }} -\def\pstVerb#1{\special{rawpostscript #1}} -\def\pstverbscale{Mag 72.27 72 div mul dup neg scale} -\def\pstrotate{CP CP translate 3 -1 roll neg rotate \tx@NET} -\def\pstheader#1{\special{prePostScriptfile #1}}% - -\pstcustomize - -\special{prePostScript - tx@Dict begin /sps {moveto /Mag ED pop tx@Dict begin} def /eps {} def end} -\def\pst@Verb#1{% - \special{rawpostscript tx@Dict begin}% - \special{postscript #1}% - \special{rawpostscript end}} - -\endinput - -%% -%%%%%%%%%%%%%%%%%%% !! GENERAL INSTRUCTIONS !! %%%%%%%%%%%%%%%%%%%%%%%%%%%% - -Because there are no standards for dvi-to-PS driver \special's, -some driver-dependent commands must be defined in this file. - -Possibly correct definitions for some dvi drivers are given below. -Copy the section for the driver you want to use to the indicated place -near the beginning of the file, replacing any other definitions you -might find there. - -When changing drivers, you may need to remake the header file. - -See the PSTricks read-me file for further installation instructions. - -Please report good and bad experiences with dvi-to-PS drivers, -along with the definitions of these commands that worked -for you, to tvz@Princeton.EDU. Thanks. - - -%%%%%%%%%%%%%%%% DESCRIPTION OF CONFIGURATION DEFINITIONS %%%%%%%%%%%%%%% - -Here are the commands that must be defined in this file: - - \pstverb{} - The argument is included as verbatim PostScript, - grouped by save and restore. The coordinate system - should be square, not rotated, and with the origin - at TeX's currentpoint. - - \pstVerb{} - The argument is included as verbatim PostScript, not - grouped by (g)save and (g)restore. The currentpoint - should be TeX's currentpoint. - - \pstunit - The units used by driver for graphics included with - \pstverb. Probably 1bp or 1sp. - - \pstverbscale - The PostScript code that scales the coordinate system - from that in effect with \pstVerb to that in effect - with \pstverb. Should not translate to the currentpoint. - - \pstrotate - The PostScript code that takes a number off the stack - and rotates the axes properly. I.e., - \pstVerb{angle \pstrotate} is used to begin rotations. - - \pstheader{} - The argument is a header file (e.g., .pro file). - If your driver does not support such a special, then - the command might just remind you to include the header - when printing. You can use PSTricks without a header, - in which case it does not matter how you define - \pstheader. See read-me.pst for details. - If you cannot change the default directory where your - driver looks for header files, and you cannot write to - that directory, then you include the path for your - PSTricks header files. - E.g., \def\pstheader#1{\special{header=~/tex/#1}}. - - \pstdriver - The name of the driver. - - -%%%%%%%%% !! HOW TO MAKE A TEX FORMAT WITH PSTRICKS PRELOADED !! %%%%%%%% - -See your local TeX documentation for instructions on creating a TeX format. - -Before making the format, be sure that this configuration file is correct. -It will be read only when creating the format, and not with every job. - -If you are not using header files, there are no more special instructions. - -Special instructions when using header files: - - - If you want to include supplementary PSTricks files (e.g., pst-node.tex), - add \input commands in the customization section above. - - - If your definition of \pstheader is, e.g. - - \def\pstheader#1{\special{\header=#1}} - - then change it to - - \def\pstheader#1{% - \expandafter\everyjob\expandafter{\the\everyjob - \special{header=#1}}} - - and put your original definition in the customization section, AFTER - any \input commands. E.g., the customization section might look like: - - \pstcustomize - \input pst-node.tex - \input pst-coil.tex - \def\pstheader#1{\special{header=#1}} - - - Input pstricks.tex at the appropriate time when creating the format. - E.g., when initex stops running: - *\input pstricks - *\dump - - -%% -%% END: pstricks.con diff --git a/Master/texmf-dist/tex/generic/pstricks/vtex.con b/Master/texmf-dist/tex/generic/pstricks/vtex.con deleted file mode 100644 index 50e5260147d..00000000000 --- a/Master/texmf-dist/tex/generic/pstricks/vtex.con +++ /dev/null @@ -1,170 +0,0 @@ -%% BEGIN: pstricks.con (for VTeX) -%% -%% Configuration file for PSTricks 97 -%% -%% 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 7.46 or newer, 10-14-01 -%% -%% For support and possible updates, check -%% http://www.micropress-inc.com -%% - -\def\pstdriver{VTeX} -{\catcode`\"=12\gdef -\pstverb#1{% - \special{pS*GS @beginspecial @setspecial #1 @endspecial GR }% -}}% -\def\pstunit{1bp}% -\def\pstVerb#1{\special{pS: #1}}% -\def\pstverbscale{SDict begin normalscale end} -\ifx\textsuperscript\@undefined - \def\pstheader#1{\special{header=#1}} -\else -% 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} -%% -%% ****************** END VTeX ***************************** - -%%%%%%%%%%%%%%%%%%% !! CUSTOMIZATION STUFF GOES HERE: !! %%%%%%%%%%%%%%%%%% -%% If you want to include your own customizations to pstricks.tex, then -%% uncomment the \pstcustomize command, and include your modifications -%% after \pstcustomize. These will be read in after pstricks.tex. -% -% Some customization needed for VTeX since the coordinate system -% is different. -\newif\if@colorstack -\ifnum\OpMode>-1 -\ifnum\OpMode<3 -\@colorstacktrue -% D.G. modification begin - Nov. 17, 1999 -\let\vtex@pspicture=\pspicture -\def\pspicture{\special{G(}\@colorstackfalse\vtex@pspicture}% -\let\vtex@endpspicture=\endpspicture -\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 - -%% -%%%%%%%%%%%%%%%%%%% !! GENERAL INSTRUCTIONS !! %%%%%%%%%%%%%%%%%%%%%%%%%%%% - -Because there are no standards for dvi-to-PS driver \special's, -some driver-dependent commands must be defined in this file. - -Possibly correct definitions for some dvi drivers are given below. -Copy the section for the driver you want to use to the indicated place -near the beginning of the file, replacing any other definitions you -might find there. - -When changing drivers, you may need to remake the header file. - -See the PSTricks read-me file for further installation instructions. - -Please report good and bad experiences with dvi-to-PS drivers, -along with the definitions of these commands that worked -for you, to tvz@Princeton.EDU. Thanks. - - -%%%%%%%%%%%%%%%% DESCRIPTION OF CONFIGURATION DEFINITIONS %%%%%%%%%%%%%%% - -Here are the commands that must be defined in this file: - - \pstverb{} - The argument is included as verbatim PostScript, - grouped by save and restore. The coordinate system - should be square, not rotated, and with the origin - at TeX's currentpoint. - - \pstVerb{} - The argument is included as verbatim PostScript, not - grouped by (g)save and (g)restore. The currentpoint - should be TeX's currentpoint. - - \pstunit - The units used by driver for graphics included with - \pstverb. Probably 1bp or 1sp. - - \pstverbscale - The PostScript code that scales the coordinate system - from that in effect with \pstVerb to that in effect - with \pstverb. Should not translate to the currentpoint. - - \pstrotate - The PostScript code that takes a number off the stack - and rotates the axes properly. I.e., - \pstVerb{angle \pstrotate} is used to begin rotations. - - \pstheader{} - The argument is a header file (e.g., .pro file). - If your driver does not support such a special, then - the command might just remind you to include the header - when printing. You can use PSTricks without a header, - in which case it does not matter how you define - \pstheader. See read-me.pst for details. - If you cannot change the default directory where your - driver looks for header files, and you cannot write to - that directory, then you include the path for your - PSTricks header files. - E.g., \def\pstheader#1{\special{header=~/tex/#1}}. - - \pstdriver - The name of the driver. - - -%%%%%%%%% !! HOW TO MAKE A TEX FORMAT WITH PSTRICKS PRELOADED !! %%%%%%%% - -See your local TeX documentation for instructions on creating a TeX format. - -Before making the format, be sure that this configuration file is correct. -It will be read only when creating the format, and not with every job. - -If you are not using header files, there are no more special instructions. - -Special instructions when using header files: - - - If you want to include supplementary PSTricks files (e.g., pst-node.tex), - add \input commands in the customization section above. - - - If your definition of \pstheader is, e.g. - - \def\pstheader#1{\special{\header=#1}} - - then change it to - - \def\pstheader#1{% - \expandafter\everyjob\expandafter{\the\everyjob - \special{header=#1}}} - - and put your original definition in the customization section, AFTER - any \input commands. E.g., the customization section might look like: - - \pstcustomize - \input pst-node.tex - \input pst-coil.tex - \def\pstheader#1{\special{header=#1}} - - - Input pstricks.tex at the appropriate time when creating the format. - E.g., when initex stops running: - *\input pstricks - *\dump - - -%% -%% END: pstricks.con diff --git a/Master/texmf-dist/tex/generic/pstricks/xdvipdfmx.con b/Master/texmf-dist/tex/generic/pstricks/xdvipdfmx.con deleted file mode 100644 index 423849dab56..00000000000 --- a/Master/texmf-dist/tex/generic/pstricks/xdvipdfmx.con +++ /dev/null @@ -1,225 +0,0 @@ -%% BEGIN: pstricks.con (for xdvipdfmx driver) -%% -%% Configuration file for PSTricks -%% -%% Version 0.02 (2008/06/20) -%% -%% For use with xdvipdfmx -%% Created by SMiyata based on standard pstricks.con from TeXLive distribution. -%% This file may be distributed, used and modified freely. -% -\def\pstdriver{xdvipdfmx} -\def\pstverb#1{\special{pst: #1}} % Check catcode of " -\def\pstunit{1bp}% -\def\pstVerb#1{\immediate\special{PST: #1}} -\def\pstverbscale{72.27 72 div dup scale } -% DG/SR modification begin - Apr. 28, 1997 (D. Carlisle + S. Rahtz) -% \def\pstheader#1{\special{header=#1}} -% We used to check for |\AtBeginDvi|, but that was broken in early release -% so we now check for the existence of |\textsuperscript| (added 1995/05/16) -\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 -\fi -% DG/SR modification end -%% -%% In the following, CP is short for currentpoint. -%% The neg is necessary because dvips scales the coordinates by 1 -1. -%% \tx@NET means neg exch neg exch translate. -\def\pstrotate{CP CP translate 3 -1 roll neg rotate \tx@NET} -%% -%% ****************** END xdvipdfmx ***************************** - -%%%%%%%%%%%%%%%%%%% !! CUSTOMIZATION STUFF GOES HERE: !! %%%%%%%%%%%%%%%%%% -%% If you want to include your own customizations to pstricks.tex, then -%% uncomment the \pstcustomize command, and include your modifications -%% after \pstcustomize. These will be read in after pstricks.tex. -\def\c@lor@to@ps#1 #2\@@{\csname c@lor@ps@#1\endcsname#2 \@@} -\def\c@lor@ps@#1 #2\@@{TeXDict begin #1 end} -\def\c@lor@ps@rgb#1\@@{#1 setrgbcolor} -\def\c@lor@ps@hsb#1\@@{#1 sethsbcolor} -\def\c@lor@ps@cmyk#1\@@{#1 setcmykcolor} -\def\c@lor@ps@gray#1\@@{#1 setgray} -\pstcustomize -\typeout{Using PSTricks configuration for XeTeX+xdvipdfmx} -\def\@@scalebox{% -\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 -\special{x: bscale \pst@tempc \pst@tempd}% -\hbox to \z@{\box\pst@hbox\hss}% -\special{x: escale}% -\ifdim\pst@dima>\z@\kern\pst@dima\fi}} -\let\ps@@scalebox\@@scalebox -\def\ps@rotateleft#1{% -\leavevmode\hbox{\hskip\ht#1\hskip\dp#1\vbox{\vskip\wd#1% -\pst@Verb{90 \tx@RotBegin} -\vbox to \z@{\vss\hbox to \z@{\box#1\hss}\vskip\z@}% -\pst@Verb{\tx@RotEnd}}}} -\def\ps@rotateright#1{% - \leavevmode\hbox{% - \hskip\ht#1\hskip\dp#1\vbox{\vskip\wd#1% - \pst@Verb{-90 \tx@RotBegin} - \vbox to \z@{\hbox to \z@{\hss\box#1}\vss}% - \pst@Verb{\tx@RotEnd}}}} -\def\ps@rotatedown#1{% -\hbox{\hskip\wd#1\vbox{\vskip\ht#1\vskip\dp#1% -\pst@Verb{180 \tx@RotBegin}% -\vbox to \z@{\hbox to \z@{\box#1\hss}\vss}% -\pst@Verb{\tx@RotEnd}}}} -\def\begin@psclip{\special{x: gsave}} -\def\end@psclip{\special{x: grestore}} -\def\@newcolor#1#2#3{% -\expandafter\edef\csname #1\endcsname{\noexpand\pst@color{#2}}% -\expandafter\edef\csname\string\color@#1\endcsname{#2}% hv 1.14 2005-12-17 -\expandafter\edef\csname\string\color@xetex@#1\endcsname{#3}% -\ignorespaces} -\def\newgray#1#2{% - \pst@checknum{#2}\pst@tempg - \@newcolor{#1}{\pst@tempg setgray}{gray \pst@tempg}% -} -\def\newrgbcolor#1#2{% - \pst@expandafter\pst@getnumiii{#2} {} {} {} {}\@nil - \@newcolor{#1}{\pst@tempg \pst@temph \pst@tempi setrgbcolor}{rgb \pst@tempg \pst@temph \pst@tempi}% -} -\def\newhsbcolor#1#2{% - \pst@expandafter\pst@getnumiii{#2} {} {} {} {}\@nil - \@newcolor{#1}{\pst@tempg \pst@temph \pst@tempi sethsbcolor}{hsb \pst@tempg \pst@temph \pst@tempi}% -} -\def\newcmykcolor#1#2{% - \pst@expandafter\pst@getnumiv{#2} {} {} {} {} {}\@nil - \@newcolor{#1}{\pst@tempg \pst@temph \pst@tempi \pst@tempj setcmykcolor}% - {cmyk \pst@tempg \pst@temph \pst@tempi \pst@tempj}% -} -\newgray{black}{0} -\newgray{darkgray}{.25} -\newgray{gray}{.5} -\newgray{lightgray}{.75} -\newgray{white}{1} -\newrgbcolor{red}{1 0 0} -\newrgbcolor{green}{0 1 0} -\newrgbcolor{blue}{0 0 1} -\newrgbcolor{yellow}{1 1 0} -\newrgbcolor{cyan}{0 1 1} -\newrgbcolor{magenta}{1 0 1} - -\@ifundefined{LaTeXe}% - {\def\current@@@@color{\csname\string\color@xetex@\psfillcolor\endcsname}}{% - \AtBeginDocument{\@ifpackageloaded{xcolor}{\def\current@@@@color{\psfillcolor}}% - {\def\current@@@@color{\csname\string\color@\psfillcolor\endcsname}}}} -\def\pst@starbox{% -\setbox\pst@hbox\hbox{{% - \def\current@color{\current@@@@color}% -\dimen@\wd\pst@hbox\advance\dimen@2\psframesep\wd\pst@hbox\dimen@% -\dimen@\ht\pst@hbox\advance\dimen@\psframesep\ht\pst@hbox\dimen@% -\dimen@\dp\pst@hbox\advance\dimen@\psframesep\dp\pst@hbox\dimen@% -\@ifundefined{LaTeXe}{\special{color push \current@color}% - \rlap{\vrule width\wd\pst@hbox height\ht\pst@hbox depth\dp\pst@hbox}% - \special{color pop}}% - {\color@block{\wd\pst@hbox}{\ht\pst@hbox}{\dp\pst@hbox}}}% -\rlap{\hskip\psframesep\unhbox\pst@hbox}}} -\def\AltClipMode{} -\def\putoverlaybox#1{% -\hbox{\special{x: gsave}\special{x: initoverlay #1}\copy\theoverlaybox\special{x: grestore}}} -\def\pst@overlay#1{\edef\curr@overlay{#1}\special{x: clipoverlay #1}\aftergroup\pst@endoverlay} -\def\pst@endoverlay{\special{x: clipoverlay \curr@overlay}} -\def\AltOverlayMode{} -%The next line is not necessary, if pstricks.sty of [2007/02/18 v0.33] or newer is used. -\@ifundefined{LaTeXe}{}{\AtBeginDocument{\psset{fillcolor=white}}} -\endinput -% -% -%%%%%%%%%%%%%%%% DESCRIPTION OF CONFIGURATION DEFINITIONS %%%%%%%%%%%%%%% - -Here are the commands that must be defined in this file: - - \pstverb{} - The argument is included as verbatim PostScript, - grouped by save and restore. The coordinate system - should be square, not rotated, and with the origin - at TeX's currentpoint. - - \pstVerb{} - The argument is included as verbatim PostScript, not - grouped by (g)save and (g)restore. The currentpoint - should be TeX's currentpoint. - - \pstunit - The units used by driver for graphics included with - \pstverb. Probably 1bp or 1sp. - - \pstverbscale - The PostScript code that scales the coordinate system - from that in effect with \pstVerb to that in effect - with \pstverb. Should not translate to the currentpoint. - - \pstrotate - The PostScript code that takes a number off the stack - and rotates the axes properly. I.e., - \pstVerb{angle \pstrotate} is used to begin rotations. - - \pstheader{} - The argument is a header file (e.g., .pro file). - If your driver does not support such a special, then - the command might just remind you to include the header - when printing. You can use PSTricks without a header, - in which case it does not matter how you define - \pstheader. See read-me.pst for details. - If you cannot change the default directory where your - driver looks for header files, and you cannot write to - that directory, then you include the path for your - PSTricks header files. - E.g., \def\pstheader#1{\special{header=~/tex/#1}}. - - \pstdriver - The name of the driver. - - -%%%%%%%%% !! HOW TO MAKE A TEX FORMAT WITH PSTRICKS PRELOADED !! %%%%%%%% - -See your local TeX documentation for instructions on creating a TeX format. - -Before making the format, be sure that this configuration file is correct. -It will be read only when creating the format, and not with every job. - -If you are not using header files, there are no more special instructions. - -Special instructions when using header files: - - - If you want to include supplementary PSTricks files (e.g., pst-node.tex), - add \input commands in the customization section above. - - - If your definition of \pstheader is, e.g. - - \def\pstheader#1{\special{\header=#1}} - - then change it to - - \def\pstheader#1{% - \expandafter\everyjob\expandafter{\the\everyjob - \special{header=#1}}} - - and put your original definition in the customization section, AFTER - any \input commands. E.g., the customization section might look like: - - \pstcustomize - \input pst-node.tex - \input pst-coil.tex - \def\pstheader#1{\special{header=#1}} - - - Input pstricks.tex at the appropriate time when creating the format. - E.g., when initex stops running: - *\input pstricks - *\dump - - -%% -%% END: pstricks.con |