summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2010-02-11 23:48:39 +0000
committerKarl Berry <karl@freefriends.org>2010-02-11 23:48:39 +0000
commita82c24b304d3a6727a9cd210d82b33b2c9e3119b (patch)
tree2f331ad49c6edf41f80a30eda60945397bb38428 /Master/texmf-dist/tex
parentb164898a09f10287c030149a0a36c7938627a9c3 (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')
-rw-r--r--Master/texmf-dist/tex/generic/pstricks/distiller.con160
-rw-r--r--Master/texmf-dist/tex/generic/pstricks/dvipsone.con138
-rw-r--r--Master/texmf-dist/tex/generic/pstricks/pst-fp.tex714
-rw-r--r--Master/texmf-dist/tex/generic/pstricks/pst-node.tex1154
-rw-r--r--Master/texmf-dist/tex/generic/pstricks/pst-plot.tex709
-rw-r--r--Master/texmf-dist/tex/generic/pstricks/pstricks.con6
-rw-r--r--Master/texmf-dist/tex/generic/pstricks/pstricks.tex1412
-rw-r--r--Master/texmf-dist/tex/generic/pstricks/textures.con127
-rw-r--r--Master/texmf-dist/tex/generic/pstricks/vtex.con170
-rw-r--r--Master/texmf-dist/tex/generic/pstricks/xdvipdfmx.con225
-rw-r--r--Master/texmf-dist/tex/latex/pstricks/pst-all.sty2
-rw-r--r--Master/texmf-dist/tex/latex/pstricks/pst-node.sty10
-rw-r--r--Master/texmf-dist/tex/latex/pstricks/pst-plot.sty6
-rw-r--r--Master/texmf-dist/tex/latex/pstricks/pstricks.sty7
14 files changed, 1529 insertions, 3311 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
diff --git a/Master/texmf-dist/tex/latex/pstricks/pst-all.sty b/Master/texmf-dist/tex/latex/pstricks/pst-all.sty
index 8ac0ada25bf..4882c2287b4 100644
--- a/Master/texmf-dist/tex/latex/pstricks/pst-all.sty
+++ b/Master/texmf-dist/tex/latex/pstricks/pst-all.sty
@@ -17,9 +17,9 @@
% and does some modification to the color handling. Look at the
% doc for the options.
%
+\RequirePackage{pst-plot}
\RequirePackage{pst-node}
\RequirePackage{pst-tree}
-\RequirePackage{pst-plot}
\RequirePackage{pst-grad}
\RequirePackage{pst-coil}
\RequirePackage{pst-text}
diff --git a/Master/texmf-dist/tex/latex/pstricks/pst-node.sty b/Master/texmf-dist/tex/latex/pstricks/pst-node.sty
deleted file mode 100644
index 7c937c4b74b..00000000000
--- a/Master/texmf-dist/tex/latex/pstricks/pst-node.sty
+++ /dev/null
@@ -1,10 +0,0 @@
-\RequirePackage{pstricks}
-\ProvidesPackage{pst-node}[2006/01/01 package wrapper for pst-node.tex]
-\input{pst-node.tex}
-\ProvidesFile{pst-node.tex}
- [\filedate\space \fileversion\space `pst-node' (tvz)]
-\IfFileExists{pst-node.pro}{%
- \ProvidesFile{pst-node.pro}
- [2009/01/30 v. 1.02, PostScript prologue file (hv)]
- \@addtofilelist{pst-node.pro}}{}%
-\endinput
diff --git a/Master/texmf-dist/tex/latex/pstricks/pst-plot.sty b/Master/texmf-dist/tex/latex/pstricks/pst-plot.sty
deleted file mode 100644
index 598b46de429..00000000000
--- a/Master/texmf-dist/tex/latex/pstricks/pst-plot.sty
+++ /dev/null
@@ -1,6 +0,0 @@
-\RequirePackage{pstricks}
-\ProvidesPackage{pst-plot}[2004/07/15 package wrapper for pst-plot.tex]
-\input{pst-plot.tex}
-\ProvidesFile{pst-plot.tex}
- [\filedate\space \fileversion\space `pst-plot' (tvz)]
-\endinput
diff --git a/Master/texmf-dist/tex/latex/pstricks/pstricks.sty b/Master/texmf-dist/tex/latex/pstricks/pstricks.sty
index e58cadb4825..8e4c99c2c1c 100644
--- a/Master/texmf-dist/tex/latex/pstricks/pstricks.sty
+++ b/Master/texmf-dist/tex/latex/pstricks/pstricks.sty
@@ -5,7 +5,7 @@
%%
%% pstricks.sty Copyright (C) 1997 Timothy Van Zandt
%% pstcol.sty Copyright (C) 1994-1996 1999 David Carlisle
-%% pstricks.sty Copyright (C) 2004-2009 Herbert Voss <voss@perce.de>
+%% pstricks.sty Copyright (C) 2004-2010 Herbert Voss <voss@perce.de>
%% Rolf Niepraschk <Rolf.Niepraschk@ptb.de>
%%
%% This package may be distributed under the terms of the LaTeX Project
@@ -18,7 +18,7 @@
\ProvidesPackage{pstricks}
[2008/11/26 v0.40 LaTeX wrapper for `PSTricks' (RN,HV)]
%
-\def\documentclass{
+\def\documentclass{%
\edef\@tempa{\jobname.tex }%
\edef\@tempb{\@filef@und}%
\@onelevel@sanitize\@tempa
@@ -65,6 +65,9 @@
\input{\pst@tempa}%
\ProvidesFile{\pst@tempa}
[\filedate\space v\fileversion\space `PSTricks' (tvz,hv)]
+ \input{pst-fp.tex}
+ \ProvidesFile{pst-fp.tex}
+ [\filedate\space v\fileversion\space `PST-fp' (hv)]
\IfFileExists{pstricks.pro}{%
\ProvidesFile{pstricks.pro}
[2009/01/30 v. 1.06, PostScript prologue file (hv)]