% % see pstricks.tex for license and copyright % %% The \??put macros ----------- % % \setbox#2=\hbox{\pst@Verb{% check for empty #1 % (#1) /strAngle ED strAngle length 0 eq { 0 }{ #1 } ifelse % %\ifPSTlualatex neg \fi % \tx@RotBegin}\box#2\pst@Verb{\tx@RotEnd}}% \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 \pstnodescale } \tx@PutCoor \tx@PutBegin }% 20150911 hv \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]{% \test@for@options#1=\@nil \ifnum\the\pst@cntm=\z@ \addto@par{ref={#1}}% \else \expandafter\addto@par\expandafter{#1}% \fi \rput@ii } \def\test@for@options#1=#2\@nil{% \if$#2$% #2 is empty -> old syntax \pst@cntm=\z@ \else % something like foo=bar \pst@cntm=\@ne \fi } \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 \ifx\psk@rot\@empty\else\pst@rotate{ ps@rot \ifPSTlualatex neg \fi }\pst@hbox\fi% (MJS) % \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{% \pst@killglue% \global\psLoopIndex=\@ne\relax \begingroup \use@par \if@star\pst@starbox\fi \pst@makesmall\pst@hbox \ifx\psk@rot\@empty\else\pst@rotate{ps@rot }\pst@hbox\fi% (MJS) % \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 \leavevmode \loop \vbox to \z@{% \vss \hbox to \z@{\kern\pst@dima\copy\pst@hbox\hss}% \vskip\pst@dimb% }% \ifnum\pst@cntg>\psLoopIndex \advance\pst@dima\pst@dimc \advance\pst@dimb\pst@dimd \global\advance\psLoopIndex by \@ne \repeat \endgroup \ignorespaces% } % \newif\if@fixedradius \def\cput{\def\pst@par{}\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 \ifx\psk@rot\@empty\else\pst@rotate{ps@rot }\pst@hbox\fi% (MJS) % \pst@rotate\psk@rot\pst@hbox \psput@{#1}\pst@hbox \endgroup \ignorespaces% } % \def\Cput{\def\pst@par{}\pst@object{Cput}} \def\Cput@i{\@fixedradiustrue\cput@ii} \newdimen\pslabelsep \define@key[psset]{pstricks}{labelsep}[5pt]{% \pssetlength\pslabelsep{#1}% \ifx\PSTplotLoaded\endinput% Set labels for pst-plot, if laoded \let\psxlabelsep\pslabelsep% \let\psylabelsep\pslabelsep% \fi} \psset[pstricks]{labelsep=5pt} % \define@key[psset]{pstricks}{refangle}[0]{\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% \pst@Verb{ gsave STV CP T /ps@refangle \psk@refangle\space def grestore }%ADDED (MJS) } % \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[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}}} % 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 \pstCheckCoorType{#1}% needed for \uput@vii \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{% \ifPst@SpecialLength\pst@SpecialLength\else\pst@number\pslabelsep\fi % \pst@number\pslabelsep % \ifdim\pslabelsep<\z@ neg \fi #2% \pst@number{\wd\pst@hbox}% \pst@number{\ht\pst@hbox}% \pst@number{\dp\pst@hbox}% \ifnum\pst@C@@rType=7 ps@refangle % CHANGED (MJS) FROM \psk@refangle\space \ifx\psk@rot\@empty\else ps@rot\space sub \fi \else \psk@refangle\space \ifx\psk@rot\@empty\else \psk@rot\space sub \fi \fi \tx@Uput #1}% %\show\pst@coor \setbox\pst@hbox=\hbox to\z@{\hss\vbox to\z@{\vss\box\pst@hbox\vss}\hss}% \setbox\pst@hbox=\psput@special\pst@hbox \ifPSTlualatex \ifnum\pst@C@@rType=7 \ifx\psk@rot\@empty\else\pst@rotate{ps@rot neg}\pst@hbox\fi% CHANGED FROM \psk@rot (MJS) \else \ifx\psk@rot\@empty\else\pst@rotate{\psk@rot\space neg}\pst@hbox\fi% \fi \else \ifnum\pst@C@@rType=7 \ifx\psk@rot\@empty\else\pst@rotate{ps@rot }\pst@hbox\fi% CHANGED FROM \psk@rot (MJS) \else \ifx\psk@rot\@empty\else\pst@rotate{\psk@rot}\pst@hbox\fi% \fi \fi } % % \def\uput@viii#1#2{% \ifnum#1>\z@\relax\ifnum#2>\z@\relax\pslabelsep=.707\pslabelsep\fi\fi \setbox\pst@hbox=\vbox to\z@{% \ifnum#2=1\relax\vskip\pslabelsep\else\vss\fi \hbox to\z@{% \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 } % \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 \ifx\psk@rot\@empty\else\pst@rotate{ps@rot }\pst@hbox\fi% (MJS) % \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} %