% % see pstricks.tex for license and copyright % %% Rotating and ref point %% \def\tx@Rot{Rot } \def\psrotateleft{% \ifPSTlualatex \def\pst@tempA{-90 }% \def\pst@tempB{90 }% \else \def\pst@tempA{90 }% \def\pst@tempB{-90 }% \fi \pst@makebox{\ps@rotateleft\pst@hbox}} \def\ps@rotateleft#1{% \leavevmode\hbox{\hskip\ht#1\hskip\dp#1\vbox{\vskip\wd#1% \pst@Verb{\pst@tempA \tx@Rot}% \vbox to \z@{\vss\hbox to \z@{\box#1\hss}\vskip\z@}% \pst@Verb{\pst@tempB \tx@Rot}}}} % \def\psrotateright{% \ifPSTlualatex \def\pst@tempA{90 }% \def\pst@tempB{-90 }% \else \def\pst@tempA{-90 }% \def\pst@tempB{90 }% \fi \pst@makebox{\ps@rotateright\pst@hbox}} \def\ps@rotateright#1{% % ----------- hv begin 2004-05-07 ----------- patch 15 % \hbox{% \leavevmode\hbox{% % ----------- hv end 2004-05-07 ----------- patch 15 \hskip\ht#1\hskip\dp#1\vbox{\vskip\wd#1% \pst@Verb{\pst@tempA \tx@Rot} \vbox to \z@{\hbox to \z@{\hss\box#1}\vss}% \pst@Verb{\pst@tempB \tx@Rot}}}} \def\psrotatedown{\pst@makebox{\ps@rotatedown\pst@hbox}} \def\ps@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}{\psrotateleft} \pslongbox{Rotateright}{\psrotateright} \pslongbox{Rotatedown}{\psrotatedown} % ----------- hv begin 2004-09-23 ----------- 1.11 % compatibility stuff \let\rotateleft\psrotateleft \let\rotateright\psrotateright \let\rotatedown\psrotatedown % ----------- hv end 2005-09-23 ----------- 1.11 \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}% \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[pstricks]{ref=c} % % % U Up 0 % L Left 90 % D Down 180 % R Right 270 % % N North *0 % W West *90 % S South *180 % E East *270 % \ifPSTlualatex \def\pst@rotlist{ mark RAngle /ps@a ED cleartomark ps@a }% \else \def\pst@rotlist{ mark RAngle /ps@a ED cleartomark ps@a neg }% \fi \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 } % \define@key[psset]{pstricks}{rot}[0]{% \pst@expandafter{\@ifnextchar*{\psset@@@rot}{\psset@@rot}}{#1}\@nil} \def\psset@@rot#1\@nil{% \def\next##1@#1=##2@##3\@nil{% \ifx##2\relax\pst@getangle{#1}\psk@rot \else\def\psk@rot{##2}\fi% \pst@Verb{ gsave STV CP T /ps@rot \ifx\psk@rot\@empty 0 \else \psk@rot \fi def grestore }% (MJS) }% \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\space ps@rot add \fi}% \pst@Verb{ gsave STV CP T /ps@rot \ifx\psk@rot\@empty 0 \else \psk@rot \fi def grestore }}% (MJS) % %\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}% %\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}} \psset[pstricks]{rot=0} % \def\tx@RotBegin{ RotBegin } \def\tx@RotEnd{ RotEnd } \def\pst@rotate#1#2{% \ifx\relax#1\relax\else \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}}% \fi }%