diff options
author | Karl Berry <karl@freefriends.org> | 2008-10-26 16:12:29 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2008-10-26 16:12:29 +0000 |
commit | 719665eeaf4a9ad3504b931721d905f82c530bb2 (patch) | |
tree | 2a3fc36c719736a3c58b24e74144b420bbfa621d /Master/texmf-dist | |
parent | 0955b2a6df5038c7d3254ee8bf6ec14ef122eea6 (diff) |
pstricks update (20oct08)
git-svn-id: svn://tug.org/texlive/trunk@11067 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist')
-rw-r--r-- | Master/texmf-dist/doc/generic/pstricks/Changes.latex | 1 | ||||
-rw-r--r-- | Master/texmf-dist/tex/generic/pstricks/pstricks97.tex | 2624 | ||||
-rw-r--r-- | Master/texmf-dist/tex/latex/pstricks/pstricks.sty | 14 |
3 files changed, 2633 insertions, 6 deletions
diff --git a/Master/texmf-dist/doc/generic/pstricks/Changes.latex b/Master/texmf-dist/doc/generic/pstricks/Changes.latex index a1116de2b6d..3a21a2b3a70 100644 --- a/Master/texmf-dist/doc/generic/pstricks/Changes.latex +++ b/Master/texmf-dist/doc/generic/pstricks/Changes.latex @@ -1,4 +1,5 @@ pstricks.sty -------- +0.38 2008-10-19 - add new option for loading the old version from '97 0.37 2008-01-24 - add option distiller for transparent colors 0.36 2008-01-22 - Better error message, when the document has the same name than a PSTricks file. (RN) diff --git a/Master/texmf-dist/tex/generic/pstricks/pstricks97.tex b/Master/texmf-dist/tex/generic/pstricks/pstricks97.tex new file mode 100644 index 00000000000..95226133a07 --- /dev/null +++ b/Master/texmf-dist/tex/generic/pstricks/pstricks97.tex @@ -0,0 +1,2624 @@ +%% BEGIN: pstricks.tex +%% +%% PostScript macros for Generic TeX: main input file for PSTricks 97. +%% See the PSTricks User's Guide for description. +%% This uses the header file `pstricks.pro'. +%% +\def\fileversion{97 patch 14} +\def\filedate{1999/12/23} +%% +%% COPYRIGHT 1993, 1994, 1999 by Timothy Van Zandt, tvz@nwu.edu. +%% +%% 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 PSTricksLoaded\endcsname +\let\PSTricksLoaded\endinput +\edef\PstAtCode{\the\catcode`\@} +\catcode`\@=11\relax +\expandafter\ifx\csname @latexerr\endcsname\relax +\long\def\@ifundefined#1#2#3{\expandafter\ifx\csname +#1\endcsname\relax#2\else#3\fi} +\def\@namedef#1{\expandafter\def\csname #1\endcsname} +\def\@nameuse#1{\csname #1\endcsname} +\def\@eha{% +Your command was ignored.^^J +Type \space I <command> <return> \space to replace +it with another command,^^J +or \space <return> \space to continue without it.} +\def\@spaces{\space\space\space\space} +\def\typeout#1{\immediate\write\@unused{#1}} +\alloc@7\write\chardef\sixt@@n\@unused +\def\@empty{} +\def\@gobble#1{} +\def\@nnil{\@nil} +\def\@ifnextchar#1#2#3{% +\let\@tempe#1\def\@tempa{#2}\def\@tempb{#3}\futurelet\@tempc\@ifnch} +\def\@ifnch{% +\ifx\@tempc\@sptoken +\let\@tempd\@xifnch +\else +\ifx\@tempc\@tempe \let\@tempd\@tempa \else \let\@tempd\@tempb \fi +\fi +\@tempd} +\begingroup +\def\:{\global\let\@sptoken= } \: +\def\:{\@xifnch} \expandafter\gdef\: {\futurelet\@tempc\@ifnch} +\endgroup +\fi +\typeout{`PSTricks' v\fileversion\space\space <\filedate> (tvz)} +\def\@pstrickserr#1#2{% +\begingroup +\newlinechar`\^^J +\edef\pst@tempc{#2}% +\expandafter\errhelp\expandafter{\pst@tempc}% +\typeout{% +PSTricks error. \space See User's Guide for further information.^^J +\@spaces\@spaces\@spaces\@spaces +Type \space H <return> \space for immediate help.}% +\errmessage{#1}% +\endgroup} +\def\@ehpa{% +Your command was ignored. Default value substituted.^^J +Type \space <return> \space to procede.} +\def\@ehpb{% +Your command was ignored. Will recover best I can.^^J +Type \space <return> \space to procede.} +\def\@ehpc{% +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\pst@misplaced#1{\@pstrickserr{Misplaced \string#1 command}\@ehpb} +\newdimen\pst@dima +\newdimen\pst@dimb +\newdimen\pst@dimc +\newdimen\pst@dimd +\newdimen\pst@dimg +\newdimen\pst@dimh +\newbox\pst@hbox +\newbox\pst@boxg +\newcount\pst@cnta +\newcount\pst@cntb +\newcount\pst@cntc +\newcount\pst@cntd +\newcount\pst@cntg +\newcount\pst@cnth +\newif\if@pst +\newtoks\pst@toks +\newif\if@star +\def\pst@ifstar#1{% +\@ifnextchar*{\@startrue\def\next*{#1}\next}{\@starfalse#1}} +\def\pst@expandafter#1#2{% +\def\next{#1}% +\edef\@tempa{#2}% +\ifx\@tempa\@empty +\@pstrickserr{Unexpected empty argument!}\@ehpb +\def\@tempa{\@empty}% +\fi +\expandafter\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@pyth#1#2#3{% +\ifdim#1>#2\pst@@pyth#1#2#3\else\pst@@pyth#2#1#3\fi} +\def\pst@@pyth#1#2#3{% +\ifdim4#1>9#2% +#3=#1\advance#3 .2122#2% +\else +#3=.8384#1\advance#3 .5758#2% +\fi} +\def\pst@divide#1#2#3{% +\pst@@divide{#1}{#2}% +\pst@dimtonum\pst@dimg{#3}} +\def\pst@@divide#1#2{% +\pst@dimg=#1\relax +\pst@dimh=#2\relax +\pst@cntg=\pst@dimh +\pst@cnth=67108863 +\pst@@@divide\pst@@@divide\pst@@@divide\pst@@@divide +\divide\pst@dimg\pst@cntg} +\def\pst@@@divide{% +\ifnum +\ifnum\pst@dimg<\z@-\fi\pst@dimg<\pst@cnth +\multiply\pst@dimg\sixt@@n +\else +\divide\pst@cntg\sixt@@n +\fi} +\def\pst@configerr#1{% +\@pstrickserr{\string#1 not defined in pstricks.con}\@ehpc} +% % \begin{macrocode} +\def\pstVerb#1{\pst@configerr\pstVerb} +\def\pstverb#1{\pst@configerr\pstverb} +\def\pstverbscale{\pst@configerr\pstverbscale} +\def\pstrotate{\pst@configerr\pstrotate} +\def\pstheader#1{\pst@configerr\pstheader} +\def\pstdriver{\pst@configerr\pstdriver} +\@ifundefined{pstcustomize}% +{\def\pstcustomize{\endinput\let\pstcustomize\relax}}{} +\input pstricks.con +\newif\ifPSTricks +\PSTrickstrue +\def\PSTricksOff{% +\def\pstheader##1{}% +\def\pstverb##1{}% +\def\pstVerb##1{}% +\PSTricksfalse} +\@ifundefined{pst@def}{\def\pst@def#1<#2>{\@namedef{tx@#1}{#2 }}}{} +\@ifundefined{pst@ATH}{\def\pst@ATH<#1>{}}{} +\pstheader{pstricks.pro} +\def\pst@dict{tx@Dict begin } +\def\pst@theheaders{pstricks.pro} +\def\pst@Verb#1{\pstVerb{\pst@dict #1 end}} +\def\tx@Atan{Atan } +\def\tx@Div{Div } +\def\tx@NET{NET } +\def\tx@Pyth{Pyth } +\def\tx@PtoC{PtoC } +\def\tx@PathLength@{PathLength@ } +\def\tx@PathLength{PathLength } +\pst@dimg=\pstunit\relax +\ifdim\pst@dimg=1bp +\def\pst@stp{.996264 dup scale} +\else +\edef\pst@stp{1 \pst@@dimtonum\pst@dimg\space div dup scale} +\fi +\def\tx@STP{STP } +\def\tx@STV{STV } +\def\pst@number#1{\pst@@dimtonum#1\space} +\def\pst@checknum#1#2{% +\edef\next{#1}% +\ifx\next\@empty +\let\pst@num\z@ +\else +\expandafter\pst@@checknum\next..\@nil +\fi +\ifnum\pst@num=\z@ +\@pstrickserr{Bad number: `#1'. 0 substituted.}\@ehpa +\def#2{0 }% +\else +\edef#2{\ifnum\pst@num=\tw@-\fi\the\pst@cntg.% +\expandafter\@gobble\the\pst@cnth\space}% +\fi} +\def\pst@@checknum{% +\@ifnextchar-% +{\let\pst@num\tw@\expandafter\pst@@@checknum\@gobble}% +{\let\pst@num\@ne\pst@@@checknum}} +\def\pst@@@checknum#1.#2.#3\@nil{% +\afterassignment\pst@@@@checknum\pst@cntg=0#1\relax\@nil +\afterassignment\pst@@@@checknum\pst@cnth=1#2\relax\@nil} +\def\pst@@@@checknum#1\relax\@nil{% +\ifx\@nil#1\@nil\else\let\pst@num\z@\fi} +\def\pst@getnumii#1 #2 #3\@nil{% +\pst@checknum{#1}\pst@tempg +\pst@checknum{#2}\pst@temph} +\def\pst@getnumiii#1 #2 #3 #4\@nil{% +\pst@checknum{#1}\pst@tempg +\pst@checknum{#2}\pst@temph +\pst@checknum{#3}\pst@tempi} +\def\pst@getnumiv#1 #2 #3 #4 #5\@nil{% +\pst@checknum{#1}\pst@tempg +\pst@checknum{#2}\pst@temph +\pst@checknum{#3}\pst@tempi +\pst@checknum{#4}\pst@tempj} +\def\pst@getdimnum#1 #2 #3\@nil{% +\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{% +\edef\pst@tempg{#1}% +\ifx\pst@tempg\@none +\def#2{}% +\else +\pst@expandafter\pst@getnumii{#1 #1} {} {} {}\@nil +\ifdim\pst@tempg\p@=\z@ +\@pstrickserr{Bad scaling argument `#1'}\@ehpa +\def#2{}% +\else +\ifdim\pst@temph\p@=\z@ +\@pstrickserr{Bad scaling argument `#1'}\@ehpa +\def#2{}% +\else +\edef#2{\pst@tempg\space \pst@temph\space scale }% +\fi +\fi +\fi} +% DG/SR modification end +\def\pst@getint#1#2{% +\pst@cntg=#1\relax +\edef#2{\the\pst@cntg\space}} +\begingroup +\catcode`\{=12 +\catcode`\}=12 +\catcode`\[=1 +\catcode`\]=2 +\gdef\pslbrace[{ ] +\gdef\psrbrace[} ] +\endgroup +\def\@newcolor#1#2{% +\expandafter\edef\csname #1\endcsname{\noexpand\pst@color{#2}}% +\expandafter\edef\csname color@#1\endcsname{#2}% +\ignorespaces} +\def\pst@color#1{% +\def\pst@currentcolor{#1}\pstVerb{#1}\aftergroup\pst@endcolor} +\def\pst@endcolor{\pstVerb{\pst@currentcolor}} +\def\pst@currentcolor{0 setgray} +\def\altcolormode{% +\def\pst@color##1{% +\pstVerb{gsave ##1}\aftergroup\pst@endcolor}% +\def\pst@endcolor{\pstVerb{\pst@grestore}}} +\def\pst@grestore{% +currentpoint +matrix currentmatrix +currentfont +grestore +setfont +setmatrix +moveto} +\def\pst@usecolor#1{\csname color@#1\endcsname\space} +\def\newgray#1#2{% +\pst@checknum{#2}\pst@tempg +\@newcolor{#1}{\pst@tempg setgray}} +\def\newrgbcolor#1#2{% +\pst@expandafter\pst@getnumiii{#2} {} {} {} {}\@nil +\@newcolor{#1}{\pst@tempg \pst@temph \pst@tempi setrgbcolor}} +\def\newhsbcolor#1#2{% +\pst@expandafter\pst@getnumiii{#2} {} {} {} {}\@nil +\@newcolor{#1}{\pst@tempg \pst@temph \pst@tempi sethsbcolor}} +\def\newcmykcolor#1#2{% +\pst@expandafter\pst@getnumiv{#2} {} {} {} {} {}\@nil +\@newcolor{#1}{\pst@tempg \pst@temph \pst@tempi \pst@tempj setcmykcolor}} +\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} +\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{% +\@ifundefined{pscs@#1}% +{\@pstrickserr{Custom style `#1' undefined}\@ehpa}% +{\@nameuse{pscs@#1}}} +\def\newpsstyle#1#2{\@namedef{pscs@#1}{\psset{#2}}} +\def\@none{none} +\def\pst@getcolor#1#2{% +\@ifundefined{color@#1}% +{\@pstrickserr{Color `#1' not defined}\@eha}% +{\edef#2{#1}}} +\newdimen\psunit \psunit 1cm +\newdimen\psxunit \psxunit 1cm +\newdimen\psyunit \psyunit 1cm +\let\psrunit\psunit +\def\pstunit@off{\let\@psunit\ignorespaces\ignorespaces} +\def\pssetlength#1#2{% +\let\@psunit\psunit +\afterassignment\pstunit@off +#1 #2\@psunit} +\def\psaddtolength#1#2{% +\let\@psunit\psunit +\afterassignment\pstunit@off +\advance#1 #2\@psunit} +\def\pssetxlength#1#2{% +\let\@psunit\psxunit +\afterassignment\pstunit@off +#1 #2\@psunit} +\def\pssetylength#1#2{% +\let\@psunit\psyunit +\afterassignment\pstunit@off +#1 #2\@psunit} +\def\psset@unit#1{% +\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}} +\def\pst@getlength#1#2{% +\pssetlength\pst@dimg{#1}% +\edef#2{\pst@number\pst@dimg}} +\def\pst@@getlength#1#2{% +\pssetlength\pst@dimg{#1}% +\edef#2{\number\pst@dimg sp}} +\def\pst@getcoor#1#2{\pst@@getcoor{#1}\let#2\pst@coor} +\def\pst@coor{0 0 } +\def\pst@getcoors#1#2{% +\def\pst@aftercoors{\addto@pscode{#1 \pst@coors }#2}% +\def\pst@coors{}% +\pst@@getcoors} +\def\pst@@getcoors(#1){% +\pst@@getcoor{#1}% +\edef\pst@coors{\pst@coor\pst@coors}% +\@ifnextchar({\pst@@getcoors}{\pst@aftercoors}} +\def\pst@getangle#1#2{\pst@@getangle{#1}\let#2\pst@angle} +\def\pst@angle{0 } +\def\cartesian@coor#1,#2,#3\@nil{% +\pssetxlength\pst@dimg{#1}% +\pssetylength\pst@dimh{#2}% +\edef\pst@coor{\pst@number\pst@dimg \pst@number\pst@dimh}} +\def\NormalCoor{% +\def\pst@@getcoor##1{\pst@expandafter\cartesian@coor{##1},\relax,\@nil}% +\def\pst@@getangle##1{% +\pst@checknum{##1}\pst@angle +\edef\pst@angle{\pst@angle \pst@angleunit}}% +\def\psput@##1{\pst@@getcoor{##1}\leavevmode\psput@cartesian}} +\NormalCoor +\def\degrees{\@ifnextchar[{\@degrees}{\def\pst@angleunit{}}} +\def\@degrees[#1]{% +\pst@checknum{#1}\pst@tempg +\edef\pst@angleunit{360 \pst@tempg div mul }% +\ignorespaces} +\def\radians{\def\pst@angleunit{57.2956 mul }} +\def\pst@angleunit{} +\def\SpecialCoor{% +\def\pst@@getcoor##1{% +\begingroup +\pst@activecoor +\xdef\pst@tempg{##1}% +\endgroup +\expandafter\special@coor\pst@tempg||\@nil}% +\def\pst@@getangle##1{% +\begingroup +\pst@activecoor +\xdef\pst@tempg{##1}% +\endgroup +\expandafter\special@angle\pst@tempg\@empty)\@nil}% +\def\psput@##1{\pst@@getcoor{##1}\leavevmode\psput@special}} +\begingroup +\catcode`\|=13 +\catcode`\;=13 +\catcode`\!=13 +\gdef\pst@activecoor{% +\def|{\string|}% +\def;{\string;}% +\def!{\string!}} +\endgroup +\def\special@coor#1|#2|#3\@nil{% +\ifx#3|\relax +\mixed@coor{#1}{#2}% +\else +\special@@coor#1;;\@nil +\fi} +\def\special@@coor#1{% +\ifcat#1a\relax +\def\next{\node@coor#1}% +\else +\ifx#1[\relax +\def\next{\Node@coor[}% +\else +\ifx#1!\relax +\def\next{\raw@coor}% +\else +\def\next{\special@@@coor#1}% +\fi +\fi +\fi +\next} +\def\special@@@coor#1;#2;#3\@nil{% +\ifx#3;\relax +\polar@coor{#1}{#2}% +\else +\cartesian@coor#1,\relax,\@nil +\fi} +\def\mixed@coor#1#2{% +\begingroup +% DG/SR modification begin - Oct. 27, 1997 - Patch 6 +%\specialcoor@ii#1;;\@nil +%\let\pst@tempa\pst@coor +%\specialcoor@ii#2;;\@nil +\special@@coor#1;;\@nil +\let\pst@tempa\pst@coor +\special@@coor#2;;\@nil +% DG/SR modification end +\xdef\pst@tempg{\pst@tempa pop \pst@coor exch pop }% +\endgroup +\let\pst@coor\pst@tempg} +\def\polar@coor#1#2{% +\pssetlength\pst@dimg{#1}% +\pst@@getangle{#2}% +\edef\pst@coor{\pst@number\pst@dimg \pst@angle \tx@PtoC}} +\def\raw@coor#1;#2\@nil{% +\edef\pst@coor{% +#1 \pst@number\psyunit mul exch \pst@number\psxunit mul exch }} +\def\node@coor#1\@nil{% +\@pstrickserr{You must load `pst-node.tex' to use node coordinates.}\@ehps +\def\pst@coor{0 0 }} +\def\Node@coor{\node@coor} +\def\special@angle#1#2)#3\@nil{% +\ifx!#1\relax +\edef\pst@angle{#2 \pst@angleunit}% +\else +\ifx(#1\relax +\pst@@getcoor{#2}% +\edef\pst@angle{\pst@coor exch \tx@Atan}% +\else +\pst@checknum{#1#2}\pst@angle +\edef\pst@angle{\pst@angle \pst@angleunit}% +\fi +\fi} +\def\Cartesian{% +\def\cartesian@coor##1,##2,##3\@nil{% +\pssetxlength\pst@dimg{##1}% +\pssetylength\pst@dimh{##2}% +\edef\pst@coor{\pst@number\pst@dimg \pst@number\pst@dimh}}% +\@ifnextchar({\Cartesian@}{}} +\def\Cartesian@(#1,#2){% +\pssetxlength\psxunit{#1}% +\pssetylength\psyunit{#2}% +\ignorespaces} +\def\Polar{% +\def\psput@cartesian{\psput@special}% +\def\cartesian@coor##1,##2,##3\@nil{\polar@coor{##1}{##2}}}% +\def\psset@origin#1{% +\pst@@getcoor{#1}% +\edef\psk@origin{\pst@coor \tx@NET }} +\def\psk@origin{} +\newif\ifswapaxes +\def\psset@swapaxes#1{% +\@nameuse{@pst#1}% +\if@pst +\def\psk@swapaxes{-90 rotate -1 1 scale }% +\else +\def\psk@swapaxes{}% +\fi} +\psset@swapaxes{false} +\newif\ifshowpoints +\def\psset@showpoints#1{\@nameuse{showpoints#1}} +\psset@showpoints{false} +\let\pst@setrepeatarrowsflag\relax +\def\psset@border#1{% +\pst@getlength{#1}\psk@border +\pst@setrepeatarrowsflag} +\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} +\def\pst@repeatarrowsflag{\z@} +\def\pst@setrepeatarrowsflag{% +\edef\pst@repeatarrowsflag{% +\ifdim\psk@border\p@>\z@ 1\else\ifpsdoubleline 1\else +\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{0 setlinecap stroke } +\def\pst@missing{% +\z@ +\@pstrickserr{Missing number or dimension. 0 substituted}\@ehpa} +\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} +\newif\ifpsdashadjust +\def\psset@dashadjust#1{\@nameuse{psdashadjust#1}} +\psset@dashadjust{true} +\def\psls@dashed{% +\ifpsdashadjust +\psk@dash \pst@linetype\space \tx@DashLine +\else +[ \psk@dash ] 0 setdash stroke +\fi} +\def\tx@DashLine{DashLine } +\def\psset@dotsep#1{\pst@getlength{#1}\psk@dotsep} +\psset@dotsep{3pt} +\def\psls@dotted{% +\ifpsdashadjust +\psk@dotsep \pst@linetype\space \tx@DotLine +\else +[ 0 \psk@dotsep CLW add ] 0 setdash 1 setlinecap stroke +\fi} +\def\tx@DotLine{DotLine } +\def\psset@linestyle#1{% +\@ifundefined{psls@#1}% +{\@pstrickserr{Line style `#1' not defined}\@eha}% +{\edef\pslinestyle{#1}}} +\psset@linestyle{solid} +\def\psfs@none{} +\def\psset@fillcolor#1{\pst@getcolor{#1}\psfillcolor} +\psset@fillcolor{white} +\def\psfs@solid{\pst@fill{\pst@usecolor\psfillcolor fill}} +\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} +\def\pst@linefill{% +\psk@hatchangle rotate +\psk@hatchwidth SLW +\pst@usecolor\pshatchcolor +\psk@hatchsep \tx@LineFill} +\def\psfs@vlines{\pst@fill\pst@linefill} +\@namedef{psfs@vlines*}{\psfs@solid \psfs@vlines} +\def\psfs@hlines{\pst@fill{90 rotate \pst@linefill}} +\@namedef{psfs@hlines*}{\psfs@solid \psfs@hlines} +\def\psfs@crosshatch{\psfs@vlines \psfs@hlines} +\@namedef{psfs@crosshatch*}{\psfs@solid \psfs@vlines \psfs@hlines} +\def\tx@LineFill{LineFill } +\def\psset@fillstyle#1{% +\edef\pst@tempg{#1}\def\pst@temph{none}% +\ifx\pst@tempg\pst@temph +\let\psk@fillstyle\relax +\else +\@ifundefined{psfs@#1}% +{\@pstrickserr{Undefined fill style: `#1'}\@eha}% +{\edef\psk@fillstyle{\expandafter\noexpand\csname psfs@#1\endcsname}}% +\fi} +\def\psset@addfillstyle#1{% +\@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} +\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\next##1,#1-##2,##3\@nil{\def\pst@tempg{##2}}% +\expandafter\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{,<->,<<->>,>-<,>>-<<,(-),[-]} +\begingroup +\catcode`\<=13 +\catcode`\>=13 +\catcode`\|=13 +\gdef\pst@activearrows{\def<{\string<}\def>{\string>}\def|{\string|}} +\endgroup +\def\tx@BeginArrow{BeginArrow } +\def\tx@EndArrow{EndArrow } +\def\psset@arrowscale#1{\pst@getscale{#1}\psk@arrowscale} +\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{Arrow } +\@namedef{psas@>}{% +false \psk@arrowinset \psk@arrowlength \psk@arrowsize \tx@Arrow} +\@namedef{psas@>>}{% +false \psk@arrowinset \psk@arrowlength \psk@arrowsize \tx@Arrow +0 h T +gsave +newpath +false \psk@arrowinset \psk@arrowlength \psk@arrowsize \tx@Arrow +CP +grestore +CP newpath moveto +2 copy +L +stroke +moveto} +\@namedef{psas@<}{% +true \psk@arrowinset \psk@arrowlength \psk@arrowsize \tx@Arrow} +\@namedef{psas@<<}{% +true \psk@arrowinset \psk@arrowlength \psk@arrowsize \tx@Arrow +CP newpath moveto 0 a neg L stroke 0 h neg T +false \psk@arrowinset \psk@arrowlength \psk@arrowsize \tx@Arrow} +\def\psset@tbarsize#1{% +\pst@expandafter\pst@getdimnum{#1} 0 {} {}\@nil +\edef\psk@tbarsize{\pst@number\pst@dimg \pst@tempg}} +\psset@tbarsize{2pt 5} +\def\tx@Tbar{Tbar } +\@namedef{psas@|}{\psk@tbarsize \tx@Tbar} +\@namedef{psas@|*}{0 CLW -2 div T \psk@tbarsize \tx@Tbar} +\@namedef{psas@>|}{% +\psk@tbarsize \tx@Tbar +0 CLW 2 div T +newpath +false \psk@arrowinset \psk@arrowlength \psk@arrowsize \tx@Arrow} +\@namedef{psas@>|*}{% +0 CLW -2 div T +\psk@tbarsize \tx@Tbar +0 CLW 2 div T +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} +\def\tx@Bracket{Bracket } +\@namedef{psas@]}{\psk@bracketlength \psk@tbarsize \tx@Bracket} +\def\psset@rbracketlength#1{\pst@checknum{#1}\psk@rbracketlength} +\psset@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 +0 CLW 2 div L +stroke +0 0 moveto} +\def\psas@{} +\psset@arrows{-} +\def\tx@SD{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 +\def\pst@par{#1}% +\else +\expandafter\def\expandafter\pst@par\expandafter{\pst@par,#1}% +\fi} +\def\addbefore@par#1{% +\ifx\pst@par\@empty +\def\pst@par{#1}% +\else +\toks@{#1}% +\pst@toks\expandafter{\pst@par}% +\edef\pst@par{\the\toks@,\the\pst@toks}% +\fi} +\def\use@par{% +\ifx\pst@par\@empty\else +\expandafter\@psset\pst@par,\@nil +\def\pst@par{}% +\fi} +\def\pst@object#1{% +\pst@ifstar{% +\@ifnextchar[% +{\pst@@object{#1}}% +{\def\pst@par{}\@nameuse{#1@i}}}} +\def\pst@@object#1[#2]{% +\def\pst@par{#2}% +\@ifnextchar+{\@nameuse{#1@i}}{\@nameuse{#1@i}}} +\def\newpsobject#1#2#3{% +\@ifundefined{#2@i}% +{\@pstrickserr{Graphics object `#2' not defined}\@eha}{% +\@namedef{#1}{\pst@object{#1}}% +\@namedef{#1@i}{\addbefore@par{#3}\@nameuse{#2@i}}}% +\ignorespaces} +\def\pst@getarrows#1{\@ifnextchar({#1}{\pst@@getarrows{#1}}} +\def\pst@@getarrows#1#2{\addto@par{arrows=#2}#1} +\def\begin@ClosedObj{% +\leavevmode +\pst@killglue +\begingroup +\use@par +\solid@star +\ifpsdoubleline \pst@setdoublesep \fi +\init@pscode} +\def\end@ClosedObj{% +\ifpsshadow \pst@closedshadow \fi +\ifdim\psk@border\p@>\z@ \pst@addborder \fi +\psk@fillstyle +\pst@stroke +\ifpsdoubleline \pst@doublestroke \fi +\ifshowpoints +% DG modification begin - Mar. 4, 1995 +%\addto@pscode{Points aload length 2 div cvi /N ED \psdots@iii}% +\pst@OpenShowPoints +% DG modification end +\fi +\use@pscode +\endgroup +\ignorespaces} +\def\begin@OpenObj{% +\begin@ClosedObj +\let\pst@linetype\pst@arrowtype +\pst@addarrowdef} +\def\begin@AltOpenObj{% +\begin@ClosedObj +\def\pst@repeatarrowsflag{\z@}% +\def\pst@linetype{0}} +\def\end@OpenObj{% +\ifpsshadow \pst@openshadow \fi +\ifdim\psk@border\p@>\z@ \pst@addborder \fi +\psk@fillstyle +\pst@stroke +\ifpsdoubleline \pst@doublestroke \fi +\ifnum\pst@repeatarrowsflag>\z@ \pst@repeatarrows \fi +\ifshowpoints \pst@OpenShowPoints \fi +\use@pscode +\endgroup +\ignorespaces} +\def\begin@SpecialObj{% +\leavevmode +\pst@killglue +\begingroup +\use@par +\init@pscode} +\def\end@SpecialObj{% +\use@pscode +\endgroup +\ignorespaces} +\def\pst@code{}% +\def\init@pscode{% +\addto@pscode{% +\pst@number\pslinewidth SLW +\pst@usecolor\pslinecolor}} +\def\addto@pscode#1{\xdef\pst@code{\pst@code#1\space}} +\def\use@pscode{% +\pstverb{% +\pst@dict +\tx@STP +\pst@newpath +\psk@origin +\psk@swapaxes +\pst@code +end}% +\gdef\pst@code{}} +\def\pst@newpath{newpath } +\def\pst@@killglue{\unskip\ifdim\lastskip>\z@\expandafter\pst@@killglue\fi} +\def\KillGlue{\let\pst@killglue\pst@@killglue} +\def\DontKillGlue{\let\pst@killglue\relax} +\DontKillGlue +\def\solid@star{% +\if@star +\pslinewidth=\z@ +\psdoublelinefalse +\def\pslinestyle{none}% +\def\psk@fillstyle{\psfs@solid}% +\let\psfillcolor\pslinecolor +\fi} +\def\pst@setdoublesep{% +\pst@getlength\psdoublesep\psdoublesep +\pslinewidth=2\pslinewidth +\advance\pslinewidth\psdoublesep\p@ +\let\pst@setdoublesep\relax} +\def\tx@Shadow{Shadow } +\def\pst@closedshadow{% +\addto@pscode{% +gsave +\psk@shadowsize \psk@shadowangle \tx@PtoC +\tx@Shadow +\pst@usecolor\psshadowcolor +gsave fill grestore +stroke +grestore +gsave +\pst@usecolor\psfillcolor +gsave fill grestore +stroke +grestore}} +\def\pst@openshadow{% +\addto@pscode{% +gsave +\psk@shadowsize \psk@shadowangle \tx@PtoC +\tx@Shadow +\pst@usecolor\psshadowcolor +\ifx\psk@fillstyle\relax\else +gsave fill grestore +\fi +stroke}% +\pst@repeatarrows +\addto@pscode{grestore} +\ifx\psk@fillstyle\relax\else +\addto@pscode{% +gsave +\pst@usecolor\psfillcolor +gsave fill grestore +stroke +grestore} +\fi} +\def\pst@addborder{% +\addto@pscode{% +gsave +\psk@border 2 mul +CLW add SLW +\pst@usecolor\psbordercolor +stroke +grestore}} +\def\pst@stroke{% +\ifx\pslinestyle\@none\else +\addto@pscode{% +gsave +\pst@number\pslinewidth SLW +\pst@usecolor\pslinecolor +\@nameuse{psls@\pslinestyle} +grestore}% +\fi} +\def\pst@fill#1{\addto@pscode{gsave #1 grestore}}% +\def\pst@doublestroke{% +\addto@pscode{% +gsave +\psdoublesep SLW +\pst@usecolor\psdoublecolor +stroke +grestore}} +\def\pst@arrowtype{% +\ifx\psk@arrowB\@empty 0 \else -2 \fi +\ifx\psk@arrowA\@empty 0 \else -1 \fi +add} +\def\pst@addarrowdef{% +\addto@pscode{% +/ArrowA { +\ifx\psk@arrowA\@empty +\pst@oplineto +\else +\pst@arrowdef{A} +moveto +\fi +} def +/ArrowB { +\ifx\psk@arrowB\@empty \else \pst@arrowdef{B} \fi +} def}} +\def\pst@arrowdef#1{% +\ifnum\pst@repeatarrowsflag>\z@ +/Arrow#1c [ 6 2 roll ] cvx def Arrow#1c +\fi +\tx@BeginArrow +\psk@arrowscale +\@nameuse{psas@\@nameuse{psk@arrow#1}} +\tx@EndArrow} +\def\pst@repeatarrows{% +\addto@pscode{% +gsave +\ifx\psk@arrowA\@empty\else +ArrowAc ArrowA pop pop +\fi +\ifx\psk@arrowB\@empty\else +ArrowBc ArrowB pop pop pop pop +\fi +grestore}} +\def\pst@OpenShowPoints{% +\addto@pscode{% +gsave +\psk@dotsize +\@nameuse{psds@\psk@dotstyle} +newpath +Points aload length 2 div 2 sub cvi /N ED +N 0 ge +{ \ifx\psk@arrowA\@empty +Dot +\else +pop pop +\fi +N { Dot } repeat +\ifx\psk@arrowB\@empty +Dot +\else +pop pop +\fi } +{ N 2 mul { pop } repeat } +ifelse +grestore}} +\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 +\def\begin@OpenObj{\begin@CustomObj\pst@addarrowdef}% +\let\end@OpenObj\endgroup +\let\begin@AltOpenObj\begin@CustomObj +\def\begin@SpecialObj{% +\begingroup +\pst@misplaced{special graphics object}% +\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\begin@CustomObj{% +\begingroup +\use@par +\addto@pscode{% +\pst@number\pslinewidth SLW +\pst@usecolor\pslinecolor}} +\def\pst@oplineto{moveto } +\def\pst@cp{} +\def\pst@optcp#1#2{} +\def\psset@liftpen#1{} +\def\psset@@liftpen#1{% +\ifcase#1\relax +\def\psk@liftpen{\z@}% +\def\pst@cp{/currentpoint load stopped pop }% +\def\pst@oplineto{/lineto load stopped { moveto } if }% +\or +\def\psk@liftpen{1}% +\def\pst@cp{}% +\def\pst@oplineto{/lineto load stopped { moveto } if }% +\or +\def\psk@liftpen{2}% +\def\pst@cp{}% +\def\pst@oplineto{moveto }% +\fi} +\psset@liftpen{0} +\def\psk@liftpen{-1} +\def\psset@linetype#1{% +\pst@getint{#1}\pslinetype +\ifnum\pst@dimg<-3 +\@pstrickserr{linetype must be greater than -3}\@ehpa +\def\pslinetype{0}% +\fi} +\psset@linetype{0} +\def\caddto@pscode#1{% +\@pstrickserr{Command can only be used in \string\pscustom}\@ehpa} +\let\cuse@par\caddto@pscode +\def\tx@MSave{% +/msavemtrx +[ tx@Dict /msavemtrx known { msavemtrx aload pop } if CM ] +def } +\def\tx@MRestore{% +tx@Dict /msavemtrx known { length 0 gt } { false } ifelse +{ /msavematrx [ msavematrx aload pop setmatrix ] def } +if } +\newtoks\pst@customdefs +\pst@customdefs{% +\def\newpath{\addto@pscode{newpath}}% +\def\moveto(#1){\pst@@getcoor{#1}\addto@pscode{\pst@coor moveto}}% +\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}}% +\def\mrestore{\addto@pscode{\tx@MRestore}}% +\def\swapaxes{\addto@pscode{-90 rotate -1 1 scale}}% +\def\stroke{\pst@object{stroke}}% +\def\fill{\pst@object{fill}}% +\def\openshadow{\pst@object{openshadow}}% +\def\closedshadow{\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}}% +\def\rcurveto{\pst@threecoor{rcurveto}}% +\def\code#1{\addto@pscode{#1}}% +\def\coor(#1){\pst@@getcoor{#1}\addto@pscode\pst@coor\@ifnextchar({\coor}{}}% +\def\rcoor{\pst@getcoors{}{}}% +\def\dim#1{\pssetlength\pst@dimg{#1}\addto@pscode{\pst@number\pst@dimg}}% +\def\setcolor#1{% +\@ifundefined{color@#1}{}{\addto@pscode{\use@color{#1}}}}% +\def\arrows#1{{\psset@arrows{#1}\pst@addarrowdef}}% +\let\file\pst@rawfile +} % END \pst@customdefs +\def\closedshadow@i{\cuse@par\pst@closedshadow} +\def\openshadow@i{\cuse@par\pst@openshadow} +\def\stroke@i{\cuse@par\pst@stroke}% +\def\fill@i{\cuse@par\psk@fillstyle}% +\def\pst@onecoor#1(#2){% +\pst@@getcoor{#2}% +\addto@pscode{\pst@coor #1}} +\def\pst@threecoor#1(#2)#3(#4)#5(#6){% +\begingroup +\pst@getcoor{#2}\pst@tempa +\pst@getcoor{#4}\pst@tempb +% DG/SR modification begin - Aug. 4, 1999 - Patch 11 +%\pst@getcoor{#6}\pst@tembc +\pst@getcoor{#6}\pst@tempc +% DG/SR modification end +\addto@pscode{\pst@tempa \pst@tempb \pst@tempc #1}% +\endgroup} +\def\pst@rawfile#1{% +\begingroup +\def\do##1{\catcode`##1=12\relax}" +\dospecials +\catcode`\%=14 +\pst@@rawfile{#1}% +\endgroup} +\def\pst@@rawfile#1{% +\immediate\openin1 #1 +\ifeof1 +\@pstrickserr{File `#1' not found}\@ehpa +\else +\immediate\read1 to \pst@tempg +\loop +\ifeof1 \@pstfalse\else\@psttrue\fi +\if@pst +\addto@pscode\pst@tempg +\immediate\read1 to \pst@tempg +\repeat +\fi +\immediate\closein1\relax} +\def\tx@NArray{NArray } +\def\tx@NArray{NArray } +\def\tx@Line{Line } +\def\tx@Arcto{Arcto } +\def\tx@CheckClosed{CheckClosed } +\def\tx@Polygon{Polygon } +\def\psset@gangle#1{\pst@getangle{#1}\psk@gangle} +\psset@gangle{0} +\def\tx@Diamond{Diamond } +\def\psdiamond{\pst@object{psdiamond}} +\def\psdiamond@i(#1){% +\@ifnextchar({\psdiamond@ii(#1)}{\psdiamond@ii(0,0)(#1)}} +\def\psdiamond@ii(#1)(#2){% +\begin@ClosedObj +\pst@getcoor{#1}\pst@tempa +\pst@getcoor{#2}\pst@tempb +\addto@pscode{% +\psline@iii +pop +\psk@dimen +\pst@tempb +\psk@gangle +\pst@tempa +\tx@Diamond}% +\def\pst@linetype{4}% +\end@ClosedObj} +\def\tx@Triangle{Triangle } +\def\pstriangle{\pst@object{pstriangle}} +\def\pstriangle@i(#1){% +\@ifnextchar({\pstriangle@ii(#1)}{\pstriangle@ii(0,0)(#1)}} +\def\pstriangle@ii(#1)(#2){% +\begin@ClosedObj +\pst@getcoor{#1}\pst@tempa +\pst@getcoor{#2}\pst@tempb +\addto@pscode{% +\psline@iii +pop +\psk@dimen +\pst@tempb +\psk@gangle +\pst@tempa +\tx@Triangle}% +\def\pst@linetype{2}% +\end@ClosedObj} +\def\tx@CCA{CCA } +\def\tx@CCA{CCA } +\def\tx@CC{CC } +\def\tx@IC{IC } +\def\tx@BOC{BOC } +\def\tx@NC{NC } +\def\tx@EOC{EOC } +\def\tx@BAC{BAC } +\def\tx@NAC{NAC } +\def\tx@EAC{EAC } +\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} +\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{\pst@object{pscurve}} +\def\pscurve@i{% +\pst@getarrows{% +\begin@OpenObj +\pst@getcoors[\pscurve@ii}} +\def\pscurve@ii{% +\addto@pscode{% +\pst@cp +\psk@curvature\space /c ED /b ED /a ED +\ifshowpoints true \else false \fi +\tx@OpenCurve}% +\end@OpenObj} +\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{\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{% +\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 +\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} +\psset@dotangle{0} +\def\pst@getdotsize{% +\pst@dimg=\psk@@@dotsize\pslinewidth +\advance\pst@dimg\psk@@dotsize\p@ +\pst@dimh=\psk@ydotscale\pst@dimg +\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{\pst@object{psdot}} +\def\psdot@i{\@ifnextchar({\psdot@ii}{\psdot@ii(\z@,\z@)}} +\def\psdot@ii(#1){% +\begin@SpecialObj +\pst@@getcoor{#1}% +\addto@pscode{% +\psk@dotsize +\@nameuse{psds@\psk@dotstyle}% +\pst@coor Dot}% +\end@SpecialObj} +\def\psdots{\pst@object{psdots}} +\def\psdots@i{% +\begin@SpecialObj +\pst@getcoors[\psdots@ii} +\def\psdots@ii{% +\addto@pscode{false \tx@NArray \psdots@iii}% +\end@SpecialObj} +\def\psdots@iii{% +\psk@dotsize +\@nameuse{psds@\psk@dotstyle} +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 +\def\tx@SQ{SQ } +\def\tx@ST{ST } +\def\tx@SP{SP } +\def\pst@gdot#1{/Dot { gsave T \psk@dotangle \psk@dotscale #1 grestore } def } +\@namedef{psds@*}{\pst@gdot{0 0 DS \tx@SD}} +\@namedef{psds@o}{% +/r2 DS CLW sub def +\pst@gdot{0 0 DS \tx@SD \pst@usecolor\psfillcolor 0 0 r2 \tx@SD}} +\@namedef{psds@square*}{% +/r1 DS .886 mul def +\pst@gdot{r1 \tx@SQ}} +\@namedef{psds@square}{% +/r1 DS .886 mul def /r2 r1 CLW sub def +\pst@gdot{r1 \tx@SQ \pst@usecolor\psfillcolor r2 \tx@SQ}} +\@namedef{psds@triangle*}{% +/y1 DS .778 mul neg def /x1 y1 1.732 mul neg def +\pst@gdot{x1 y1 \tx@ST}} +\@namedef{psds@triangle}{% +/y1 DS .778 mul neg def /x1 y1 1.732 mul neg def +/y2 y1 CLW add def /x2 y2 1.732 mul neg def +\pst@gdot{x1 y1 \tx@ST \pst@usecolor\psfillcolor x2 y2 \tx@ST}} +\@namedef{psds@pentagon*}{% +/r1 DS 1.149 mul def +\pst@gdot{r1 \tx@SP}} +\@namedef{psds@pentagon}{% +DS .93 mul dup 1.236 mul /r1 ED CLW sub 1.236 mul /r2 ED +\pst@gdot{r1 \tx@SP \pst@usecolor\psfillcolor r2 \tx@SP}} +\@namedef{psds@+}{% +/DS DS 1.253 mul def +\pst@gdot{DS 0 moveto DS neg 0 L stroke 0 DS moveto 0 DS neg L stroke}} +\@namedef{psds@|}{% +\psk@tbarsize CLW mul add 2 div /DS ED +\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{*} +\def\tx@FontDot{FontDot } +\def\newpsfontdot#1[#2]#3#4{% +\@namedef{psds@#1}{% +/#3 \psk@@dotangle [#2] \tx@FontDot +% DG/SR modification begin - Dec. 12, 1999 - Patch 14 +%/Dot { moveto #4 show } bind def }} +/Dot { moveto gsave \psk@dotscale #4 show grestore } bind def }} +% DG/SR modification end +\def\newpsfontdotH#1[#2]#3#4#5{% +\@namedef{psds@#1}{% +/#3 \psk@@dotangle [#2] \tx@FontDot +/Dot { +moveto +\iftrue +% DG/SR modification begin - Dec. 23, 1999 - Patch 14 +%gsave \pst@usecolor\psfillcolor #5 show grestore +%\fi +%#4 show +gsave \psk@dotscale \pst@usecolor\psfillcolor #5 show grestore +\fi +gsave \psk@dotscale #4 show grestore +% DG/SR modification end +} bind def }} +\pstheader{pst-dots.pro} +\newpsfontdot{*}% +[1.0 0.0 0.0 1.0 0.0 0.0]{PSTricksDotFont}{(b)} +\newpsfontdotH{o}% +[1.0 0.0 0.0 1.0 0.0 0.0]{PSTricksDotFont}{(c)}{(b)} +\newpsfontdotH{Bo}% +[1.0 0.0 0.0 1.0 0.0 0.0]{PSTricksDotFont}{(C)}{(b)} +\newpsfontdotH{triangle}% +[1.0 0.0 0.0 1.0 0.0 0.0]{PSTricksDotFont}{(t)}{(u)} +\newpsfontdotH{Btriangle}% +[1.0 0.0 0.0 1.0 0.0 0.0]{PSTricksDotFont}{(T)}{(u)} +\newpsfontdot{triangle*}% +[1.0 0.0 0.0 1.0 0.0 0.0]{PSTricksDotFont}{(u)} +\newpsfontdotH{square}% +[1.0 0.0 0.0 1.0 0.0 0.0]{PSTricksDotFont}{(s)}{(r)} +\newpsfontdotH{Bsquare}% +[1.0 0.0 0.0 1.0 0.0 0.0]{PSTricksDotFont}{(S)}{(r)} +\newpsfontdot{square*}% +[1.0 0.0 0.0 1.0 0.0 0.0]{PSTricksDotFont}{(r)} +\newpsfontdotH{pentagon}% +[1.0 0.0 0.0 1.0 0.0 0.0]{PSTricksDotFont}{(p)}{(q)} +\newpsfontdotH{Bpentagon}% +[1.0 0.0 0.0 1.0 0.0 0.0]{PSTricksDotFont}{(P)}{(q)} +\newpsfontdot{pentagon*}% +[1.0 0.0 0.0 1.0 0.0 0.0]{PSTricksDotFont}{(q)} +% DG/SR modification begin - Mar. 18, 1997 and Dec. 16, 1999 - Patch 14 +%\newpsfontdot{diamond*}% +%[1.9 0.0 0.0 1.9 -0.4598 -0.70775]{Symbol}{<E0>} +%\newpsfontdot{diamond}% +%[2.3 0.0 0.0 2.3 -0.8533 -0.5336]{Symbol}{<A8>} +% D.G. modification begin - Jan. 17, 2000 +\newpsfontdotH{diamond}% +[1.0 0.0 0.0 1.0 0.0 0.0]{PSTricksDotFont}{(d)}{(l)} +\newpsfontdotH{Bdiamond}% +[1.0 0.0 0.0 1.0 0.0 0.0]{PSTricksDotFont}{(D)}{(l)} +\newpsfontdot{diamond*}% +[1.0 0.0 0.0 1.0 0.0 0.0]{PSTricksDotFont}{(l)} +% DG/SR modification end +\newpsfontdot{oplus}% +[1.44928 0.0 0.0 1.44928 -0.562319 -0.478261]{Symbol}{<C5>} +\newpsfontdot{otimes}% +[1.44928 0.0 0.0 1.44928 -0.562319 -0.475362]{Symbol}{<C4>} +\newpsfontdot{x}% +[1.8 0.0 0.0 1.8 -0.495 -0.4788]{Symbol}{<B4>} +\newpsfontdot{+}% +[2.3 0.0 0.0 2.3 -0.6486 -0.5819]{Times-Roman}{<2B>} +\newpsfontdot{asterisk}% +[2.43309 0.0 0.0 2.43309 -0.609489 -1.14477]{Times-Roman}{<2A>} +\newpsfontdot{B+}% +[2.3 0.0 0.0 2.3 -0.6555 -0.5819]{Times-Bold}{<2B>} +\newpsfontdot{Basterisk}% +[2.29358 0.0 0.0 2.29358 -0.576835 -1.08486]{Times-Bold}{<2A>} +\newpsfontdot{|}% +% DG/SR modification begin - Oct. 27, 1997 - Patch 7 +%[1.98413 0.0 0.0 1.98413 -0.258929 -0.712302]{Helvetica}{(|)} +[1.98413 0.0 0.0 1.38 -0.258929 -0.5]{Helvetica}{(|)} +% DG/SR modification end +\newpsfontdot{B|}% +% DG/SR modification begin - Oct. 27, 1997 - Patch 7 +%[1.98413 0.0 0.0 1.98413 -0.277778 -0.78302]{Helvetica-Bold}{(|)} +[1.98413 0.0 0.0 1.38 -0.277778 -0.5]{Helvetica-Bold}{(|)} +% DG/SR modification end +\iffalse +\newpsfontdot{*}% +[2.77778 0.0 0.0 2.77778 -0.638889 -0.813889]{Symbol}{<B7>} +\newpsfontdot{o}% +[3.33333 0.0 0.0 3.33333 -0.666667 -1.78167]{Symbol}{<B0>} +\newpsfontdot{Bo}% +[4.69484 0.0 0.0 4.69484 -0.78169 -2.97418]{Times-Bold}{<CA>} +\fi +\newdimen\pslinearc +\def\psset@linearc#1{\pssetlength\pslinearc{#1}} +\psset@linearc{0pt} +\def\psline{\pst@object{psline}} +\def\psline@i{% +\pst@getarrows{% +\begin@OpenObj +\pst@getcoors[\psline@ii}} +\def\psline@ii{% +\addto@pscode{\pst@cp \psline@iii \tx@Line}% +\end@OpenObj} +\def\psline@iii{% +\ifdim\pslinearc>\z@ +/r \pst@number\pslinearc def +/Lineto { \tx@Arcto } def +\else +/Lineto /lineto load def +\fi +\ifshowpoints true \else false \fi} +\def\qline(#1)(#2){% +\def\pst@par{}% +\begin@SpecialObj +\def\pst@linetype{0}% +\pst@getcoor{#1}\pst@tempa +\pst@@getcoor{#2}% +\addto@pscode{% +\pst@tempa moveto \pst@coor L +\@nameuse{psls@\pslinestyle}}% +\end@SpecialObj} +\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}% +\def\pst@linetype{1}% +\end@ClosedObj} +\def\psset@framearc#1{\pst@checknum{#1}\psk@framearc} +\psset@framearc{0} +\def\psset@cornersize#1{% +\pst@expandafter\psset@@cornersize{#1}\@nil} +\def\psset@@cornersize#1#2\@nil{% +\if #1a\relax +\def\psk@cornersize{\pst@number\pslinearc false }% +\else +\def\psk@cornersize{\psk@framearc true }% +\fi} +\psset@cornersize{relative} +\def\tx@Rect{Rect } +\def\tx@OvalFrame{OvalFrame } +\def\tx@Frame{Frame } +\def\psset@dimen#1{% +\pst@expandafter\psset@@dimen{#1}\@nil} +\def\psset@@dimen#1#2\@nil{% +\if #1o\relax +\def\psk@dimen{.5 }% +\else +\if #1m\relax +\def\psk@dimen{0 }% +\else +\if #1i\relax +\def\psk@dimen{-.5 }% +\fi +\fi +\fi} +\psset@dimen{outer} +\def\psframe{\pst@object{psframe}} +\def\psframe@i(#1){% +\@ifnextchar({\psframe@ii(#1)}{\psframe@ii(0,0)(#1)}} +\def\psframe@ii(#1)(#2){% +\begin@ClosedObj +\pst@getcoor{#1}\pst@tempa +\pst@@getcoor{#2}% +\addto@pscode{\psk@cornersize \pst@tempa \pst@coor \psk@dimen \tx@Frame}% +\def\pst@linetype{2}% +\showpointsfalse +\end@ClosedObj} +\def\tx@BezierNArray{BezierNArray } +\def\tx@OpenBezier{OpenBezier } +\def\tx@ClosedBezier{ClosedBezier } +\def\tx@BezierShowPoints{BezierShowPoints } +\def\psbezier{\pst@object{psbezier}} +\def\psbezier@i{% +\pst@getarrows{% +\begin@OpenObj +\pst@getcoors[\psbezier@ii}} +\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 +\ifshowpoints true \else false \fi +\tx@OpenBezier +\ifshowpoints \tx@BezierShowPoints \fi}% +\end@OpenObj} +\def\pscbezier{\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 +\end@ClosedObj} +\def\tx@Parab{Parab } +\def\parabola{\pst@object{parabola}} +\def\parabola@i{\pst@getarrows\parabola@ii} +\def\parabola@ii#1(#2)#3(#4){% +\begin@OpenObj +\pst@getcoor{#2}\pst@tempa +\pst@@getcoor{#4}% +\addto@pscode{\pst@tempa \pst@coor \tx@Parab}% +\end@OpenObj} +\def\psset@gridwidth#1{\pst@getlength{#1}\psk@gridwidth} +\psset@gridwidth{.8pt} +\def\psset@griddots#1{% +\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{% +\pst@cntg=#1\relax\edef\psk@subgriddots{\the\pst@cntg}} +\psset@subgriddots{0} +\def\psset@subgriddiv#1{% +\pst@cntg=#1\relax\edef\psk@subgriddiv{\the\pst@cntg}} +\psset@subgriddiv{5} +\def\psset@gridlabels#1{\pst@getlength{#1}\psk@gridlabels} +\psset@gridlabels{10pt} +\def\psset@gridlabelcolor#1{\pst@getcolor{#1}\psgridlabelcolor} +\psset@gridlabelcolor{black} +\def\tx@Grid{Grid } +\def\psgrid{\pst@object{psgrid}} +\def\psgrid@i{\@ifnextchar(% +{\psgrid@ii}{\expandafter\psgrid@iv\pic@coor}} +\def\psgrid@ii(#1){\@ifnextchar(% +{\psgrid@iii(#1)}{\psgrid@iv(0,0)(0,0)(#1)}} +\def\psgrid@iii(#1)(#2){\@ifnextchar(% +{\psgrid@iv(#1)(#2)}{\psgrid@iv(#1)(#1)(#2)}} +\def\psgrid@iv(#1)(#2)(#3){% +\begin@SpecialObj +\pst@getcoor{#1}\pst@tempa +\pst@getcoor{#2}\pst@tempb +\pst@@getcoor{#3}% +\ifnum\psk@subgriddiv>1 +\addto@pscode{gsave +\psk@subgridwidth SLW \pst@usecolor\pssubgridcolor +\pst@tempb \pst@coor \pst@tempa +\pst@number\psxunit \pst@number\psyunit +\psk@subgriddiv\space \psk@subgriddots\space +{} 0 \tx@Grid grestore}% +\fi +\addto@pscode{gsave +\psk@gridwidth SLW \pst@usecolor\psgridcolor +\pst@tempb \pst@coor \pst@tempa +\pst@number\psxunit \pst@number\psyunit +1 \psk@griddots\space { \pst@usecolor\psgridlabelcolor } +\psk@gridlabels \tx@Grid grestore}% +\end@SpecialObj} +\newif\ifpsmathbox +\psmathboxtrue +\def\pst@mathflag{\z@} +\newtoks\everypsbox +\let\pst@thisbox\relax +\long\def\pst@makenotverbbox#1#2{% +\edef\pst@mathflag{% +\ifpsmathbox\ifmmode\ifinner 1\else 2\fi\else \z@\fi\else \z@\fi}% +\setbox\pst@hbox=\hbox{% +\ifcase\pst@mathflag\or$\m@th\textstyle\or$\m@th\displaystyle\fi +{\pst@thisbox\the\everypsbox#2}% +\ifnum\pst@mathflag>\z@$\fi}% +#1} +\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 +\setbox\pst@hbox\hbox} +\def\pst@beginbox{% +\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 +\pst@afterbox} +\def\pst@makebox{\pst@@makebox} +\def\psverbboxtrue{\def\pst@@makebox{\pst@makeverbbox}} +\def\psverbboxfalse{\def\pst@@makebox{\pst@makenotverbbox}} +\psverbboxfalse +\def\pst@longbox{% +\def\pst@makebox{% +\gdef\pst@makebox{\pst@@makebox}% +\pst@makelongbox}} +\def\pst@makelongbox#1{% +\def\pst@afterbox{#1}% +\edef\pst@mathflag{% +\ifpsmathbox\ifmmode\ifinner 1\else 2\fi\else \z@\fi\else \z@\fi}% +\setbox\pst@hbox\hbox\bgroup +\aftergroup\pst@afterbox +\ifcase\pst@mathflag\or$\m@th\or$\m@th\displaystyle\fi +\begingroup +\pst@thisbox +\the\everypsbox} +\def\pst@endlongbox{% +\endgroup +\ifnum\pst@mathflag>\z@$\fi +\egroup} +\def\pslongbox#1#2{% +\@namedef{#1}{\pst@longbox#2}% +\@namedef{end#1}{\pst@endlongbox}} +\newdimen\psframesep +\def\psset@framesep#1{\pssetlength\psframesep{#1}} +\psset@framesep{3pt} +\newif\ifpsboxsep +\def\psset@boxsep#1{\@nameuse{psboxsep#1}} +\psset@boxsep{true} +\def\pst@useboxpar{% +\use@par +\if@star +\let\pslinecolor\psfillcolor +\solid@star +\let\solid@star\relax +\fi +\ifpsdoubleline \pst@setdoublesep \fi} +\def\psframebox{\pst@object{psframebox}} +\def\psframebox@i{\pst@makebox\psframebox@ii} +\def\psframebox@ii{% +\begingroup +\pst@useboxpar +\pst@dima=\pslinewidth +\advance\pst@dima by \psframesep +\pst@dimc=\wd\pst@hbox\advance\pst@dimc by \pst@dima +\pst@dimb=\dp\pst@hbox\advance\pst@dimb by \pst@dima +\pst@dimd=\ht\pst@hbox\advance\pst@dimd by \pst@dima +\setbox\pst@hbox=\hbox{% +\ifpsboxsep\kern\pst@dima\fi +\begin@ClosedObj +\addto@pscode{% +\psk@cornersize +\pst@number\pst@dima neg +\pst@number\pst@dimb neg +\pst@number\pst@dimc +\pst@number\pst@dimd +.5 +\tx@Frame}% +\def\pst@linetype{2}% +\showpointsfalse +\end@ClosedObj +\box\pst@hbox +\ifpsboxsep\kern\pst@dima\fi}% +\ifpsboxsep\dp\pst@hbox=\pst@dimb\ht\pst@hbox=\pst@dimd\fi +\leavevmode\box\pst@hbox +\endgroup} +\def\psdblframebox{\pst@object{psdblframebox}} +\def\psdblframebox@i{\addto@par{doubleline=true}\psframebox@i} +\def\psclip#1{% +\leavevmode +\begingroup +\begin@psclip +\begingroup +\def\use@pscode{% +\pstVerb{% +\pst@dict +/mtrxc CM def +CP CP T +\tx@STV +\psk@origin +\psk@swapaxes +newpath +\pst@code +clip +newpath +mtrxc setmatrix +moveto +0 setgray +end}% +\gdef\pst@code{}}% +\def\@multips(##1)(##2)##3##4{\pst@misplaced\multips}% +\def\nc@object##1##2##3##4{\pst@misplaced{node connection}}% +\hbox to\z@{#1}% +\endgroup +\def\endpsclip{% +\end@psclip +\endgroup}% +\ignorespaces} +\def\endpsclip{\pst@misplaced\endpsclip} +\let\begin@psclip\relax +\def\end@psclip{\pstVerb{currentpoint initclip moveto}} +\def\AltClipMode{% +\def\end@psclip{\pstVerb{\pst@grestore}}% +\def\begin@psclip{\pstVerb{gsave}}} +\def\clipbox{\@ifnextchar[{\clipbox@}{\clipbox@[\z@]}} +% DG modification begin - Apr. 3, 1997 +% From paulus@immd5.informatik.uni-erlangen.de (Dietrich Paulus) +%\def\clipbox@[#1]{\pst@makebox\clipbox@@{#1}} +\def\clipbox@[#1]{\pst@makebox{\clipbox@@{#1}}} +% DG modification end +\def\clipbox@@#1{% +\pssetlength\pst@dimg{#1}% +\leavevmode\hbox{% +\begin@psclip +\pst@Verb{% +CM \tx@STV CP T newpath +/a \pst@number\pst@dimg def +/w \pst@number{\wd\pst@hbox}a add def +/d \pst@number{\dp\pst@hbox}a add neg def +/h \pst@number{\ht\pst@hbox}a add def +a neg d moveto +a neg h L +w h L +w d L +closepath +clip +newpath +0 0 moveto +setmatrix}% +\unhbox\pst@hbox +\end@psclip}} +\def\psshadowbox{\pst@object{psshadowbox}} +\def\psshadowbox@i{\pst@makebox\psshadowbox@ii} +\def\psshadowbox@ii{% +\begingroup +\pst@useboxpar +\psshadowtrue +\psboxseptrue +\def\psk@shadowangle{-45 }% +\setbox\pst@hbox=\hbox{\psframebox@ii}% +\pst@dimh=\psk@shadowsize\p@ +\pst@dimh=.7071\pst@dimh +\pst@dimg=\dp\pst@hbox +\advance\pst@dimg\pst@dimh +\dp\pst@hbox=\pst@dimg +\pst@dimg=\wd\pst@hbox +\advance\pst@dimg\pst@dimh +\wd\pst@hbox=\pst@dimg +\leavevmode +\box\pst@hbox +\endgroup} +\def\pscirclebox{\pst@object{pscirclebox}} +\def\pscirclebox@i{\pst@makebox\pscirclebox@ii} +\def\pscirclebox@ii{% +\begingroup +\pst@useboxpar +\setbox\pst@hbox=\hbox{% +\pst@nodehook +\pscirclebox@iii +\box\pst@hbox}% +\ifpsboxsep \pscirclebox@sep \fi +\leavevmode +\box\pst@hbox +\endgroup} +\def\pscirclebox@iii{% +\if@star +\pslinewidth\z@ +\pstverb{\pst@dict \tx@STP \pst@usecolor\psfillcolor +newpath \pscirclebox@iv \tx@SD end}% +\else +\begin@ClosedObj +\def\pst@linetype{4}\showpointsfalse +\addto@pscode{% +\pscirclebox@iv CLW 2 div add 0 360 arc closepath}% +\end@ClosedObj +\fi} +\def\pscirclebox@iv{% +\pst@number{\wd\pst@hbox}2 div +\pst@number{\ht\pst@hbox}\pst@number{\dp\pst@hbox}add 2 div +2 copy \pst@number{\dp\pst@hbox}sub 4 2 roll +\tx@Pyth \pst@number\psframesep add } +\def\pscirclebox@sep{% +\pst@dimb=\ht\pst@hbox +\advance\pst@dimb\dp\pst@hbox +\divide\pst@dimb 2 +\pst@dima=.5\wd\pst@hbox +\pst@pyth\pst@dima\pst@dimb\pst@dimc +\advance\pst@dimc\pslinewidth +\advance\pst@dimc\psframesep +\advance\pst@dimb-\pst@dimc +\setbox\pst@hbox=\hbox to2\pst@dimc{% +\hss +\vbox{\kern-\pst@dimb\box\pst@hbox}% +\hss}% +\advance\pst@dimb-\dp\pst@hbox +\dp\pst@hbox=-\pst@dimb} +\let\pst@nodehook\relax +\def\psCirclebox{\pst@object{psCirclebox}} +\def\psCirclebox@i{\pst@makebox\psCirclebox@ii} +\def\psCirclebox@ii{% +\begingroup +\pst@useboxpar +\pst@dima=\ht\pst@hbox +\advance\pst@dima\dp\pst@hbox +\divide\pst@dima\tw@ +\pssetlength\pst@dimb\psk@radius +\setbox\pst@hbox=\hbox{% +\pst@nodehook +\pscircle(.5\wd\pst@hbox,\pst@dima){\pst@dimb}% +\box\pst@hbox}% +\ifpsboxsep \psCirclebox@sep \fi +\leavevmode +\box\pst@hbox +\endgroup} +\def\psCirclebox@sep{% +\pst@dimc=\pst@dimb +\advance\pst@dimb-\pst@dima +\advance\pst@dima\pst@dimc +\setbox\pst@hbox=\hbox to\tw@\pst@dimc{% +\hss +\vrule width \z@ depth \pst@dimb height \pst@dima +\box\pst@hbox +\hss}}% +\def\psovalbox{\pst@object{psovalbox}} +\def\psovalbox@i{\pst@makebox{\psovalbox@ii}} +\def\psovalbox@ii{% +\begingroup +\pst@useboxpar +\psovalbox@iii +\ifpsboxsep\psovalbox@sep\fi +\leavevmode +\box\pst@hbox +\endgroup} +\def\psovalbox@iii{% +\psovalbox@iv +\setbox\pst@hbox=\hbox{% +\begin@ClosedObj +\addto@pscode{% +0 360 +\pst@number\pst@dimc CLW 2 div sub +\pst@number\pst@dimd CLW 2 div sub +\pst@number\pst@dima +\pst@number\pst@dimb +\tx@Ellipse +closepath}% +\def\pst@linetype{2}% +\end@ClosedObj +\unhbox\pst@hbox}} +\def\psovalbox@iv{% +\pst@dimc=\pslinewidth\advance\pst@dimc\psframesep +\pst@dimd=\ht\pst@hbox\advance\pst@dimd\dp\pst@hbox +\pst@dima=.5\wd\pst@hbox +\pst@dimb=.5\pst@dimd\advance\pst@dimb-\dp\pst@hbox +\pst@dimd=.707\pst@dimd +\advance\pst@dimd\pst@dimc +\advance\pst@dimc.707\wd\pst@hbox} +\def\psovalbox@sep{% +\setbox\pst@hbox\hbox to 2\pst@dimc{\hss\unhbox\pst@hbox\hss}% +\pst@dimg=\pst@dimd +\advance\pst@dimg-\pst@dimb +\dp\pst@hbox=\pst@dimg +\advance\pst@dimd\pst@dimb +\ht\pst@hbox=\pst@dimd} +\def\psdiabox{\pst@object{psdiabox}} +\def\psdiabox@i{\pst@makebox{\psdiabox@ii}} +\def\psdiabox@ii{% +\begingroup +\pst@useboxpar +\psdiabox@iii +\ifpsboxsep\psdiabox@sep\fi +\leavevmode +\box\pst@hbox +\endgroup} +\def\psdiabox@iv{% +\pst@dimg=.707\pslinewidth +\advance\pst@dimg.707\psframesep +\pst@dima=\wd\pst@hbox +\divide\pst@dima 2 +\pst@dimc=\pst@dima +\advance\pst@dimc\pst@dimg +\pst@dimd=\ht\pst@hbox +\advance\pst@dimd\dp\pst@hbox +\divide\pst@dimd 2 +\pst@dimb=\pst@dimd +\advance\pst@dimb-\dp\pst@hbox +\advance\pst@dimd\pst@dimg} +\def\psdiabox@iii{% +\psdiabox@iv +\setbox\pst@hbox=\hbox{% +\begin@ClosedObj +\addto@pscode{% +\psline@iii +pop +.5 +\pst@number\pst@dimc 2 mul \pst@number\pst@dimd 2 mul +0 +\pst@number\pst@dima \pst@number\pst@dimb +\tx@Diamond}% +\def\pst@linetype{4}% +\end@ClosedObj +\box\pst@hbox}} +\def\psdiabox@sep{% +\setbox\pst@hbox\hbox to 4\pst@dimc{\hss\unhbox\pst@hbox\hss}% +\multiply\pst@dimd 2 +\advance\pst@dimd\pst@dimb +\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} +\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{\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} +\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}} +\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} +\def\pstribox@sep{% +\ifodd\psk@trimode +\advance\pst@dimb.5\pst@dimd +\ht\pst@hbox=\pst@dimb +\advance\pst@dimd-\pst@dimb +\dp\pst@hbox=\pst@dimd +\else +\setbox\pst@hbox\hbox to \pst@dimc{\hss\unhbox\pst@hbox\hss}% +\global\pst@dimg=.5\pst@dimc +\fi +\ifcase\psk@trimode +\dp\pst@hbox-\pst@dimb +\advance\pst@dimd\pst@dimb +\ht\pst@hbox\pst@dimd +\or +\pst@dimg=.5\wd\pst@hbox +\global\advance\pst@dimg-\pst@dima +\setbox\pst@hbox\hbox to \pst@dimc{\kern-\pst@dima\box\pst@hbox\hss}% +\or +\ht\pst@hbox\pst@dimb +\advance\pst@dimd-\pst@dimb +\dp\pst@hbox\pst@dimd +\or +\pst@dimg=\pst@dimc +\advance\pst@dimg-\pst@dima +\global\advance\pst@dimg.5\wd\pst@hbox +\setbox\pst@hbox\hbox to \pst@dimc{% +\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} +\def\tx@ArcArrow{ArcArrow } +\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)}} +\def\psarc@iii(#1)#2#3#4{% +\begin@OpenObj +\pst@getangle{#3}\pst@tempa +\pst@getangle{#4}\pst@tempb +\pst@@getcoor{#1}% +\pssetlength\pst@dima{#2}% +\addto@pscode{\psarc@iv \psarc@v}% +\gdef\psarc@type{0}% +\showpointsfalse +\end@OpenObj} +\def\psarc@iv{% +\pst@coor /y ED /x ED +/r \pst@number\pst@dima def +/c 57.2957 r \tx@Div def +/angleA +\pst@tempa +\psk@arcsepA c mul 2 div +\ifcase \psarc@type add \or sub \fi +def +/angleB +\pst@tempb +\psk@arcsepB c mul 2 div +\ifcase \psarc@type sub \or add \fi +def +\ifshowpoints\psarc@showpoints\fi +\ifx\psk@arrowA\@empty +\ifnum\psk@liftpen=2 +r angleA \tx@PtoC +y add exch x add exch +moveto +\fi +\fi} +\def\psarc@v{% +x y r +angleA +\ifx\psk@arrowA\@empty\else +{ ArrowA CP } +{ \ifcase\psarc@type add \or sub \fi } +\tx@ArcArrow +\fi +angleB +\ifx\psk@arrowB\@empty\else +{ ArrowB } +{ \ifcase\psarc@type sub \or add \fi } +\tx@ArcArrow +\fi +\ifcase\psarc@type arc \or arcn \fi} +\def\psarc@type{0} +\def\psarc@showpoints{% +gsave +newpath +x y moveto +x y r \pst@tempa \pst@tempb +\ifcase\psarc@type arc \or arcn \fi +closepath +CLW 2 div SLW +[ \psk@dash\space ] 0 setdash stroke +grestore } +\def\psarcn{\pst@object{psarcn}} +\def\psarcn@i{\def\psarc@type{1}\psarc@i} +\def\pscircle{\pst@object{pscircle}} +\def\pscircle@i{\@ifnextchar({\pscircle@do}{\pscircle@do(0,0)}} +\def\pscircle@do(#1)#2{% +\if@star +{\use@par\qdisk(#1){#2}}% +\else +\begin@ClosedObj +\pst@@getcoor{#1}% +\pssetlength\pst@dimc{#2}% +\def\pst@linetype{4}% +\addto@pscode{% +\pst@coor +\pst@number\pst@dimc +\psk@dimen CLW mul sub +0 360 arc +closepath}% +\showpointsfalse +\end@ClosedObj +\fi +\ignorespaces} +\def\qdisk(#1)#2{% +\def\pst@par{}% +\begin@SpecialObj +\pst@@getcoor{#1}% +\pssetlength\pst@dimg{#2}% +\addto@pscode{\pst@coor \pst@number\pst@dimg \tx@SD}% +\end@SpecialObj} +\def\psset@radius#1{\pst@@getlength{#1}\psk@radius} +\psset@radius{.25cm} +\def\psCircle{\pst@object{psCircle}} +\def\psCircle@i{\@ifnextchar({\psCircle@ii}{\psCircle@ii(0,0)}} +\def\psCircle@ii(#1){\pscircle@do(#1){\psk@radius}} +\def\pswedge{\pst@object{pswedge}} +\def\pswedge@i{\@ifnextchar({\pswedge@ii}{\pswedge@ii(0,0)}} +\def\pswedge@ii(#1)#2#3#4{% +\begin@ClosedObj +\pssetlength\pst@dimc{#2} +\pst@getangle{#3}\pst@tempa +\pst@getangle{#4}\pst@tempb +\pst@@getcoor{#1}% +\def\pst@linetype{1}% +\addto@pscode{% +\pst@coor +2 copy +moveto +\pst@number\pst@dimc \psk@dimen CLW mul sub % Adjusted radius +\pst@tempa \pst@tempb +arc +closepath}% +\showpointsfalse +\end@ClosedObj} +\def\tx@Ellipse{Ellipse } +\def\psellipse{\pst@object{psellipse}} +\def\psellipse@i(#1){\@ifnextchar(% +{\psellipse@ii(#1)}{\psellipse@ii(0,0)(#1)}} +\def\psellipse@ii(#1)(#2){% +\begin@ClosedObj +\pst@getcoor{#1}\pst@tempa +\pst@@getcoor{#2}% +\addto@pscode{% +0 360 +\pst@coor +\ifdim\psk@dimen\p@=\z@\else +\psk@dimen CLW mul +dup 4 -1 roll sub neg 3 1 roll sub +\fi +\pst@tempa +\tx@Ellipse +closepath}% +\def\pst@linetype{2}% +\end@ClosedObj} +\def\multips{\@ifnextchar({\def\pst@par{}\multips@ii}{\multips@i}} +\def\multips@i#1{\def\pst@par{rot=#1}\multips@ii} +\def\multips@ii(#1){\@ifnextchar({\multips@iii(#1)}{\multips@iii(\z@,\z@)(#1)}} +\long\def\multips@iii(#1)(#2)#3#4{% +\begingroup +\use@par +\pst@getcoor{#1}\pst@tempa +\pst@@getcoor{#2}% +\pst@cnta=#3\relax +\init@pscode +\addto@pscode{% +\pst@tempa T \the\pst@cnta\space \pslbrace +gsave \ifx\psk@rot\@empty\else\psk@rot rotate \fi}% +\hbox to\z@{% +\def\init@pscode{% +\addto@pscode{% +gsave +\pst@number\pslinewidth SLW +\pst@usecolor\pslinecolor}}% +\def\use@pscode{\addto@pscode{grestore}}% +\def\psclip##1{\pst@misplaced\psclip}% +\def\nc@object##1##2##3##4{\pst@misplaced{node connection}}% +#4}% +\addto@pscode{grestore \pst@coor T \psrbrace repeat}% +\leavevmode +\use@pscode +\endgroup +\ignorespaces} +\def\scalebox#1{\pst@makebox{\@scalebox{#1}}} +\def\@scalebox#1{% +\begingroup +\pst@getscale{#1}\pst@tempa +\let\pst@tempc\pst@tempg +\let\pst@tempd\pst@temph +\@@scalebox +\endgroup} +\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 +\pst@Verb{CP CP translate \pst@tempa \tx@NET}% +\hbox to \z@{\box\pst@hbox\hss}% +\pst@Verb{% +CP CP translate +1 \pst@tempc div 1 \pst@tempd div scale +\tx@NET}% +\ifdim\pst@dima>\z@\kern\pst@dima\fi}} +\pslongbox{Scalebox}{\scalebox} +\def\scaleboxto(#1,#2){\pst@makebox{\@scaleboxto(#1,#2)}} +\def\@scaleboxto(#1,#2){% +\begingroup +\pssetlength\pst@dima{#1}% +\pssetlength\pst@dimb{#2}% +\ifdim\pst@dima=\z@\else +\pst@divide{\pst@dima}{\wd\pst@hbox}\pst@tempc +\edef\pst@tempc{\pst@tempc\space}% +\fi +\ifdim\pst@dimb=\z@ +\ifdim\pst@dima=\z@ +\@pstrickserr{% +\string\scaleboxto\space dimensions cannot both be zero}\@ehpa +\def\pst@tempa{}% +\def\pst@tempc{1 }% +\def\pst@tempd{1 }% +\else +\let\pst@tempd\pst@tempc +\fi +\else +\pst@dimc=\ht\pst@hbox +\advance\pst@dimc\dp\pst@hbox +\pst@divide{\pst@dimb}{\pst@dimc}\pst@tempd +\edef\pst@tempd{\pst@tempd\space}% +\ifdim\pst@dima=\z@ \let\pst@tempc\pst@tempd \fi +\fi +\edef\pst@tempa{\pst@tempc \pst@tempd scale }% +\@@scalebox +\endgroup} +\pslongbox{Scaleboxto}{\scaleboxto} +\def\tx@Rot{Rot } +\def\rotateleft{\pst@makebox{\@rotateleft\pst@hbox}} +\def\@rotateleft#1{% +\leavevmode\hbox{\hskip\ht#1\hskip\dp#1\vbox{\vskip\wd#1% +\pst@Verb{90 \tx@Rot} +\vbox to \z@{\vss\hbox to \z@{\box#1\hss}\vskip\z@}% +\pst@Verb{-90 \tx@Rot}}}} +\def\rotateright{\pst@makebox{\@rotateright\pst@hbox}} +\def\@rotateright#1{% +\hbox{\hskip\ht#1\hskip\dp#1\vbox{\vskip\wd#1% +\pst@Verb{-90 \tx@Rot} +\vbox to \z@{\hbox to \z@{\hss\box#1}\vss}% +\pst@Verb{90 \tx@Rot}}}} +\def\rotatedown{\pst@makebox{\@rotatedown\pst@hbox}} +\def\@rotatedown#1{% +\hbox{\hskip\wd#1\vbox{\vskip\ht#1\vskip\dp#1% +\pst@Verb{180 \tx@Rot}% +\vbox to \z@{\hbox to \z@{\box#1\hss}\vss}% +\pst@Verb{-180 \tx@Rot}}}} +\pslongbox{Rotateleft}{\rotateleft} +\pslongbox{Rotateright}{\rotateright} +\pslongbox{Rotatedown}{\rotatedown} +\def\pst@starbox{% +\setbox\pst@hbox\hbox{\psframebox*[boxsep=false]{\unhbox\pst@hbox}}} +\def\pst@@makesmall#1{% +\setbox#1=\hbox to\z@{\hss\vbox to \z@{\vss\box#1\vss}\hss}} +\def\pst@@@makesmall#1{% +\pst@dimh=\psk@xref\wd#1% +\ifx\psk@yref\relax +\pst@dimg=\dp#1% +\else +\pst@dimg=\psk@yref\ht#1% +\advance\pst@dimg\psk@yref\dp#1% +\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} +\def\psset@@ref#1#2,#3,#4\@nil{% +\def\psk@xref{.5}% +\def\psk@yref{.5}% +\let\pst@makesmall\pst@@@makesmall +\ifx\@empty#3\@empty +\@nameuse{getref@#1}% +\@nameuse{getref@#2}% +\else +\pst@checknum{#1#2}\psk@xref +\pst@checknum{#3}\psk@yref +\fi} +\def\getref@c{\let\pst@makesmall\pst@@makesmall} +\def\getref@t{\def\psk@yref{1}} +\def\getref@b{\def\psk@yref{0}} +\def\getref@B{\let\psk@yref\relax} +\def\getref@l{\def\psk@xref{0}} +\def\getref@r{\def\psk@xref{1}} +\psset@ref{c} +\def\psset@rot#1{% +\pst@expandafter{\@ifnextchar*{\psset@@@rot}{\psset@@rot}}{#1}\@nil} +\def\psset@@rot#1\@nil{% +\def\next##1@#1=##2@##3\@nil{% +\ifx\relax##2% +\pst@getangle{#1}\psk@rot +\else +\def\psk@rot{##2}% +\fi}% +\expandafter\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}} +\def\pst@rotlist{mark RAngle /a ED cleartomark a neg } +\def\pst@rottable{% +@0=% +@U=% +@L=90 % +@D=180 % +@R=-90 % +@N=\pst@rotlist +@W=\pst@rotlist 90 add % +@S=\pst@rotlist 180 add % +@E=\pst@rotlist 90 sub } +\psset@rot{0} +\def\tx@RotBegin{RotBegin } +\def\tx@RotEnd{RotEnd } +\def\pst@rotate#1#2{% +\ifx#1\@empty\else +\setbox#2=\hbox{\pst@Verb{#1 \tx@RotBegin}\box#2\pst@Verb{\tx@RotEnd}}% +\fi} +\def\psput@cartesian#1{% +\hbox to \z@{\kern\pst@dimg{\vbox to \z@{\vss\box#1\vskip\pst@dimh}\hss}}} +\def\psput@special#1{% +\hbox{% +\pst@Verb{{ \pst@coor } \tx@PutCoor \tx@PutBegin}% +\box#1% +\pst@Verb{\tx@PutEnd}}} +\def\tx@PutCoor{PutCoor } +\def\tx@PutBegin{PutBegin } +\def\tx@PutEnd{PutEnd } +\def\rput{\def\pst@par{}\pst@ifstar{\@ifnextchar[{\rput@i}{\rput@ii}}} +\def\rput@i[#1]{\addto@par{ref={#1}}\rput@ii} +\def\rput@ii{\@ifnextchar({\rput@iv}{\rput@iii}} +\def\rput@iii#1{\addto@par{rot={#1}}\@ifnextchar({\rput@iv}{\rput@iv(\z@,\z@)}} +\def\rput@iv(#1){\pst@killglue\pst@makebox{\rput@v{#1}}} +\def\rput@v#1{% +\begingroup +\use@par +\if@star\pst@starbox\fi +\pst@makesmall\pst@hbox +\pst@rotate\psk@rot\pst@hbox +\psput@{#1}\pst@hbox +\endgroup +\ignorespaces} +\def\multirput{% +\def\pst@par{}% +\pst@ifstar{\@ifnextchar[{\multirput@i}{\multirput@ii}}} +\def\multirput@i[#1]{\addto@par{ref={#1}}\multirput@ii} +\def\multirput@ii{\@ifnextchar({\multirput@iv}{\multirput@iii}} +\def\multirput@iii#1{\addto@par{rot={#1}}\multirput@iv} +\def\multirput@iv(#1){% +\@ifnextchar({\multirput@v(#1)}{\multirput@v(\z@,\z@)(#1)}} +\def\multirput@v(#1,#2)(#3,#4)#5{% +\pst@makebox{\multirput@vi(#1,#2)(#3,#4){#5}}} +\def\multirput@vi(#1,#2)(#3,#4)#5{% +\begingroup +\use@par +\if@star\pst@starbox\fi +\pst@makesmall\pst@hbox +\pst@rotate\psk@rot\pst@hbox +\pssetxlength\pst@dima{#1}% +\pssetylength\pst@dimb{#2}% +\pssetxlength\pst@dimc{#3}% +\pssetylength\pst@dimd{#4}% +\pst@cntg=#5\relax +\pst@cnth=\@ne +\leavevmode +\loop +\vbox to \z@{% +\vss +\hbox to \z@{\kern\pst@dima\copy\pst@hbox\hss}% +\vskip\pst@dimb}% +\ifnum\pst@cntg>\pst@cnth +\advance\pst@dima\pst@dimc +\advance\pst@dimb\pst@dimd +\advance\pst@cnth\@ne +\repeat +\endgroup +\ignorespaces} +\newif\if@fixedradius +\def\cput{\pst@object{cput}} +\def\cput@i{\@fixedradiusfalse\cput@ii} +\def\cput@ii{\pst@killglue\@ifnextchar({\cput@iv}{\cput@iii}} +\def\cput@iii#1{% +\addto@par{rot={#1}}% +\@ifnextchar({\cput@iv}{\cput@iv(\z@,\z@)}} +\def\cput@iv(#1){\pst@makebox{\cput@v{#1}}} +\def\cput@v#1{% +\begingroup +\use@par +\setbox\pst@hbox=\hbox{% +\psboxsepfalse +\if@fixedradius\psCirclebox@ii\else\pscirclebox@ii\fi}% +\pst@@makesmall\pst@hbox +\pst@rotate\psk@rot\pst@hbox +\psput@{#1}\pst@hbox +\endgroup +\ignorespaces} +\def\Cput{\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} +\def\psset@@refangle#1\@nil{% +\def\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\next\pst@refangletable @#1=\relax"@\@nil} +\def\pst@refangletable{% +@r=0"20% +@u=90"02% +@l=180"10% +@d=-90"01% +@ur=45"22% +@ul=135"12% +@dr=-135"21% +@dl=-45"11} +\psset@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}}} +% DG/SR modification end +\def\uput@i#1{\addto@par{labelsep=#1}\uput@ii} +\def\uput@ii[#1]{% +\addto@par{refangle={#1}}% +\@ifnextchar({\uput@iv}{\uput@iii}} +\def\uput@iii#1{% +\addto@par{rot={#1}}% +\@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 +\psput@{#1}\pst@hbox +\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 +\fi} +\def\uput@vii#1#2{% +\edef\pst@coor{% +\pst@number\pslabelsep +#2% +\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 +\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 +\setbox\pst@hbox=\vbox to\z@{% +\ifnum#2=1 \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}} +\def\tx@Uput{Uput } +\def\tx@UUput{UUput } +\def\Rput{\def\pst@par{}\pst@ifstar{\@ifnextchar[{\Rput@ii}{\Rput@i}}} +\def\Rput@i#1{\addto@par{labelsep=#1}\Rput@ii} +\def\Rput@ii[#1]{\addto@par{ref={#1}}\@ifnextchar({\Rput@iv}{\Rput@iii}} +\def\Rput@iii#1{\addto@par{rot={#1}}\@ifnextchar({\Rput@iv}{\Rput@iv(\z@,\z@)}} +\def\Rput@iv(#1){\pst@killglue\pst@makebox{\Rput@v{#1}}} +\def\Rput@v#1{% +\begingroup +\use@par +\if@star\pst@starbox\fi +\Rput@vi +\pst@makesmall\pst@hbox +\pst@rotate\psk@rot\pst@hbox +\psput@{#1}\pst@hbox +\endgroup +\ignorespaces} +\def\Rput@vi{% +\pst@dimg=\dp\pst@hbox +\advance\pst@dimg\pslabelsep +\dp\pst@hbox=\pst@dimg +\pst@dimg=\ht\pst@hbox +\advance\pst@dimg\pslabelsep +\ht\pst@hbox=\pst@dimg +\setbox\pst@hbox\hbox{\kern\pslabelsep\box\pst@hbox\kern\pslabelsep}}% +\def\oldpsput{% +\def\pst@par{}\pst@ifstar{\@ifnextchar[{\oldpsput@i}{\oldpsput@ii}}} +\def\oldpsput@i[#1]{\addto@par{ref={#1}}\oldpsput@ii} +\def\oldpsput@ii{\@ifnextchar<{\oldpsput@iii}{\oldpsput@iv}} +\def\oldpsput@iii<#1>{\rput@iii{#1}} +\def\OldPsput{\let\psput\oldpsput} +\def\NewPsput{\let\psput\rput} +\def\pspicture{\begingroup\pst@ifstar\pst@picture} +\def\pst@picture{% +\@ifnextchar[{\pst@@picture}{\pst@@picture[0]}} +\def\pst@@picture[#1]#2(#3,#4){% +\@ifnextchar({\pst@@@picture[#1](#3,#4)}% +{\pst@@@picture[#1](0,0)(#3,#4)}} +\def\pst@@@picture[#1](#2,#3)(#4,#5){% +\pssetxlength\pst@dima{#2}% +\pssetylength\pst@dimb{#3}% +\pssetxlength\pst@dimc{#4}% +\pssetylength\pst@dimd{#5}% +\ifdim\pst@dima>\pst@dimc +\pst@dimg=\pst@dima +\pst@dima=\pst@dimc +\pst@dimc=\pst@dimg +\fi +\ifdim\pst@dimb>\pst@dimd +\pst@dimg=\pst@dimb +\pst@dimb=\pst@dimd +\pst@dimd=\pst@dimg +\fi +\def\pst@tempa{#1}% +\setbox\pst@hbox=\hbox\bgroup +\begingroup\KillGlue +\@ifundefined{@latexerr}{}{\let\unitlength\psunit}% +\edef\pic@coor{(#2,#3)(#2,#3)(#4,#5)}\ignorespaces} +\def\pic@coor{(0,0)(0,0)(10,10)} +\def\endpspicture{% +\pst@killglue +\endgroup +\egroup +\ifdim\wd\pst@hbox=\z@\else +%\@pstrickserr{Extraneous space in the pspicture environment}% +%{Type \space <return> \space to procede.}% +\fi +\ht\pst@hbox=\pst@dimd +\dp\pst@hbox=-\pst@dimb +\setbox\pst@hbox=\hbox{% +\kern-\pst@dima +\ifx\pst@tempa\@empty\else +\advance\pst@dimd-\pst@dimb +\pst@dimd=\pst@tempa\pst@dimd +\advance\pst@dimd\pst@dimb +\lower\pst@dimd +\fi +\box\pst@hbox +\kern\pst@dimc}% +\if@star\setbox\pst@hbox=\hbox{\clipbox@@\z@}\fi +\leavevmode\box\pst@hbox +\endgroup} +\@namedef{pspicture*}{\pspicture*} +\@namedef{endpspicture*}{\endpspicture} +\def\tx@BeginOL{BeginOL } +\def\tx@InitOL{InitOL } +\def\pst@initoverlay#1{\pst@Verb{\tx@InitOL /TheOL (#1) def}} +\def\AltOverlayMode{% +\def\pst@initoverlay##1{% +\pst@Verb{% +\tx@InitOL +/Visible { initclip } def +/Invisible { +CP newpath OLUnit itransform moveto clip newpath moveto +} def +/TheOL (##1) def}}} +\def\pst@overlay#1{% +\edef\curr@overlay{#1}% +\pst@Verb{(#1) BOL}% +\aftergroup\pst@endoverlay} +\def\pst@endoverlay{% +\pst@Verb{(\curr@overlay) BOL}} +\def\curr@overlay{all} +\newbox\theoverlaybox +\def\overlaybox{% +\global\setbox\theoverlaybox=\hbox\bgroup +\begingroup +\let\psoverlay\pst@overlay +\def\overlaybox{% +\@pstrickserr{Overlays cannot be nested}\@eha}% +\def\putoverlaybox{% +\@pstrickserr{You must end the overlay box +before using \string\putoverlaybox}}% +\psoverlay{main}% +\ignorespaces} +\def\endoverlaybox{\endgroup\egroup} +\def\putoverlaybox#1{% +\hbox{\pst@initoverlay{#1}\copy\theoverlaybox}} +\def\psoverlay{\@pstrickserr{\string\psoverlay\space +can only be used after \string\overlaybox}} +\ifx\pstcustomize\relax \input pstricks.con \fi +\catcode`\@=\PstAtCode\relax +% +\endinput +%% +%% END: pstricks.tex diff --git a/Master/texmf-dist/tex/latex/pstricks/pstricks.sty b/Master/texmf-dist/tex/latex/pstricks/pstricks.sty index 2b7a1a875f9..9c4c95faa0a 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-2008 Herbert Voss <voss@perce.de> +%% pstricks.sty Copyright (C) 2004-2009 Herbert Voss <voss@perce.de> %% Rolf Niepraschk <Rolf.Niepraschk@ptb.de> %% %% This package may be distributed under the terms of the LaTeX Project @@ -16,7 +16,7 @@ \NeedsTeXFormat{LaTeX2e} \ProvidesPackage{pstricks} - [2008/01/24 v0.37 LaTeX wrapper for `PSTricks' (RN,HV)] + [2008/10/19 v0.38 LaTeX wrapper for `PSTricks' (RN,HV)] % \def\documentclass{ \edef\@tempa{\jobname.tex }% @@ -33,9 +33,11 @@ \fi } % +\newif\ifpst@OldVersion\pst@OldVersionfalse +\DeclareOption{97}{\pst@OldVersiontrue} %------------------------------------ PLAIN -------------------------------- \DeclareOption{plain}{% - \input{pstricks.tex} + \ifpst@OldVersion\input{pstricks97.tex}\else\input{pstricks.tex}\fi \ProvidesFile{pstricks.tex} [\filedate\space v\fileversion\space `PSTricks' (tvz)] \endinput @@ -47,16 +49,16 @@ \@ifundefined{PSTricksLoaded} {% \let\saved@scalebox\scalebox - \input{pstricks.tex} + \ifpst@OldVersion\input{pstricks97.tex}\else\input{pstricks.tex}\fi \ProvidesFile{pstricks.tex} [\filedate\space v\fileversion\space `PSTricks' (tvz)] \IfFileExists{pstricks.pro}{% \ProvidesFile{pstricks.pro} - [2008/01/01 v. 1.05, PostScript prologue file (hv)] + [2008/01/01 v. 1.03, PostScript prologue file (hv)] \@addtofilelist{pstricks.pro}}{}% \IfFileExists{pst-dots.pro}{% \ProvidesFile{pst-dots.pro} - [2006/12/19 v. 2.02, PostScript prologue file (hv)] + [2006/12/19 v. 2.00, PostScript prologue file (hv)] \@addtofilelist{pst-dots.pro}}{}% \IfFileExists{pst-algparser.pro}{% \ProvidesFile{pst-algparser.pro} |