| 1 | %% pstricks.tex |
|---|
| 2 | %% COPYRIGHT 1993, 1994, 1999 by Timothy Van Zandt, tvz@nwu.edu. |
|---|
| 3 | %% COPYRIGHT 2000-2003 by Denis Girou. |
|---|
| 4 | %% Copyright 2004-2008 Herbert Voss |
|---|
| 5 | % |
|---|
| 6 | % This work may be distributed and/or modified under the |
|---|
| 7 | % conditions of the LaTeX Project Public License, either version 1.3 |
|---|
| 8 | % of this license or (at your option) any later version. |
|---|
| 9 | % The latest version of this license is in |
|---|
| 10 | % http://www.latex-project.org/lppl.txt |
|---|
| 11 | % and version 1.3 or later is part of all distributions of LaTeX |
|---|
| 12 | % version 2003/12/01 or later. |
|---|
| 13 | % |
|---|
| 14 | % This work has the LPPL maintenance status "maintained". |
|---|
| 15 | % |
|---|
| 16 | % This Current Maintainer of this work is Herbert Voss |
|---|
| 17 | % |
|---|
| 18 | % This work consists of the file pstricks.tex, PostScript macros |
|---|
| 19 | % for Generic TeX. |
|---|
| 20 | % See the PSTricks User's Guide for description. |
|---|
| 21 | % This uses the header file `pstricks.pro'. |
|---|
| 22 | % |
|---|
| 23 | \def\fileversion{1.20} |
|---|
| 24 | \def\filedate{2008/01/01} |
|---|
| 25 | % |
|---|
| 26 | \csname PSTricksLoaded\endcsname |
|---|
| 27 | \let\PSTricksLoaded\endinput |
|---|
| 28 | \edef\PstAtCode{\the\catcode`\@} |
|---|
| 29 | \catcode`\@=11\relax |
|---|
| 30 | \expandafter\ifx\csname @latexerr\endcsname\relax |
|---|
| 31 | \long\def\@ifundefined#1#2#3{\expandafter\ifx\csname |
|---|
| 32 | #1\endcsname\relax#2\else#3\fi} |
|---|
| 33 | \def\@namedef#1{\expandafter\def\csname #1\endcsname} |
|---|
| 34 | \def\@nameuse#1{\csname #1\endcsname} |
|---|
| 35 | % |
|---|
| 36 | \def\@eha{% |
|---|
| 37 | Your command was ignored.^^J |
|---|
| 38 | Type \space I <command> <return> \space to replace |
|---|
| 39 | it with another command,^^J |
|---|
| 40 | or \space <return> \space to continue without it.} |
|---|
| 41 | \def\@spaces{\space\space\space\space} |
|---|
| 42 | \def\typeout#1{\immediate\write\@unused{#1}} |
|---|
| 43 | \alloc@7\write\chardef\sixt@@n\@unused |
|---|
| 44 | \def\@empty{} |
|---|
| 45 | \def\@gobble#1{} |
|---|
| 46 | \def\@nnil{\@nil} |
|---|
| 47 | % |
|---|
| 48 | \def\@ifnextchar#1#2#3{% |
|---|
| 49 | \let\@tempe#1\def\@tempa{#2}\def\@tempb{#3}\futurelet\@tempc\@ifnch} |
|---|
| 50 | % |
|---|
| 51 | \def\@ifnch{% |
|---|
| 52 | \ifx\@tempc\@sptoken \let\@tempd\@xifnch |
|---|
| 53 | \else\ifx\@tempc\@tempe \let\@tempd\@tempa \else \let\@tempd\@tempb \fi |
|---|
| 54 | \fi |
|---|
| 55 | \@tempd} |
|---|
| 56 | % |
|---|
| 57 | \begingroup |
|---|
| 58 | \def\:{\global\let\@sptoken= } \: |
|---|
| 59 | \def\:{\@xifnch} \expandafter\gdef\: {\futurelet\@tempc\@ifnch} |
|---|
| 60 | \endgroup |
|---|
| 61 | \fi |
|---|
| 62 | % |
|---|
| 63 | % hv 2007-10-16 to fix the bug in pst-node with \\[name=...] |
|---|
| 64 | \def\ps@ifnextchar#1#2#3{% |
|---|
| 65 | \let\reserved@d= #1% |
|---|
| 66 | \def\reserved@a{#2}\def\reserved@b{#3}% |
|---|
| 67 | \futurelet\@let@token\ps@ifnch} |
|---|
| 68 | \def\ps@ifnch{% |
|---|
| 69 | \ifx\@let@token\reserved@d \let\reserved@b\reserved@a \fi |
|---|
| 70 | \reserved@b |
|---|
| 71 | } |
|---|
| 72 | % end bugfix |
|---|
| 73 | \typeout{`PSTricks' v\fileversion\space\space <\filedate> (tvz)} |
|---|
| 74 | \def\@pstrickserr#1#2{% |
|---|
| 75 | \begingroup |
|---|
| 76 | \newlinechar`\^^J |
|---|
| 77 | \edef\pst@tempc{#2}% |
|---|
| 78 | \expandafter\errhelp\expandafter{\pst@tempc}% |
|---|
| 79 | \typeout{% |
|---|
| 80 | PSTricks error. \space See User's Guide for further information.^^J |
|---|
| 81 | \@spaces\@spaces\@spaces\@spaces |
|---|
| 82 | Type \space H <return> \space for immediate help.}% |
|---|
| 83 | \errmessage{#1}% |
|---|
| 84 | \endgroup} |
|---|
| 85 | \def\@ehpa{% |
|---|
| 86 | Your command was ignored. Default value substituted.^^J |
|---|
| 87 | Type \space <return> \space to procede.} |
|---|
| 88 | \def\@ehpb{% |
|---|
| 89 | Your command was ignored. Will recover best I can.^^J |
|---|
| 90 | Type \space <return> \space to procede.} |
|---|
| 91 | \def\@ehpc{% |
|---|
| 92 | You better fix this before proceding.^^J |
|---|
| 93 | See the PSTricks User's Guide or ask your system administrator for help.^^J |
|---|
| 94 | Type \space X <return> \space to quit.} |
|---|
| 95 | \def\pst@misplaced#1{\@pstrickserr{Misplaced \string#1 command}\@ehpb} |
|---|
| 96 | \newdimen\pst@dima |
|---|
| 97 | \newdimen\pst@dimb |
|---|
| 98 | \newdimen\pst@dimc |
|---|
| 99 | \newdimen\pst@dimd |
|---|
| 100 | \newdimen\pst@dimg |
|---|
| 101 | \newdimen\pst@dimh |
|---|
| 102 | \newbox\pst@hbox |
|---|
| 103 | \newbox\pst@boxg |
|---|
| 104 | \newcount\pst@cnta |
|---|
| 105 | \newcount\pst@cntb |
|---|
| 106 | \newcount\pst@cntc |
|---|
| 107 | \newcount\pst@cntd |
|---|
| 108 | \newcount\pst@cntg |
|---|
| 109 | \newcount\pst@cnth |
|---|
| 110 | \newif\if@pst |
|---|
| 111 | \newtoks\pst@toks |
|---|
| 112 | \newif\if@star |
|---|
| 113 | \def\pst@ifstar#1{% |
|---|
| 114 | \@ifnextchar*{\@startrue\def\next*{#1}\next}{\@starfalse#1}} |
|---|
| 115 | \def\pst@expandafter#1#2{% |
|---|
| 116 | \def\next{#1}% |
|---|
| 117 | \edef\@tempa{#2}% |
|---|
| 118 | \ifx\@tempa\@empty |
|---|
| 119 | \@pstrickserr{Unexpected empty argument!}\@ehpb |
|---|
| 120 | \def\@tempa{\@empty}% |
|---|
| 121 | \fi |
|---|
| 122 | \expandafter\next\@tempa} |
|---|
| 123 | \def\pst@dimtonum#1#2{\edef#2{\pst@@dimtonum#1}} |
|---|
| 124 | \def\pst@@dimtonum#1{\expandafter\pst@@@dimtonum\the#1} |
|---|
| 125 | {\catcode`\p=12 \catcode`\t=12 \global\@namedef{pst@@@dimtonum}#1pt{#1}} |
|---|
| 126 | % |
|---|
| 127 | \def\pst@pyth#1#2#3{% from pst-3d |
|---|
| 128 | \begingroup |
|---|
| 129 | \pst@dima=#1\relax |
|---|
| 130 | \ifnum\pst@dima<\z@\pst@dima=-\pst@dima\fi % dima=abs(x) |
|---|
| 131 | \pst@dimb=#2\relax |
|---|
| 132 | \ifnum\pst@dimb<\z@\pst@dimb=-\pst@dimb\fi % dimb=abs(y) |
|---|
| 133 | \advance\pst@dimb\pst@dima % dimb=s=abs(x)+abs(y) |
|---|
| 134 | \ifnum\pst@dimb=\z@ |
|---|
| 135 | \global\pst@dimg=\z@ % dimg=z=sqrt(x^2+y^2) |
|---|
| 136 | \else |
|---|
| 137 | \multiply\pst@dima 8\relax % dima= 8abs(x) |
|---|
| 138 | \pst@@divide\pst@dima\pst@dimb % dimg =8t=8abs(x)/s |
|---|
| 139 | \advance\pst@dimg -4pt % dimg = 4tau = (8t-4) |
|---|
| 140 | \multiply\pst@dimg 2 |
|---|
| 141 | \pst@dimtonum\pst@dimg\pst@tempa |
|---|
| 142 | \pst@dima=\pst@tempa\pst@dimg % dima=(8tau)^2 |
|---|
| 143 | \advance\pst@dima 64pt % dima=u=[64+(8tau)^2]/2 |
|---|
| 144 | \divide\pst@dima 2\relax % =(8f)^2 |
|---|
| 145 | \pst@dimd=7pt % initial guess at sqrt(u) |
|---|
| 146 | \pst@@pyth\pst@@pyth\pst@@pyth % dimd=sqrt(u) |
|---|
| 147 | \pst@dimtonum\pst@dimd\pst@tempa |
|---|
| 148 | \pst@dimg=\pst@tempa\pst@dimb |
|---|
| 149 | \global\divide\pst@dimg 8 % dimg=z=(8f)*s/8 |
|---|
| 150 | \fi |
|---|
| 151 | \endgroup |
|---|
| 152 | #3=\pst@dimg} |
|---|
| 153 | \def\pst@@pyth{% dimd = g <-- (g + u/g)/2 |
|---|
| 154 | \pst@@divide\pst@dima\pst@dimd |
|---|
| 155 | \advance\pst@dimd\pst@dimg |
|---|
| 156 | \divide\pst@dimd 2\relax} |
|---|
| 157 | % |
|---|
| 158 | % ----- the old pst@pyth begin ----- |
|---|
| 159 | \iffalse |
|---|
| 160 | \def\pst@pyth#1#2#3{\ifdim#1>#2\pst@@pyth#1#2#3\else\pst@@pyth#2#1#3\fi} |
|---|
| 161 | \def\pst@@pyth#1#2#3{% |
|---|
| 162 | \ifdim4#1>9#2% |
|---|
| 163 | #3=#1\advance#3 .2122#2% |
|---|
| 164 | \else |
|---|
| 165 | #3=.8384#1\advance#3 .5758#2% |
|---|
| 166 | \fi% |
|---|
| 167 | } |
|---|
| 168 | \fi |
|---|
| 169 | % ----- the old pst@pyth end ----- |
|---|
| 170 | % |
|---|
| 171 | \def\pst@divide#1#2#3{% |
|---|
| 172 | \pst@@divide{#1}{#2}% |
|---|
| 173 | \pst@dimtonum\pst@dimg{#3}% |
|---|
| 174 | } |
|---|
| 175 | \def\pst@@divide#1#2{% |
|---|
| 176 | \pst@dimg=#1\relax |
|---|
| 177 | \pst@dimh=#2\relax |
|---|
| 178 | \pst@cntg=\pst@dimh |
|---|
| 179 | \pst@cnth=67108863 |
|---|
| 180 | \pst@@@divide\pst@@@divide\pst@@@divide\pst@@@divide |
|---|
| 181 | \divide\pst@dimg\pst@cntg% |
|---|
| 182 | } |
|---|
| 183 | \def\pst@@@divide{% |
|---|
| 184 | \ifnum |
|---|
| 185 | \ifnum\pst@dimg<\z@-\fi\pst@dimg<\pst@cnth |
|---|
| 186 | \multiply\pst@dimg\sixt@@n |
|---|
| 187 | \else |
|---|
| 188 | \divide\pst@cntg\sixt@@n |
|---|
| 189 | \fi% |
|---|
| 190 | } |
|---|
| 191 | \def\pst@configerr#1{% |
|---|
| 192 | \@pstrickserr{\string#1 not defined in pstricks.con}\@ehpc} |
|---|
| 193 | % |
|---|
| 194 | \def\pstVerb#1{\pst@configerr\pstVerb} |
|---|
| 195 | \def\pstverb#1{\pst@configerr\pstverb} |
|---|
| 196 | \def\pstverbscale{\pst@configerr\pstverbscale} |
|---|
| 197 | \def\pstrotate{\pst@configerr\pstrotate} |
|---|
| 198 | \def\pstheader#1{\pst@configerr\pstheader} |
|---|
| 199 | \def\pstdriver{\pst@configerr\pstdriver} |
|---|
| 200 | \@ifundefined{pstcustomize}% |
|---|
| 201 | {\def\pstcustomize{\endinput\let\pstcustomize\relax}}{} |
|---|
| 202 | % |
|---|
| 203 | \input pstricks.con % local config file |
|---|
| 204 | % |
|---|
| 205 | \newif\ifPSTricks |
|---|
| 206 | \PSTrickstrue |
|---|
| 207 | \def\PSTricksOff{% |
|---|
| 208 | \def\pstheader##1{}% |
|---|
| 209 | \def\pstverb##1{}% |
|---|
| 210 | \def\pstVerb##1{}% |
|---|
| 211 | \PSTricksfalse% |
|---|
| 212 | } |
|---|
| 213 | \@ifundefined{pst@def}{\def\pst@def#1<#2>{\@namedef{tx@#1}{#2 }}}{} |
|---|
| 214 | \@ifundefined{pst@ATH}{\def\pst@ATH<#1>{}}{} |
|---|
| 215 | % |
|---|
| 216 | \pstheader{pstricks.pro} |
|---|
| 217 | \pstheader{pst-algparser.pro} |
|---|
| 218 | % |
|---|
| 219 | \def\pst@dict{tx@Dict begin } |
|---|
| 220 | \def\pst@theheaders{pstricks.pro} |
|---|
| 221 | \def\pst@Verb#1{\pstVerb{\pst@dict #1 end}} |
|---|
| 222 | \def\tx@Atan{Atan } |
|---|
| 223 | \def\tx@Div{Div } |
|---|
| 224 | \def\tx@NET{NET } |
|---|
| 225 | \def\tx@Pyth{Pyth } |
|---|
| 226 | \def\tx@PtoC{PtoC } |
|---|
| 227 | \def\tx@PathLength@{PathLength@ } |
|---|
| 228 | \def\tx@PathLength{PathLength } |
|---|
| 229 | \pst@dimg=\pstunit\relax |
|---|
| 230 | \ifdim\pst@dimg=1bp |
|---|
| 231 | \def\pst@stp{.996264 dup scale} |
|---|
| 232 | \else |
|---|
| 233 | \edef\pst@stp{1 \pst@@dimtonum\pst@dimg\space div dup scale} |
|---|
| 234 | \fi |
|---|
| 235 | \def\tx@STP{STP } |
|---|
| 236 | \def\tx@STV{STV } |
|---|
| 237 | % |
|---|
| 238 | %--------------------------------------- PS stuff --------------------------------- |
|---|
| 239 | % on stack x y |
|---|
| 240 | \pst@def{UserCoor}< \pst@number\psyunit div exch \pst@number\psxunit div exch > |
|---|
| 241 | \pst@def{ScreenCoor}< \pst@number\psyunit mul exch \pst@number\psxunit mul exch > |
|---|
| 242 | %--------------------------------------- PS stuff end ----------------------------- |
|---|
| 243 | % |
|---|
| 244 | \def\pst@number#1{\pst@@dimtonum#1\space} |
|---|
| 245 | \def\pst@checknum#1#2{% |
|---|
| 246 | \edef\next{#1}% |
|---|
| 247 | \ifx\next\@empty |
|---|
| 248 | \let\pst@num\z@ |
|---|
| 249 | \else |
|---|
| 250 | \expandafter\pst@@checknum\next..\@nil |
|---|
| 251 | \fi |
|---|
| 252 | \ifnum\pst@num=\z@ |
|---|
| 253 | \@pstrickserr{Bad number: `#1'. 0 substituted.}\@ehpa |
|---|
| 254 | \def#2{0 }% |
|---|
| 255 | \else |
|---|
| 256 | \edef#2{\ifnum\pst@num=\tw@-\fi\the\pst@cntg.% |
|---|
| 257 | \expandafter\@gobble\the\pst@cnth\space}% |
|---|
| 258 | \fi} |
|---|
| 259 | \def\pst@@checknum{% |
|---|
| 260 | \@ifnextchar-% |
|---|
| 261 | {\let\pst@num\tw@\expandafter\pst@@@checknum\@gobble}% |
|---|
| 262 | {\let\pst@num\@ne\pst@@@checknum}% |
|---|
| 263 | } |
|---|
| 264 | % |
|---|
| 265 | \def\pst@@@checknum#1.#2.#3\@nil{% |
|---|
| 266 | \afterassignment\pst@@@@checknum\pst@cntg=0#1\relax\@nil |
|---|
| 267 | \afterassignment\pst@@@@checknum\pst@cnth=1#2\relax\@nil} |
|---|
| 268 | \def\pst@@@@checknum#1\relax\@nil{% |
|---|
| 269 | \ifx\@nil#1\@nil\else\let\pst@num\z@\fi} |
|---|
| 270 | \def\pst@getnumii#1 #2 #3\@nil{% |
|---|
| 271 | \pst@checknum{#1}\pst@tempg |
|---|
| 272 | \pst@checknum{#2}\pst@temph} |
|---|
| 273 | \def\pst@getnumiii#1 #2 #3 #4\@nil{% |
|---|
| 274 | \pst@checknum{#1}\pst@tempg |
|---|
| 275 | \pst@checknum{#2}\pst@temph |
|---|
| 276 | \pst@checknum{#3}\pst@tempi} |
|---|
| 277 | \def\pst@getnumiv#1 #2 #3 #4 #5\@nil{% |
|---|
| 278 | \pst@checknum{#1}\pst@tempg |
|---|
| 279 | \pst@checknum{#2}\pst@temph |
|---|
| 280 | \pst@checknum{#3}\pst@tempi |
|---|
| 281 | \pst@checknum{#4}\pst@tempj} |
|---|
| 282 | \def\pst@getdimnum#1 #2 #3\@nil{% |
|---|
| 283 | \pssetlength\pst@dimg{#1}% |
|---|
| 284 | \pst@checknum{#2}\pst@tempg% |
|---|
| 285 | } |
|---|
| 286 | % DG/SR modification begin - Jan. 7, 1998 - Patch 9 |
|---|
| 287 | % Missing from pstricks.bug 0.93 |
|---|
| 288 | %\def\pst@getscale#1#2{% |
|---|
| 289 | %\pst@expandafter\pst@getnumii{#1 #1} {} {} {}\@nil |
|---|
| 290 | %\@psttrue |
|---|
| 291 | %\ifdim\pst@tempg\p@=\z@ |
|---|
| 292 | %\@pstrickserr{Bad scaling argument `#1'}\@ehpa |
|---|
| 293 | %\def\pst@tempg{1 }% |
|---|
| 294 | %\@pstfalse |
|---|
| 295 | %\fi |
|---|
| 296 | %\ifdim\pst@temph\p@=\z@ |
|---|
| 297 | %\if@pst\@pstrickserr{Bad scaling argument `#1'}\@ehpa\fi |
|---|
| 298 | %\def\pst@temph{1 }% |
|---|
| 299 | %\fi |
|---|
| 300 | %\edef#2{\pst@tempg\space \pst@temph\space scale }% |
|---|
| 301 | %\ifdim\pst@tempg\p@=\p@ \ifdim\pst@temph\p@=\p@ |
|---|
| 302 | %\def#2{}% |
|---|
| 303 | %\fi\fi} |
|---|
| 304 | \def\pst@getscale#1#2{% read and check a scale input x [y] |
|---|
| 305 | \edef\pst@tempg{#1}% |
|---|
| 306 | \ifx\pst@tempg\@none |
|---|
| 307 | \def#2{}% |
|---|
| 308 | \else |
|---|
| 309 | \pst@expandafter\pst@getnumii{#1 #1} {} {} {}\@nil |
|---|
| 310 | \ifdim\pst@tempg\p@=\z@ |
|---|
| 311 | \@pstrickserr{Bad scaling argument `#1'}\@ehpa |
|---|
| 312 | \def#2{}% |
|---|
| 313 | \else |
|---|
| 314 | \ifdim\pst@temph\p@=\z@ |
|---|
| 315 | \@pstrickserr{Bad scaling argument `#1'}\@ehpa |
|---|
| 316 | \def#2{}% |
|---|
| 317 | \else |
|---|
| 318 | \edef#2{\pst@tempg\space \pst@temph\space scale }% |
|---|
| 319 | \fi |
|---|
| 320 | \fi |
|---|
| 321 | \fi% |
|---|
| 322 | } |
|---|
| 323 | % DG/SR modification end |
|---|
| 324 | \def\pst@getint#1#2{% read and check an integer |
|---|
| 325 | \pst@cntg=#1\relax |
|---|
| 326 | \edef#2{\the\pst@cntg\space}% |
|---|
| 327 | } |
|---|
| 328 | \begingroup |
|---|
| 329 | \catcode`\{=12 |
|---|
| 330 | \catcode`\}=12 |
|---|
| 331 | \catcode`\[=1 |
|---|
| 332 | \catcode`\]=2 |
|---|
| 333 | \gdef\pslbrace[{ ] |
|---|
| 334 | \gdef\psrbrace[} ] |
|---|
| 335 | \endgroup |
|---|
| 336 | \def\@newcolor#1#2{% |
|---|
| 337 | \expandafter\edef\csname #1\endcsname{\noexpand\pst@color{#2}}% |
|---|
| 338 | %\expandafter\edef\csname color@#1\endcsname{#2}% |
|---|
| 339 | \expandafter\edef\csname\string\color@#1\endcsname{#2}% hv 1.14 2005-12-17 |
|---|
| 340 | \ignorespaces} |
|---|
| 341 | \def\pst@color#1{% |
|---|
| 342 | \def\pst@currentcolor{#1}\pstVerb{#1}\aftergroup\pst@endcolor} |
|---|
| 343 | \def\pst@endcolor{\pstVerb{\pst@currentcolor}} |
|---|
| 344 | \def\pst@currentcolor{0 setgray} |
|---|
| 345 | \def\altcolormode{% |
|---|
| 346 | \def\pst@color##1{% |
|---|
| 347 | \pstVerb{gsave ##1}\aftergroup\pst@endcolor}% |
|---|
| 348 | \def\pst@endcolor{\pstVerb{\pst@grestore}}} |
|---|
| 349 | \def\pst@grestore{% |
|---|
| 350 | currentpoint |
|---|
| 351 | matrix currentmatrix |
|---|
| 352 | currentfont |
|---|
| 353 | grestore |
|---|
| 354 | setfont |
|---|
| 355 | setmatrix |
|---|
| 356 | moveto |
|---|
| 357 | } |
|---|
| 358 | %\def\pst@usecolor#1{\csname color@#1\endcsname\space}% hv 1.14 2005--12-17 |
|---|
| 359 | \def\pst@usecolor#1{\csname\string\color@#1\endcsname\space} |
|---|
| 360 | % |
|---|
| 361 | \def\newgray#1#2{% |
|---|
| 362 | \pst@checknum{#2}\pst@tempg |
|---|
| 363 | \@newcolor{#1}{\pst@tempg setgray}} |
|---|
| 364 | \def\newrgbcolor#1#2{% |
|---|
| 365 | \pst@expandafter\pst@getnumiii{#2} {} {} {} {}\@nil |
|---|
| 366 | \@newcolor{#1}{\pst@tempg \pst@temph \pst@tempi setrgbcolor}} |
|---|
| 367 | \def\newhsbcolor#1#2{% |
|---|
| 368 | \pst@expandafter\pst@getnumiii{#2} {} {} {} {}\@nil |
|---|
| 369 | \@newcolor{#1}{\pst@tempg \pst@temph \pst@tempi sethsbcolor}} |
|---|
| 370 | \def\newcmykcolor#1#2{% |
|---|
| 371 | \pst@expandafter\pst@getnumiv{#2} {} {} {} {} {}\@nil |
|---|
| 372 | \@newcolor{#1}{\pst@tempg \pst@temph \pst@tempi \pst@tempj setcmykcolor}} |
|---|
| 373 | \newgray{black}{0} |
|---|
| 374 | \newgray{darkgray}{.25} |
|---|
| 375 | \newgray{gray}{.5} |
|---|
| 376 | \newgray{lightgray}{.75} |
|---|
| 377 | \newgray{white}{1} |
|---|
| 378 | \newrgbcolor{red}{1 0 0} |
|---|
| 379 | \newrgbcolor{green}{0 1 0} |
|---|
| 380 | \newrgbcolor{blue}{0 0 1} |
|---|
| 381 | \newrgbcolor{yellow}{1 1 0} |
|---|
| 382 | \newrgbcolor{cyan}{0 1 1} |
|---|
| 383 | \newrgbcolor{magenta}{1 0 1} |
|---|
| 384 | \def\psset#1{\@psset#1,\@nil\ignorespaces} |
|---|
| 385 | \def\@psset#1,{% |
|---|
| 386 | \@@psset#1==\@nil% |
|---|
| 387 | \@ifnextchar\@nil{\@gobble}{\@psset}% |
|---|
| 388 | } |
|---|
| 389 | \def\@@psset#1=#2=#3\@nil{% |
|---|
| 390 | \@ifundefined{psset@#1}% |
|---|
| 391 | {\@pstrickserr{Graphics parameter `#1' not defined.}\@ehpa}% |
|---|
| 392 | {\@nameuse{psset@#1}{#2}}% |
|---|
| 393 | }% |
|---|
| 394 | \def\psset@style#1{% |
|---|
| 395 | \@ifundefined{pscs@#1}% |
|---|
| 396 | {\@pstrickserr{Custom style `#1' undefined}\@ehpa}% |
|---|
| 397 | {\@nameuse{pscs@#1}}% |
|---|
| 398 | } |
|---|
| 399 | %\def\newpsstyle#1#2{\@namedef{pscs@#1}{\psset{#2}}} |
|---|
| 400 | %------------ hv 1.10 beg ------------------- |
|---|
| 401 | \def\newpsstyle#1#2{\@namedef{pscs@#1}{% |
|---|
| 402 | \def\pst@tempA{#2}% |
|---|
| 403 | \ifx\pst@tempA\@empty\else\psset{#2}\fi}} |
|---|
| 404 | %------------ hv 1.10 end ------------------- |
|---|
| 405 | %------------ hv 1.16 begin ------------------- |
|---|
| 406 | \def\addto@psstyle#1#2{% |
|---|
| 407 | \pst@toks=\expandafter{#1#2}% |
|---|
| 408 | \edef#1{\the\pst@toks}} |
|---|
| 409 | \def\addtopsstyle#1#2{% |
|---|
| 410 | \def\pst@tempA{#2}% |
|---|
| 411 | \ifx\pst@tempA\@empty\else |
|---|
| 412 | \@ifundefined{pscs@#1}% |
|---|
| 413 | {\newpsstyle{#1}{#2}}% |
|---|
| 414 | {\expandafter\addto@psstyle\csname pscs@#1\endcsname{\psset{#2}}}% |
|---|
| 415 | \fi} |
|---|
| 416 | %------------ hv 1.16 end ------------------- |
|---|
| 417 | % |
|---|
| 418 | \def\@none{none} |
|---|
| 419 | \def\pst@getcolor#1#2{% |
|---|
| 420 | % \@ifundefined{color@#1}% hv 1.14 2005-12-17 |
|---|
| 421 | \@ifundefined{\string\color@#1}% |
|---|
| 422 | {\@pstrickserr{Color `#1' not defined}\@eha}% |
|---|
| 423 | {\edef#2{#1}}% |
|---|
| 424 | } |
|---|
| 425 | \newdimen\psunit \psunit 1cm |
|---|
| 426 | \newdimen\psxunit \psxunit 1cm |
|---|
| 427 | \newdimen\psyunit \psyunit 1cm |
|---|
| 428 | \let\psrunit\psunit |
|---|
| 429 | % |
|---|
| 430 | \def\pstunit@off{\let\@psunit\ignorespaces\ignorespaces} |
|---|
| 431 | % |
|---|
| 432 | \def\pssetlength#1#2{% |
|---|
| 433 | \let\@psunit\psunit |
|---|
| 434 | \afterassignment\pstunit@off |
|---|
| 435 | #1 #2\@psunit% |
|---|
| 436 | } |
|---|
| 437 | \def\psaddtolength#1#2{% |
|---|
| 438 | \let\@psunit\psunit |
|---|
| 439 | \afterassignment\pstunit@off |
|---|
| 440 | \advance#1 #2\@psunit% |
|---|
| 441 | } |
|---|
| 442 | \def\pssetxlength#1#2{% |
|---|
| 443 | \let\@psunit\psxunit |
|---|
| 444 | \afterassignment\pstunit@off |
|---|
| 445 | #1 #2\@psunit% |
|---|
| 446 | } |
|---|
| 447 | \def\pssetylength#1#2{% |
|---|
| 448 | \let\@psunit\psyunit |
|---|
| 449 | \afterassignment\pstunit@off |
|---|
| 450 | #1 #2\@psunit% |
|---|
| 451 | } |
|---|
| 452 | \def\psset@unit#1{% |
|---|
| 453 | \pssetlength\psunit{#1}% |
|---|
| 454 | \psxunit=\psunit |
|---|
| 455 | \psyunit=\psunit% |
|---|
| 456 | } |
|---|
| 457 | \def\psset@runit#1{\pssetlength\psrunit{#1}} |
|---|
| 458 | \def\psset@xunit#1{\pssetxlength\psxunit{#1}} |
|---|
| 459 | \def\psset@yunit#1{\pssetylength\psyunit{#1}} |
|---|
| 460 | % v 1.05 begin |
|---|
| 461 | \def\psset@PstDebug#1{\pst@getint{#1}{\Pst@Debug}}% hv 2004-06-22 |
|---|
| 462 | \psset{PstDebug=0} |
|---|
| 463 | % end |
|---|
| 464 | \def\pst@getlength#1#2{% |
|---|
| 465 | \pssetlength\pst@dimg{#1}% |
|---|
| 466 | \edef#2{\pst@number\pst@dimg}% |
|---|
| 467 | } |
|---|
| 468 | \def\pst@@getlength#1#2{% |
|---|
| 469 | \pssetlength\pst@dimg{#1}% |
|---|
| 470 | \edef#2{\number\pst@dimg sp}% |
|---|
| 471 | } |
|---|
| 472 | \def\pst@getcoor#1#2{\pst@@getcoor{#1}\let#2\pst@coor} |
|---|
| 473 | \def\pst@coor{0 0 } |
|---|
| 474 | \def\pst@getcoors#1#2{% |
|---|
| 475 | \def\pst@aftercoors{\addto@pscode{#1 \pst@coors }#2}% |
|---|
| 476 | \def\pst@coors{}% |
|---|
| 477 | \pst@@getcoors% |
|---|
| 478 | } |
|---|
| 479 | \def\pst@@getcoors(#1){% |
|---|
| 480 | \pst@@getcoor{#1}% |
|---|
| 481 | \edef\pst@coors{\pst@coor\pst@coors}% |
|---|
| 482 | \@ifnextchar({\pst@@getcoors}{\pst@aftercoors}% |
|---|
| 483 | } |
|---|
| 484 | \def\pst@getangle#1#2{\pst@@getangle{#1}\let#2\pst@angle} |
|---|
| 485 | \def\pst@angle{0 } |
|---|
| 486 | \def\cartesian@coor#1,#2,#3\@nil{% |
|---|
| 487 | \pssetxlength\pst@dimg{#1}% |
|---|
| 488 | \pssetylength\pst@dimh{#2}% |
|---|
| 489 | \edef\pst@coor{\pst@number\pst@dimg \pst@number\pst@dimh}% |
|---|
| 490 | } |
|---|
| 491 | \def\NormalCoor{% |
|---|
| 492 | \def\pst@@getcoor##1{\pst@expandafter\cartesian@coor{##1},\relax,\@nil}% |
|---|
| 493 | \def\pst@@getangle##1{% |
|---|
| 494 | \pst@checknum{##1}\pst@angle% |
|---|
| 495 | \edef\pst@angle{\pst@angle \pst@angleunit}% |
|---|
| 496 | }% |
|---|
| 497 | \def\psput@##1{\pst@@getcoor{##1}\leavevmode\psput@cartesian}% |
|---|
| 498 | } |
|---|
| 499 | \NormalCoor |
|---|
| 500 | \def\degrees{\@ifnextchar[{\@degrees}{\def\pst@angleunit{}}} |
|---|
| 501 | \def\@degrees[#1]{% |
|---|
| 502 | \pst@checknum{#1}\pst@tempg |
|---|
| 503 | \edef\pst@angleunit{360 \pst@tempg div mul }% |
|---|
| 504 | \ignorespaces} |
|---|
| 505 | \def\radians{\def\pst@angleunit{57.2956 mul }} |
|---|
| 506 | \def\pst@angleunit{} |
|---|
| 507 | \def\SpecialCoor{% |
|---|
| 508 | \def\pst@@getcoor##1{% |
|---|
| 509 | \begingroup% |
|---|
| 510 | \pst@activecoor% |
|---|
| 511 | \xdef\pst@tempg{##1}% |
|---|
| 512 | \endgroup% |
|---|
| 513 | \expandafter\special@coor\pst@tempg||\@nil% |
|---|
| 514 | }% |
|---|
| 515 | \def\pst@@getangle##1{% |
|---|
| 516 | \begingroup% |
|---|
| 517 | \pst@activecoor% |
|---|
| 518 | \xdef\pst@tempg{##1}% |
|---|
| 519 | \endgroup% |
|---|
| 520 | \expandafter\special@angle\pst@tempg\@empty)\@nil% |
|---|
| 521 | }% |
|---|
| 522 | \def\psput@##1{\pst@@getcoor{##1}\leavevmode\psput@special}% |
|---|
| 523 | } |
|---|
| 524 | \begingroup |
|---|
| 525 | \catcode`\|=13 |
|---|
| 526 | \catcode`\;=13 |
|---|
| 527 | \catcode`\!=13 |
|---|
| 528 | \catcode`\*=13 |
|---|
| 529 | \gdef\pst@activecoor{% |
|---|
| 530 | \def|{\string|}% |
|---|
| 531 | \def;{\string;}% |
|---|
| 532 | \def!{\string!}% |
|---|
| 533 | \def*{\string*}% algebraic expression hv 2007-11-17 |
|---|
| 534 | } |
|---|
| 535 | \endgroup |
|---|
| 536 | \def\special@coor#1|#2|#3\@nil{% |
|---|
| 537 | \ifx#3|\relax |
|---|
| 538 | \mixed@coor{#1}{#2}% |
|---|
| 539 | \else |
|---|
| 540 | \special@@coor#1;;\@nil |
|---|
| 541 | \fi% |
|---|
| 542 | } |
|---|
| 543 | \def\special@@coor#1{% |
|---|
| 544 | \ifcat#1a\relax% node names should start with a letter |
|---|
| 545 | \def\next{\node@coor#1}% |
|---|
| 546 | \else |
|---|
| 547 | \ifx#1[\relax% special node coor: [..]A |
|---|
| 548 | \def\next{\Node@coor[}% |
|---|
| 549 | \else |
|---|
| 550 | \ifx#1!\relax% PostScript code: x y |
|---|
| 551 | \def\next{\raw@coor}% |
|---|
| 552 | \else |
|---|
| 553 | \ifx#1*\relax% algebraic PostScript code: x f(x) |
|---|
| 554 | \def\next{\alg@coor}% |
|---|
| 555 | \else |
|---|
| 556 | \def\next{\special@@@coor#1}% |
|---|
| 557 | \fi |
|---|
| 558 | \fi |
|---|
| 559 | \fi |
|---|
| 560 | \fi |
|---|
| 561 | \next% |
|---|
| 562 | } |
|---|
| 563 | \def\special@@@coor#1;#2;#3\@nil{% |
|---|
| 564 | \ifx#3;\relax |
|---|
| 565 | \polar@coor{#1}{#2}% |
|---|
| 566 | \else |
|---|
| 567 | \cartesian@coor#1,\relax,\@nil |
|---|
| 568 | \fi% |
|---|
| 569 | } |
|---|
| 570 | \def\mixed@coor#1#2{% |
|---|
| 571 | \begingroup% |
|---|
| 572 | % DG/SR modification begin - Oct. 27, 1997 - Patch 6 |
|---|
| 573 | %\specialcoor@ii#1;;\@nil |
|---|
| 574 | %\let\pst@tempa\pst@coor |
|---|
| 575 | %\specialcoor@ii#2;;\@nil |
|---|
| 576 | \special@@coor#1;;\@nil% |
|---|
| 577 | \let\pst@tempa\pst@coor% |
|---|
| 578 | \special@@coor#2;;\@nil% |
|---|
| 579 | % DG/SR modification end |
|---|
| 580 | \xdef\pst@tempg{\pst@tempa pop \pst@coor exch pop }% |
|---|
| 581 | \endgroup% |
|---|
| 582 | \let\pst@coor\pst@tempg% |
|---|
| 583 | } |
|---|
| 584 | \def\polar@coor#1#2{% |
|---|
| 585 | % \pssetlength\pst@dimg{#1}% |
|---|
| 586 | \pssetlength\pst@dimb{#1}% hv 2007-10-16 g is already used in get@@angle |
|---|
| 587 | \pst@@getangle{#2}% |
|---|
| 588 | % \edef\pst@coor{\pst@number\pst@dimg \pst@angle \tx@PtoC}% dito |
|---|
| 589 | \edef\pst@coor{\pst@number\pst@dimb \pst@angle \tx@PtoC}% |
|---|
| 590 | } |
|---|
| 591 | \def\raw@coor#1;#2\@nil{% PostScript code |
|---|
| 592 | \edef\pst@coor{% |
|---|
| 593 | #1 \pst@number\psyunit mul exch \pst@number\psxunit mul exch }% |
|---|
| 594 | } |
|---|
| 595 | \def\alg@coor#1 #2;#3\@nil{% algebraicPostScript code |
|---|
| 596 | \edef\pst@coor{% |
|---|
| 597 | /x #1 def |
|---|
| 598 | /Func (#2) AlgParser cvx def |
|---|
| 599 | x Func |
|---|
| 600 | \pst@number\psyunit mul exch \pst@number\psxunit mul exch }% |
|---|
| 601 | } |
|---|
| 602 | \def\node@coor#1\@nil{% |
|---|
| 603 | \@pstrickserr{You must load `pst-node.tex' to use node coordinates.}\@ehps |
|---|
| 604 | \def\pst@coor{0 0 }% |
|---|
| 605 | } |
|---|
| 606 | \def\Node@coor{\node@coor} |
|---|
| 607 | \def\special@angle#1#2)#3\@nil{% |
|---|
| 608 | \ifx!#1\relax |
|---|
| 609 | \edef\pst@angle{#2 \pst@angleunit}% |
|---|
| 610 | \else |
|---|
| 611 | \ifx(#1\relax |
|---|
| 612 | \pst@@getcoor{#2}% |
|---|
| 613 | \edef\pst@angle{\pst@coor exch \tx@Atan}% |
|---|
| 614 | \else |
|---|
| 615 | \pst@checknum{#1#2}\pst@angle |
|---|
| 616 | \edef\pst@angle{\pst@angle \pst@angleunit}% |
|---|
| 617 | \fi |
|---|
| 618 | \fi} |
|---|
| 619 | \def\Cartesian{% |
|---|
| 620 | \def\cartesian@coor##1,##2,##3\@nil{% |
|---|
| 621 | \pssetxlength\pst@dimg{##1}% |
|---|
| 622 | \pssetylength\pst@dimh{##2}% |
|---|
| 623 | \edef\pst@coor{\pst@number\pst@dimg \pst@number\pst@dimh}% |
|---|
| 624 | }% |
|---|
| 625 | \@ifnextchar({\Cartesian@}{}% |
|---|
| 626 | } |
|---|
| 627 | \def\Cartesian@(#1,#2){% |
|---|
| 628 | \pssetxlength\psxunit{#1}% |
|---|
| 629 | \pssetylength\psyunit{#2}% |
|---|
| 630 | \ignorespaces% |
|---|
| 631 | } |
|---|
| 632 | \def\Polar{% |
|---|
| 633 | \def\psput@cartesian{\psput@special}% |
|---|
| 634 | \def\cartesian@coor##1,##2,##3\@nil{\polar@coor{##1}{##2}}% |
|---|
| 635 | }% |
|---|
| 636 | \def\psset@origin#1{% |
|---|
| 637 | \pst@@getcoor{#1}% |
|---|
| 638 | % ----------- 1.10 beg hv ------------------- |
|---|
| 639 | % \edef\psk@origin{\pst@coor \tx@NET }} |
|---|
| 640 | \edef\psk@origin{\pst@coor T }} |
|---|
| 641 | % ----------- 1.10 end hv ------------------- |
|---|
| 642 | \def\psk@origin{} |
|---|
| 643 | % |
|---|
| 644 | \newif\ifswapaxes |
|---|
| 645 | \def\psset@swapaxes#1{% |
|---|
| 646 | \@nameuse{@pst#1}% |
|---|
| 647 | \if@pst\def\psk@swapaxes{-90 rotate -1 1 scale }% |
|---|
| 648 | \else\def\psk@swapaxes{}% |
|---|
| 649 | \fi% |
|---|
| 650 | } |
|---|
| 651 | \psset@swapaxes{false} |
|---|
| 652 | % |
|---|
| 653 | \newif\ifshowpoints |
|---|
| 654 | \def\psset@showpoints#1{\@nameuse{showpoints#1}} |
|---|
| 655 | \psset@showpoints{false} |
|---|
| 656 | % |
|---|
| 657 | \let\pst@setrepeatarrowsflag\relax |
|---|
| 658 | % |
|---|
| 659 | \def\psset@border#1{% |
|---|
| 660 | \pst@getlength{#1}\psk@border |
|---|
| 661 | \pst@setrepeatarrowsflag} |
|---|
| 662 | \psset@border{0pt} |
|---|
| 663 | \def\psset@bordercolor#1{\pst@getcolor{#1}\psbordercolor} |
|---|
| 664 | \psset@bordercolor{white} |
|---|
| 665 | \newif\ifpsdoubleline |
|---|
| 666 | \def\psset@doubleline#1{% |
|---|
| 667 | \@nameuse{psdoubleline#1}% |
|---|
| 668 | \pst@setrepeatarrowsflag} |
|---|
| 669 | \psset@doubleline{false} |
|---|
| 670 | \def\psset@doublesep#1{\def\psdoublesep{#1}} |
|---|
| 671 | \psset@doublesep{1.25\pslinewidth} |
|---|
| 672 | \def\psset@doublecolor#1{\pst@getcolor{#1}\psdoublecolor} |
|---|
| 673 | \psset@doublecolor{white} |
|---|
| 674 | \newif\ifpsshadow |
|---|
| 675 | \def\psset@shadow#1{% |
|---|
| 676 | \@nameuse{psshadow#1}% |
|---|
| 677 | \pst@setrepeatarrowsflag} |
|---|
| 678 | \psset@shadow{false} |
|---|
| 679 | \def\psset@shadowsize#1{\pst@getlength{#1}\psk@shadowsize} |
|---|
| 680 | \psset@shadowsize{3pt} |
|---|
| 681 | \def\psset@shadowangle#1{\pst@getangle{#1}\psk@shadowangle} |
|---|
| 682 | \psset@shadowangle{-45} |
|---|
| 683 | \def\psset@shadowcolor#1{\pst@getcolor{#1}\psshadowcolor} |
|---|
| 684 | \psset@shadowcolor{darkgray} |
|---|
| 685 | \def\pst@repeatarrowsflag{\z@} |
|---|
| 686 | \def\pst@setrepeatarrowsflag{% |
|---|
| 687 | \edef\pst@repeatarrowsflag{% |
|---|
| 688 | \ifdim\psk@border\p@>\z@ 1\else\ifpsdoubleline 1\else |
|---|
| 689 | \ifpsshadow 1\else \z@\fi\fi\fi}} |
|---|
| 690 | \def\psls@none{} |
|---|
| 691 | \newdimen\pslinewidth |
|---|
| 692 | \def\psset@linewidth#1{\pssetlength\pslinewidth{#1}} |
|---|
| 693 | \psset@linewidth{.8pt} |
|---|
| 694 | \def\psset@linecolor#1{\pst@getcolor{#1}\pslinecolor} |
|---|
| 695 | \psset@linecolor{black} |
|---|
| 696 | \def\psls@solid{\psk@linecap\space setlinecap stroke } |
|---|
| 697 | % |
|---|
| 698 | \def\psset@linecap#1{\pst@getint{#1}\psk@linecap}% hv 2007-12-01 |
|---|
| 699 | \psset@linecap{0}% hv 2007-12-01 |
|---|
| 700 | \def\psset@linejoin#1{\pst@getint{#1}\psk@linejoin}% hv 2007-10-13 |
|---|
| 701 | \def\tx@setlinejoin{\psk@linejoin\space setlinejoin }% hv 2007-10-13 |
|---|
| 702 | \psset@linejoin{0}% hv 2007-10-13 |
|---|
| 703 | % |
|---|
| 704 | \def\pst@missing{% |
|---|
| 705 | \z@ |
|---|
| 706 | \@pstrickserr{Missing number or dimension. 0 substituted}\@ehpa} |
|---|
| 707 | % |
|---|
| 708 | %%------------------- begin patch 15 HV 2004-05-15 ------------- |
|---|
| 709 | %\def\psset@dash#1{% |
|---|
| 710 | % \pst@expandafter\psset@@dash{#1} {\pst@missing} {\pst@missing} {}\@nil |
|---|
| 711 | % \edef\psk@dash{\pst@number\pst@dimg \pst@number\pst@dimh}% |
|---|
| 712 | %} |
|---|
| 713 | %\def\psset@@dash#1 #2 #3\@nil{% |
|---|
| 714 | %\pssetlength\pst@dimg{#1}% |
|---|
| 715 | %\pssetlength\pst@dimh{#2}} |
|---|
| 716 | %\psset@dash{5pt 3pt} |
|---|
| 717 | \def\pst@empty{\z@} |
|---|
| 718 | \def\psset@dash#1{% black white [ black white ] |
|---|
| 719 | \pst@expandafter\psset@@dash{#1} {\pst@empty} {\pst@empty} % |
|---|
| 720 | {\pst@missing} {\pst@missing} {}\@nil |
|---|
| 721 | \edef\psk@dash{\pst@number\pst@dimg \pst@number\pst@dimh |
|---|
| 722 | \pst@number\pst@dimc \pst@number\pst@dimd}% |
|---|
| 723 | } |
|---|
| 724 | \def\psset@@dash#1 #2 #3 #4 #5\@nil{% |
|---|
| 725 | \pssetlength\pst@dimg{#1}% |
|---|
| 726 | \pssetlength\pst@dimh{#2}% |
|---|
| 727 | \pssetlength\pst@dimc{#3}% |
|---|
| 728 | \pssetlength\pst@dimd{#4}% |
|---|
| 729 | } |
|---|
| 730 | \psset@dash{5pt 3pt 0pt 0pt}% black white black white |
|---|
| 731 | %%------------------- end patch 15 HV 2004-05-15 ------------- |
|---|
| 732 | \newif\ifpsdashadjust |
|---|
| 733 | \def\psset@dashadjust#1{\@nameuse{psdashadjust#1}} |
|---|
| 734 | \psset@dashadjust{true} |
|---|
| 735 | \def\tx@DashLine{DashLine } |
|---|
| 736 | \def\psls@dashed{% |
|---|
| 737 | %%--------------------------------- hv 2006-04-29 beg --------------------- |
|---|
| 738 | \psk@linecap\space setlinecap |
|---|
| 739 | %%--------------------------------- hv 2006-04-29 end --------------------- |
|---|
| 740 | \ifpsdashadjust |
|---|
| 741 | % \psk@dash \pst@linetype\space \tx@DashLine |
|---|
| 742 | \psk@dash \@ifundefined{pst@linetype}{2}{\pst@linetype}\space \tx@DashLine |
|---|
| 743 | \else |
|---|
| 744 | [ \psk@dash ] 0 setdash stroke |
|---|
| 745 | \fi} |
|---|
| 746 | \def\psset@dotsep#1{\pst@getlength{#1}\psk@dotsep} |
|---|
| 747 | \psset@dotsep{3pt} |
|---|
| 748 | \def\tx@DotLine{DotLine } |
|---|
| 749 | \def\psls@dotted{% |
|---|
| 750 | \ifpsdashadjust |
|---|
| 751 | \psk@dotsep \pst@linetype\space \tx@DotLine |
|---|
| 752 | \else |
|---|
| 753 | [ 0 \psk@dotsep CLW add ] 0 setdash 1 setlinecap stroke |
|---|
| 754 | \fi% |
|---|
| 755 | } |
|---|
| 756 | \def\psset@linestyle#1{% |
|---|
| 757 | \@ifundefined{psls@#1}% |
|---|
| 758 | {\@pstrickserr{Line style `#1' not defined}\@eha}% |
|---|
| 759 | {\edef\pslinestyle{#1}}% |
|---|
| 760 | } |
|---|
| 761 | \psset@linestyle{solid} |
|---|
| 762 | %%--------------------------------- hv 2006-04-29 beg --------------------- |
|---|
| 763 | \def\psset@linecap#1{% |
|---|
| 764 | \def\psk@linecap{0}% |
|---|
| 765 | \ifnum#1>-1 |
|---|
| 766 | \ifnum#1<3 |
|---|
| 767 | \pst@getint{#1}\psk@linecap% |
|---|
| 768 | \fi\fi% |
|---|
| 769 | } |
|---|
| 770 | \psset{linecap=0} |
|---|
| 771 | %--------------------------------- hv 2006-04-29 end --------------------- |
|---|
| 772 | % |
|---|
| 773 | %--------------------------------- hv 2007-09-09 begin --------------------- |
|---|
| 774 | % transparency needs a run through latex -> dvips -> ps2pdf14(!) |
|---|
| 775 | % use transpalpha=<mumber> to the the opacity level |
|---|
| 776 | % |
|---|
| 777 | \def\psset@fillcolor#1{\pst@getcolor{#1}\psfillcolor} |
|---|
| 778 | \psset@fillcolor{white} |
|---|
| 779 | \def\psset@strokeopacity#1{\pst@checknum{#1}\psk@strokeopacityalpha }% for lines |
|---|
| 780 | \psset@strokeopacity{1} |
|---|
| 781 | \def\psset@opacity#1{\pst@checknum{#1}\psk@opacityalpha }% for filled areas |
|---|
| 782 | \psset@opacity{1} |
|---|
| 783 | \def\psset@shapealpha#1{\pst@checknum{#1}\psk@shapealpha } |
|---|
| 784 | \psset@shapealpha{0.6} |
|---|
| 785 | \def\psset@blendmode#1{\pst@getint{#1}\psk@blendmode }% must be one of |
|---|
| 786 | % /Normal 0 |
|---|
| 787 | % /Compatible 1 |
|---|
| 788 | % /Screen 2 |
|---|
| 789 | % /Multiply 3 |
|---|
| 790 | % /HardLight 4 |
|---|
| 791 | \psset@blendmode{0} |
|---|
| 792 | % |
|---|
| 793 | \def\psfs@none{} |
|---|
| 794 | \def\psfs@solid{\pst@fill{\pst@usecolor\psfillcolor \psk@opacityalpha .setopacityalpha fill }} |
|---|
| 795 | \def\psfs@eofill{\pst@fill{\pst@usecolor\psfillcolor \psk@opacityalpha .setopacityalpha eofill}} |
|---|
| 796 | \def\psfs@shape{% |
|---|
| 797 | \pst@fill{ |
|---|
| 798 | \pst@usecolor\psfillcolor |
|---|
| 799 | \ifcase\psk@blendmode |
|---|
| 800 | /Normal \or |
|---|
| 801 | /Compatible \or |
|---|
| 802 | /Screen \or |
|---|
| 803 | /Multiply %\or |
|---|
| 804 | % /Hardlight |
|---|
| 805 | \fi |
|---|
| 806 | .setblendmode \psk@shapealpha .setshapealpha fill }} |
|---|
| 807 | % |
|---|
| 808 | %--------------------------------- hv 2007-09-09 end --------------------- |
|---|
| 809 | % |
|---|
| 810 | \def\psset@hatchwidth#1{\pst@getlength{#1}\psk@hatchwidth} |
|---|
| 811 | \psset@hatchwidth{.8pt} |
|---|
| 812 | \def\psset@hatchsep#1{\pst@getlength{#1}\psk@hatchsep} |
|---|
| 813 | \psset@hatchsep{4pt} |
|---|
| 814 | \def\psset@hatchcolor#1{\pst@getcolor{#1}\pshatchcolor} |
|---|
| 815 | \psset@hatchcolor{black} |
|---|
| 816 | \def\psset@hatchangle#1{\pst@getangle{#1}\psk@hatchangle} |
|---|
| 817 | \psset@hatchangle{45} |
|---|
| 818 | % ------------ hv 1.11 ------------ |
|---|
| 819 | \def\psset@hatchsepinc#1{\pst@getlength{#1}\psk@hatchsepinc} |
|---|
| 820 | \def\psset@hatchwidthinc#1{\pst@getlength{#1}\psk@hatchwidthinc} |
|---|
| 821 | \psset@hatchwidthinc{0pt} |
|---|
| 822 | \psset@hatchsepinc{0pt} |
|---|
| 823 | % |
|---|
| 824 | \def\pst@linefill{% |
|---|
| 825 | \psk@hatchangle rotate |
|---|
| 826 | \psk@hatchwidth SLW |
|---|
| 827 | \pst@usecolor\pshatchcolor |
|---|
| 828 | \psk@hatchsep |
|---|
| 829 | \psk@hatchsepinc |
|---|
| 830 | \psk@hatchwidthinc |
|---|
| 831 | \tx@LineFill } |
|---|
| 832 | % ------------ hv 1.11 ------------ |
|---|
| 833 | % |
|---|
| 834 | \def\psfs@vlines{\pst@fill\pst@linefill} |
|---|
| 835 | \@namedef{psfs@vlines*}{\psfs@solid \psfs@vlines} |
|---|
| 836 | \def\psfs@hlines{\pst@fill{90 rotate \pst@linefill}} |
|---|
| 837 | \@namedef{psfs@hlines*}{\psfs@solid \psfs@hlines} |
|---|
| 838 | \def\psfs@crosshatch{\psfs@vlines \psfs@hlines} |
|---|
| 839 | \@namedef{psfs@crosshatch*}{\psfs@solid \psfs@vlines \psfs@hlines} |
|---|
| 840 | \def\tx@LineFill{LineFill } |
|---|
| 841 | \def\psset@fillstyle#1{% |
|---|
| 842 | \edef\pst@tempg{#1}\def\pst@temph{none}% |
|---|
| 843 | \ifx\pst@tempg\pst@temph |
|---|
| 844 | \let\psk@fillstyle\relax |
|---|
| 845 | \else |
|---|
| 846 | \@ifundefined{psfs@#1}% |
|---|
| 847 | {\@pstrickserr{Undefined fill style: `#1'}\@eha}% |
|---|
| 848 | {\edef\psk@fillstyle{\expandafter\noexpand\csname psfs@#1\endcsname}}% |
|---|
| 849 | \fi% |
|---|
| 850 | } |
|---|
| 851 | \def\psset@addfillstyle#1{% |
|---|
| 852 | \@ifundefined{psfs@#1}% |
|---|
| 853 | {\@pstrickserr{Undefined fill style: `#1'}\@eha}% |
|---|
| 854 | {\edef\psk@fillstyle{% |
|---|
| 855 | \expandafter\noexpand\psk@fillstyle |
|---|
| 856 | \expandafter\noexpand\csname psfs@#1\endcsname}% |
|---|
| 857 | }% |
|---|
| 858 | } |
|---|
| 859 | \psset@fillstyle{none} |
|---|
| 860 | \def\psset@arrows#1{% |
|---|
| 861 | \begingroup |
|---|
| 862 | \pst@activearrows |
|---|
| 863 | \xdef\pst@tempg{#1}% |
|---|
| 864 | \endgroup |
|---|
| 865 | \expandafter\psset@@arrows\pst@tempg\@empty-\@empty\@nil |
|---|
| 866 | \if@pst\else |
|---|
| 867 | \@pstrickserr{Bad arrows specification: #1}\@ehpa |
|---|
| 868 | \fi% |
|---|
| 869 | } |
|---|
| 870 | \def\psset@@arrows#1-#2\@empty#3\@nil{% |
|---|
| 871 | \@psttrue |
|---|
| 872 | \def\next##1,#1-##2,##3\@nil{\def\pst@tempg{##2}}% |
|---|
| 873 | \expandafter\next\pst@arrowtable,#1-#1,\@nil |
|---|
| 874 | \@ifundefined{psas@\pst@tempg}% |
|---|
| 875 | {\@pstfalse\def\psk@arrowA{}}% |
|---|
| 876 | {\let\psk@arrowA\pst@tempg}% |
|---|
| 877 | \@ifundefined{psas@#2}% |
|---|
| 878 | {\@pstfalse\def\psk@arrowB{}}% |
|---|
| 879 | {\def\psk@arrowB{#2}}% |
|---|
| 880 | } |
|---|
| 881 | \def\psk@arrowA{} |
|---|
| 882 | \def\psk@arrowB{} |
|---|
| 883 | %\def\pst@arrowtable{,<->,<<->>,>-<,>>-<<,(-),[-]} |
|---|
| 884 | \def\pst@arrowtable{,<->,<<->>,>-<,>>-<<,(-),[-],)-(,]-[,|>-<|,<D-D>,<D<D-D>D>} % hv --1.16 |
|---|
| 885 | \begingroup |
|---|
| 886 | \catcode`\<=13 |
|---|
| 887 | \catcode`\>=13 |
|---|
| 888 | \catcode`\|=13 |
|---|
| 889 | \gdef\pst@activearrows{\def<{\string<}\def>{\string>}\def|{\string|}} |
|---|
| 890 | \endgroup |
|---|
| 891 | \def\tx@BeginArrow{BeginArrow } |
|---|
| 892 | \def\tx@EndArrow{EndArrow } |
|---|
| 893 | % Redefininition of \psset@arrowscale to store value of X scale factor hv --1.12 |
|---|
| 894 | %\def\psset@arrowscale#1{\pst@getscale{#1}\psk@arrowscale} |
|---|
| 895 | \def\psset@arrowscale#1{% hv --1.12 |
|---|
| 896 | \pst@@arrowscale@i#1 \@nil% hv -- 1.12 |
|---|
| 897 | \pst@getscale{\pst@arrowscale}\psk@arrowscale}% hv --1.12 |
|---|
| 898 | \def\pst@@arrowscale@i#1 #2\@nil{\edef\pst@arrowscale{#1}}% hv --1.12 |
|---|
| 899 | \psset@arrowscale{1} |
|---|
| 900 | % |
|---|
| 901 | \def\psset@arrowsize#1{% |
|---|
| 902 | \pst@expandafter\pst@getdimnum{#1} 0 {} {}\@nil |
|---|
| 903 | \edef\psk@arrowsize{\pst@number\pst@dimg \pst@tempg}% |
|---|
| 904 | } |
|---|
| 905 | \psset@arrowsize{1.5pt 2} |
|---|
| 906 | \def\psset@arrowlength#1{\pst@checknum{#1}\psk@arrowlength} |
|---|
| 907 | \psset@arrowlength{1.4} |
|---|
| 908 | \def\psset@arrowinset#1{\pst@checknum{#1}\psk@arrowinset}% |
|---|
| 909 | \psset@arrowinset{.4} |
|---|
| 910 | \def\tx@Arrow{ \psk@strokeopacityalpha .setopacityalpha Arrow }% hv 2008-01-13 |
|---|
| 911 | % new definitions of the missing arrows ---- hv 1.1.2 |
|---|
| 912 | \def\tx@ArrowD{ \psk@strokeopacityalpha .setopacityalpha ArrowD }% hv 2008-01-13 |
|---|
| 913 | % |
|---|
| 914 | \@namedef{psas@<|}{ |
|---|
| 915 | \psk@tbarsize\space \tx@Tbar |
|---|
| 916 | 0 CLW 2 div T |
|---|
| 917 | newpath |
|---|
| 918 | true |
|---|
| 919 | \psk@arrowinset |
|---|
| 920 | \psk@arrowlength |
|---|
| 921 | \psk@arrowsize |
|---|
| 922 | \tx@Arrow |
|---|
| 923 | } |
|---|
| 924 | % ]-[ arrow |
|---|
| 925 | \def\tx@BracketOut{BracketOut } |
|---|
| 926 | \@namedef{psas@[}{% |
|---|
| 927 | /BracketOut {% |
|---|
| 928 | CLW mul add dup CLW sub 2 div |
|---|
| 929 | %/x ED mul CLW add |
|---|
| 930 | /x ED mul neg |
|---|
| 931 | /y ED |
|---|
| 932 | /z CLW 2 div def |
|---|
| 933 | x neg y moveto |
|---|
| 934 | x neg CLW 2 div L x CLW 2 div L x y L stroke 0 CLW moveto } def |
|---|
| 935 | \psk@bracketlength\space \psk@tbarsize\space \tx@BracketOut |
|---|
| 936 | } |
|---|
| 937 | % )-( arrow |
|---|
| 938 | \def\tx@RoundBracketOut{ \psk@strokeopacityalpha .setopacityalpha RoundBracketOut }% hv 2008-01-13 |
|---|
| 939 | \@namedef{psas@(}{% |
|---|
| 940 | /RoundBracketOut {% |
|---|
| 941 | CLW mul add dup 2 div |
|---|
| 942 | %/x ED mul |
|---|
| 943 | /x ED mul neg |
|---|
| 944 | /y ED |
|---|
| 945 | /mtrx CM def |
|---|
| 946 | 0 CLW |
|---|
| 947 | 2 div T x y mul 0 ne { x y scale } if |
|---|
| 948 | 1 1 moveto |
|---|
| 949 | .85 .5 .35 0 0 0 curveto |
|---|
| 950 | -.35 0 -.85 .5 -1 1 curveto |
|---|
| 951 | mtrx setmatrix stroke 0 CLW moveto } def |
|---|
| 952 | \psk@rbracketlength\space \psk@tbarsize\space \tx@RoundBracketOut |
|---|
| 953 | } |
|---|
| 954 | % end of new definitions of the missing arrows ---- hv 1.12 |
|---|
| 955 | \@namedef{psas@>}{ false \psk@arrowinset \psk@arrowlength \psk@arrowsize \tx@Arrow } |
|---|
| 956 | \@namedef{psas@>>}{% |
|---|
| 957 | false \psk@arrowinset \psk@arrowlength \psk@arrowsize \tx@Arrow |
|---|
| 958 | 0 h T gsave newpath |
|---|
| 959 | false \psk@arrowinset \psk@arrowlength \psk@arrowsize \tx@Arrow |
|---|
| 960 | CP grestore CP newpath moveto 2 copy L stroke moveto |
|---|
| 961 | } |
|---|
| 962 | \@namedef{psas@<}{true \psk@arrowinset \psk@arrowlength \psk@arrowsize \tx@Arrow} |
|---|
| 963 | \@namedef{psas@<<}{ |
|---|
| 964 | true \psk@arrowinset \psk@arrowlength \psk@arrowsize \tx@Arrow |
|---|
| 965 | CP newpath moveto 0 a neg L stroke 0 h neg T |
|---|
| 966 | false \psk@arrowinset \psk@arrowlength \psk@arrowsize \tx@Arrow |
|---|
| 967 | } |
|---|
| 968 | \@namedef{psas@D>}{ false \psk@arrowinset \psk@arrowlength \psk@arrowsize \tx@ArrowD }% hv 20071211 |
|---|
| 969 | \@namedef{psas@D>D>}{ % hv 20071211 |
|---|
| 970 | false \psk@arrowinset \psk@arrowlength \psk@arrowsize \tx@ArrowD |
|---|
| 971 | 0 h Inset sub T gsave newpath |
|---|
| 972 | false \psk@arrowinset \psk@arrowlength \psk@arrowsize \tx@ArrowD |
|---|
| 973 | CP grestore moveto |
|---|
| 974 | } |
|---|
| 975 | \@namedef{psas@<D}{ % hv 20071211 |
|---|
| 976 | true \psk@arrowinset \psk@arrowlength \psk@arrowsize \tx@ArrowD |
|---|
| 977 | } |
|---|
| 978 | \@namedef{psas@<D<D}{ % hv 20071211 |
|---|
| 979 | true \psk@arrowinset \psk@arrowlength \psk@arrowsize \tx@ArrowD |
|---|
| 980 | CP newpath moveto 0 a neg L stroke 0 h neg T |
|---|
| 981 | true \psk@arrowinset \psk@arrowlength \psk@arrowsize \tx@ArrowD |
|---|
| 982 | } |
|---|
| 983 | \def\psset@tbarsize#1{% |
|---|
| 984 | \pst@expandafter\pst@getdimnum{#1} 0 {} {}\@nil |
|---|
| 985 | \edef\psk@tbarsize{\pst@number\pst@dimg \pst@tempg}% |
|---|
| 986 | } |
|---|
| 987 | \psset@tbarsize{2pt 5} |
|---|
| 988 | \def\tx@Tbar{Tbar } |
|---|
| 989 | \@namedef{psas@|}{\psk@tbarsize \tx@Tbar} |
|---|
| 990 | \@namedef{psas@|*}{0 CLW -2 div T \psk@tbarsize \tx@Tbar} |
|---|
| 991 | \@namedef{psas@>|}{% |
|---|
| 992 | \psk@tbarsize \tx@Tbar |
|---|
| 993 | 0 CLW 2 div T |
|---|
| 994 | newpath |
|---|
| 995 | false \psk@arrowinset \psk@arrowlength \psk@arrowsize \tx@Arrow |
|---|
| 996 | } |
|---|
| 997 | \@namedef{psas@>|*}{% |
|---|
| 998 | 0 CLW -2 div T |
|---|
| 999 | \psk@tbarsize \tx@Tbar |
|---|
| 1000 | 0 CLW 2 div T |
|---|
| 1001 | newpath |
|---|
| 1002 | false \psk@arrowinset \psk@arrowlength \psk@arrowsize \tx@Arrow |
|---|
| 1003 | } |
|---|
| 1004 | \edef\pst@arrowtable{\pst@arrowtable,|<*->|*,|<->|} |
|---|
| 1005 | \def\psset@bracketlength#1{\pst@checknum{#1}\psk@bracketlength} |
|---|
| 1006 | \psset@bracketlength{.15} |
|---|
| 1007 | \def\tx@Bracket{Bracket } |
|---|
| 1008 | \@namedef{psas@]}{\psk@bracketlength \psk@tbarsize \tx@Bracket} |
|---|
| 1009 | \def\psset@rbracketlength#1{\pst@checknum{#1}\psk@rbracketlength} |
|---|
| 1010 | \psset@rbracketlength{.15} |
|---|
| 1011 | \def\tx@RoundBracket{RoundBracket } |
|---|
| 1012 | \@namedef{psas@)}{\psk@rbracketlength \psk@tbarsize \tx@RoundBracket} |
|---|
| 1013 | \def\psas@c{1 \psas@@c} |
|---|
| 1014 | \def\psas@cc{0 CLW 2 div T 1 \psas@@c} |
|---|
| 1015 | \def\psas@C{2 \psas@@c} |
|---|
| 1016 | \def\psas@@c{% |
|---|
| 1017 | setlinecap |
|---|
| 1018 | 0 0 moveto |
|---|
| 1019 | %%-------------------- v.1.04 begin HV 2004-05-18 ---------------- |
|---|
| 1020 | % 0 CLW 2 div L |
|---|
| 1021 | 0 0.1 L % changed value from 0.5 to 0.1 |
|---|
| 1022 | %%-------------------- v. 1.04 end HV 2004-05-18 ---------------- |
|---|
| 1023 | stroke |
|---|
| 1024 | 0 0 moveto |
|---|
| 1025 | } |
|---|
| 1026 | \def\psas@{} |
|---|
| 1027 | \psset@arrows{-} |
|---|
| 1028 | \def\tx@SD{ \psk@opacityalpha .setopacityalpha SD } |
|---|
| 1029 | \def\tx@EndDot{EndDot } |
|---|
| 1030 | \def\psas@oo{{\pst@usecolor\psfillcolor true} true \psk@dotsize \tx@EndDot} |
|---|
| 1031 | \def\psas@o{{\pst@usecolor\psfillcolor true} false \psk@dotsize \tx@EndDot} |
|---|
| 1032 | \@namedef{psas@**}{{false} true \psk@dotsize \tx@EndDot} |
|---|
| 1033 | \@namedef{psas@*}{{false} false \psk@dotsize \tx@EndDot} |
|---|
| 1034 | \def\pst@par{} |
|---|
| 1035 | \def\addto@par#1{% |
|---|
| 1036 | \ifx\pst@par\@empty |
|---|
| 1037 | \def\pst@par{#1}% |
|---|
| 1038 | \else |
|---|
| 1039 | \expandafter\def\expandafter\pst@par\expandafter{\pst@par,#1}% |
|---|
| 1040 | \fi% |
|---|
| 1041 | } |
|---|
| 1042 | \def\addbefore@par#1{% |
|---|
| 1043 | \ifx\pst@par\@empty |
|---|
| 1044 | \def\pst@par{#1}% |
|---|
| 1045 | \else |
|---|
| 1046 | \toks@{#1}% |
|---|
| 1047 | \pst@toks\expandafter{\pst@par}% |
|---|
| 1048 | \edef\pst@par{\the\toks@,\the\pst@toks}% |
|---|
| 1049 | \fi% |
|---|
| 1050 | } |
|---|
| 1051 | \def\use@par{% |
|---|
| 1052 | \ifx\pst@par\@empty\else |
|---|
| 1053 | \expandafter\@psset\pst@par,\@nil |
|---|
| 1054 | \def\pst@par{}% |
|---|
| 1055 | \fi% |
|---|
| 1056 | } |
|---|
| 1057 | \def\pst@object#1{% |
|---|
| 1058 | \pst@ifstar{% |
|---|
| 1059 | \@ifnextchar[{\pst@@object{#1}}{\def\pst@par{}\@nameuse{#1@i}}}% |
|---|
| 1060 | } |
|---|
| 1061 | \def\pst@@object#1[#2]{% |
|---|
| 1062 | \def\pst@par{#2}% |
|---|
| 1063 | \@ifnextchar+{\@nameuse{#1@i}}{\@nameuse{#1@i}}} |
|---|
| 1064 | \def\newpsobject#1#2#3{% |
|---|
| 1065 | \@ifundefined{#2@i}% |
|---|
| 1066 | {\@pstrickserr{Graphics object `#2' not defined}\@eha}{% |
|---|
| 1067 | \@namedef{#1}{\pst@object{#1}}% |
|---|
| 1068 | \@namedef{#1@i}{\addbefore@par{#3}\@nameuse{#2@i}}}% |
|---|
| 1069 | \ignorespaces} |
|---|
| 1070 | \def\pst@getarrows#1{\@ifnextchar({#1}{\pst@@getarrows{#1}}} |
|---|
| 1071 | % ------------------------- hv 1.10 beg ------------------------ |
|---|
| 1072 | %\def\pst@@getarrows#1#2{\addto@par{arrows=#2}#1} |
|---|
| 1073 | \def\pst@@getarrows#1#2{% |
|---|
| 1074 | \def\pst@tempa{#2}% prevent empty arrow arguments, to allow \psline{}(...)(...) |
|---|
| 1075 | \ifx\pst@tempa\@empty\addto@par{arrows=-}\else\addto@par{arrows=#2}\fi#1} |
|---|
| 1076 | % ------------------------- hv 1.10 end ------------------------ |
|---|
| 1077 | % |
|---|
| 1078 | \def\begin@ClosedObj{% |
|---|
| 1079 | \leavevmode |
|---|
| 1080 | \pst@killglue |
|---|
| 1081 | \begingroup |
|---|
| 1082 | \use@par |
|---|
| 1083 | \solid@star |
|---|
| 1084 | \ifpsdoubleline \pst@setdoublesep \fi |
|---|
| 1085 | \init@pscode% |
|---|
| 1086 | } |
|---|
| 1087 | \def\end@ClosedObj{% |
|---|
| 1088 | \ifpsshadow \pst@closedshadow \fi |
|---|
| 1089 | \ifdim\psk@border\p@>\z@ \pst@addborder \fi |
|---|
| 1090 | \psk@fillstyle |
|---|
| 1091 | \pst@stroke |
|---|
| 1092 | \ifpsdoubleline \pst@doublestroke \fi |
|---|
| 1093 | \ifshowpoints |
|---|
| 1094 | % DG modification begin - Mar. 4, 1995 |
|---|
| 1095 | %\addto@pscode{Points aload length 2 div cvi /N ED \psdots@iii}% |
|---|
| 1096 | \pst@OpenShowPoints |
|---|
| 1097 | % DG modification end |
|---|
| 1098 | \fi |
|---|
| 1099 | \use@pscode |
|---|
| 1100 | \endgroup |
|---|
| 1101 | \ignorespaces% |
|---|
| 1102 | } |
|---|
| 1103 | \def\begin@OpenObj{% |
|---|
| 1104 | \begin@ClosedObj |
|---|
| 1105 | \let\pst@linetype\pst@arrowtype |
|---|
| 1106 | \pst@addarrowdef% |
|---|
| 1107 | } |
|---|
| 1108 | \def\begin@AltOpenObj{% |
|---|
| 1109 | \begin@ClosedObj |
|---|
| 1110 | \def\pst@repeatarrowsflag{\z@}% |
|---|
| 1111 | \def\pst@linetype{0}} |
|---|
| 1112 | % |
|---|
| 1113 | \def\end@OpenObj{% |
|---|
| 1114 | \ifpsshadow \pst@openshadow \fi |
|---|
| 1115 | \ifdim\psk@border\p@>\z@ \pst@addborder \fi |
|---|
| 1116 | \psk@fillstyle |
|---|
| 1117 | \pst@stroke |
|---|
| 1118 | \ifpsdoubleline \pst@doublestroke \fi |
|---|
| 1119 | \ifnum\pst@repeatarrowsflag>\z@ \pst@repeatarrows \fi |
|---|
| 1120 | \ifshowpoints \pst@OpenShowPoints \fi |
|---|
| 1121 | \use@pscode |
|---|
| 1122 | \endgroup |
|---|
| 1123 | \ignorespaces} |
|---|
| 1124 | % |
|---|
| 1125 | \def\begin@SpecialObj{% |
|---|
| 1126 | \leavevmode |
|---|
| 1127 | \pst@killglue |
|---|
| 1128 | \begingroup |
|---|
| 1129 | \use@par |
|---|
| 1130 | \init@pscode} |
|---|
| 1131 | % |
|---|
| 1132 | \def\end@SpecialObj{% |
|---|
| 1133 | \use@pscode |
|---|
| 1134 | \endgroup |
|---|
| 1135 | \ignorespaces} |
|---|
| 1136 | % |
|---|
| 1137 | \def\pst@code{}% |
|---|
| 1138 | \def\init@pscode{% |
|---|
| 1139 | \addto@pscode{% |
|---|
| 1140 | \pst@number\pslinewidth SLW |
|---|
| 1141 | \pst@usecolor\pslinecolor}% |
|---|
| 1142 | } |
|---|
| 1143 | \def\addto@pscode#1{\xdef\pst@code{\pst@code#1\space}} |
|---|
| 1144 | \def\use@pscode{% |
|---|
| 1145 | \pstverb{ |
|---|
| 1146 | \pst@dict |
|---|
| 1147 | \tx@STP |
|---|
| 1148 | \pst@newpath |
|---|
| 1149 | \psk@origin |
|---|
| 1150 | \psk@swapaxes |
|---|
| 1151 | \pst@code |
|---|
| 1152 | end |
|---|
| 1153 | }% |
|---|
| 1154 | \gdef\pst@code{}% |
|---|
| 1155 | } |
|---|
| 1156 | \def\pst@newpath{newpath } |
|---|
| 1157 | % |
|---|
| 1158 | \def\pst@@killglue{\unskip\ifdim\lastskip>\z@\expandafter\pst@@killglue\fi} |
|---|
| 1159 | \def\KillGlue{\let\pst@killglue\pst@@killglue} |
|---|
| 1160 | \def\DontKillGlue{\let\pst@killglue\relax} |
|---|
| 1161 | \DontKillGlue |
|---|
| 1162 | % |
|---|
| 1163 | \def\solid@star{% |
|---|
| 1164 | \if@star |
|---|
| 1165 | \pslinewidth=\z@ |
|---|
| 1166 | \psdoublelinefalse |
|---|
| 1167 | \def\pslinestyle{none}% |
|---|
| 1168 | \def\psk@fillstyle{\psfs@solid}% |
|---|
| 1169 | \let\psfillcolor\pslinecolor |
|---|
| 1170 | \fi} |
|---|
| 1171 | % |
|---|
| 1172 | \def\pst@setdoublesep{% |
|---|
| 1173 | \pst@getlength\psdoublesep\psdoublesep |
|---|
| 1174 | \pslinewidth=2\pslinewidth |
|---|
| 1175 | \advance\pslinewidth\psdoublesep\p@ |
|---|
| 1176 | \let\pst@setdoublesep\relax} |
|---|
| 1177 | \def\tx@Shadow{Shadow } |
|---|
| 1178 | \def\pst@closedshadow{% |
|---|
| 1179 | \addto@pscode{% |
|---|
| 1180 | gsave |
|---|
| 1181 | \psk@shadowsize \psk@shadowangle \tx@PtoC |
|---|
| 1182 | \tx@Shadow |
|---|
| 1183 | \pst@usecolor\psshadowcolor |
|---|
| 1184 | gsave fill grestore |
|---|
| 1185 | stroke |
|---|
| 1186 | grestore |
|---|
| 1187 | gsave |
|---|
| 1188 | \pst@usecolor\psfillcolor |
|---|
| 1189 | gsave fill grestore |
|---|
| 1190 | stroke |
|---|
| 1191 | grestore}} |
|---|
| 1192 | % |
|---|
| 1193 | \def\pst@openshadow{% |
|---|
| 1194 | \addto@pscode{% |
|---|
| 1195 | gsave |
|---|
| 1196 | \psk@shadowsize \psk@shadowangle \tx@PtoC |
|---|
| 1197 | \tx@Shadow |
|---|
| 1198 | \pst@usecolor\psshadowcolor |
|---|
| 1199 | \ifx\psk@fillstyle\relax\else |
|---|
| 1200 | gsave fill grestore |
|---|
| 1201 | \fi |
|---|
| 1202 | stroke}% |
|---|
| 1203 | \pst@repeatarrows% |
|---|
| 1204 | \addto@pscode{grestore}% |
|---|
| 1205 | \ifx\psk@fillstyle\relax\else |
|---|
| 1206 | \addto@pscode{% |
|---|
| 1207 | gsave |
|---|
| 1208 | \pst@usecolor\psfillcolor |
|---|
| 1209 | gsave fill grestore |
|---|
| 1210 | stroke |
|---|
| 1211 | grestore}% |
|---|
| 1212 | \fi} |
|---|
| 1213 | % |
|---|
| 1214 | \def\pst@addborder{% |
|---|
| 1215 | \addto@pscode{% |
|---|
| 1216 | gsave |
|---|
| 1217 | \psk@border 2 mul |
|---|
| 1218 | CLW add SLW |
|---|
| 1219 | \pst@usecolor\psbordercolor |
|---|
| 1220 | stroke |
|---|
| 1221 | grestore}} |
|---|
| 1222 | % |
|---|
| 1223 | \def\pst@stroke{% |
|---|
| 1224 | \ifx\pslinestyle\@none\else |
|---|
| 1225 | \addto@pscode{% |
|---|
| 1226 | gsave |
|---|
| 1227 | \pst@number\pslinewidth SLW |
|---|
| 1228 | \pst@usecolor\pslinecolor |
|---|
| 1229 | \psk@strokeopacityalpha .setopacityalpha % hv 2008-01-13 |
|---|
| 1230 | \@nameuse{psls@\pslinestyle} |
|---|
| 1231 | grestore}% |
|---|
| 1232 | \fi} |
|---|
| 1233 | % |
|---|
| 1234 | \def\pst@fill#1{\addto@pscode{gsave #1 grestore}}% |
|---|
| 1235 | % |
|---|
| 1236 | \def\pst@doublestroke{% |
|---|
| 1237 | \addto@pscode{% |
|---|
| 1238 | gsave |
|---|
| 1239 | \psdoublesep SLW |
|---|
| 1240 | \pst@usecolor\psdoublecolor |
|---|
| 1241 | stroke |
|---|
| 1242 | grestore |
|---|
| 1243 | }} |
|---|
| 1244 | % |
|---|
| 1245 | \def\pst@arrowtype{% |
|---|
| 1246 | \ifx\psk@arrowB\@empty 0 \else -2 \fi |
|---|
| 1247 | \ifx\psk@arrowA\@empty 0 \else -1 \fi |
|---|
| 1248 | add } |
|---|
| 1249 | % |
|---|
| 1250 | \def\pst@addarrowdef{% |
|---|
| 1251 | \addto@pscode{% |
|---|
| 1252 | /ArrowA { |
|---|
| 1253 | \ifx\psk@arrowA\@empty |
|---|
| 1254 | \pst@oplineto |
|---|
| 1255 | \else |
|---|
| 1256 | \pst@arrowdef{A} |
|---|
| 1257 | moveto |
|---|
| 1258 | \fi |
|---|
| 1259 | } def |
|---|
| 1260 | /ArrowB { \ifx\psk@arrowB\@empty \else \pst@arrowdef{B} \fi } def |
|---|
| 1261 | }} |
|---|
| 1262 | % |
|---|
| 1263 | \def\pst@arrowdef#1{% |
|---|
| 1264 | \ifnum\pst@repeatarrowsflag>\z@ |
|---|
| 1265 | /Arrow#1c [ 6 2 roll ] cvx def Arrow#1c |
|---|
| 1266 | \fi |
|---|
| 1267 | \tx@BeginArrow |
|---|
| 1268 | \psk@arrowscale |
|---|
| 1269 | \@nameuse{psas@\@nameuse{psk@arrow#1}} |
|---|
| 1270 | \tx@EndArrow |
|---|
| 1271 | } |
|---|
| 1272 | % |
|---|
| 1273 | \def\pst@repeatarrows{% |
|---|
| 1274 | \addto@pscode{% |
|---|
| 1275 | gsave |
|---|
| 1276 | \ifx\psk@arrowA\@empty\else ArrowAc ArrowA pop pop \fi |
|---|
| 1277 | \ifx\psk@arrowB\@empty\else ArrowBc ArrowB pop pop pop pop \fi |
|---|
| 1278 | grestore |
|---|
| 1279 | }} |
|---|
| 1280 | % |
|---|
| 1281 | \def\pst@OpenShowPoints{% |
|---|
| 1282 | \addto@pscode{% |
|---|
| 1283 | gsave |
|---|
| 1284 | \psk@dotsize |
|---|
| 1285 | \@nameuse{psds@\psk@dotstyle} |
|---|
| 1286 | newpath |
|---|
| 1287 | Points aload length 2 div 2 sub cvi /N ED |
|---|
| 1288 | N 0 ge |
|---|
| 1289 | { \ifx\psk@arrowA\@empty Dot \else pop pop \fi |
|---|
| 1290 | N { Dot } repeat |
|---|
| 1291 | \ifx\psk@arrowB\@empty Dot \else pop pop \fi } |
|---|
| 1292 | { N 2 mul { pop } repeat } ifelse |
|---|
| 1293 | grestore |
|---|
| 1294 | }} |
|---|
| 1295 | % |
|---|
| 1296 | \def\pscustom{\pst@object{pscustom}} |
|---|
| 1297 | \long\def\pscustom@i#1{% |
|---|
| 1298 | \begin@SpecialObj |
|---|
| 1299 | \solid@star |
|---|
| 1300 | \let\pst@ifcustom\iftrue |
|---|
| 1301 | \let\begin@ClosedObj\begin@CustomObj |
|---|
| 1302 | \let\end@ClosedObj\endgroup |
|---|
| 1303 | \def\begin@OpenObj{\begin@CustomObj\pst@addarrowdef}% |
|---|
| 1304 | \let\end@OpenObj\endgroup |
|---|
| 1305 | \let\begin@AltOpenObj\begin@CustomObj |
|---|
| 1306 | \def\begin@SpecialObj{% |
|---|
| 1307 | \begingroup |
|---|
| 1308 | \pst@misplaced{special graphics object}% |
|---|
| 1309 | \def\addto@pscode####1{} |
|---|
| 1310 | \let\end@SpecialObj\endgroup}% |
|---|
| 1311 | \def\@multips(##1)(##2)##3##4{\pst@misplaced\multips}% |
|---|
| 1312 | \def\psclip##1{\pst@misplaced\psclip}% |
|---|
| 1313 | \def\pst@repeatarrowsflag{\z@}% |
|---|
| 1314 | \let\pst@setrepeatarrowsflag\relax |
|---|
| 1315 | \showpointsfalse |
|---|
| 1316 | \let\showpointstrue\relax |
|---|
| 1317 | \def\pst@linetype{\pslinetype}% |
|---|
| 1318 | \let\psset@liftpen\psset@@liftpen |
|---|
| 1319 | \psset@liftpen{\z@}% |
|---|
| 1320 | \def\pst@cp{/currentpoint load stopped pop }% |
|---|
| 1321 | \def\pst@oplineto{/lineto load stopped { moveto } if }% |
|---|
| 1322 | \def\pst@optcp##1##2{% |
|---|
| 1323 | \ifnum##1=\z@\def##2{/currentpoint load stopped { 0 0 } if }\fi}% |
|---|
| 1324 | \let\caddto@pscode\addto@pscode |
|---|
| 1325 | \def\cuse@par##1{{\use@par##1}}% |
|---|
| 1326 | \the\pst@customdefs |
|---|
| 1327 | \setbox\pst@hbox=\hbox{#1}% |
|---|
| 1328 | \psk@fillstyle |
|---|
| 1329 | \pst@stroke |
|---|
| 1330 | \end@SpecialObj} |
|---|
| 1331 | % |
|---|
| 1332 | \def\begin@CustomObj{% |
|---|
| 1333 | \begingroup |
|---|
| 1334 | \use@par |
|---|
| 1335 | \addto@pscode{% |
|---|
| 1336 | \pst@number\pslinewidth SLW |
|---|
| 1337 | \pst@usecolor\pslinecolor |
|---|
| 1338 | }% |
|---|
| 1339 | } |
|---|
| 1340 | \def\pst@oplineto{moveto } |
|---|
| 1341 | \def\pst@cp{} |
|---|
| 1342 | \def\pst@optcp#1#2{} |
|---|
| 1343 | \def\psset@liftpen#1{} |
|---|
| 1344 | \def\psset@@liftpen#1{% |
|---|
| 1345 | \ifcase#1\relax |
|---|
| 1346 | \def\psk@liftpen{\z@}% |
|---|
| 1347 | \def\pst@cp{/currentpoint load stopped pop }% |
|---|
| 1348 | \def\pst@oplineto{/lineto load stopped { moveto } if }% |
|---|
| 1349 | \or |
|---|
| 1350 | \def\psk@liftpen{1}% |
|---|
| 1351 | \def\pst@cp{}% |
|---|
| 1352 | \def\pst@oplineto{/lineto load stopped { moveto } if }% |
|---|
| 1353 | \or |
|---|
| 1354 | \def\psk@liftpen{2}% |
|---|
| 1355 | \def\pst@cp{}% |
|---|
| 1356 | \def\pst@oplineto{moveto }% |
|---|
| 1357 | \fi% |
|---|
| 1358 | } |
|---|
| 1359 | \psset@liftpen{0} |
|---|
| 1360 | \def\psk@liftpen{-1} |
|---|
| 1361 | % |
|---|
| 1362 | \def\psset@linetype#1{% |
|---|
| 1363 | \pst@getint{#1}\pslinetype |
|---|
| 1364 | %----------------- hv begin 2006-04-20 ------------- patch 1.14b |
|---|
| 1365 | \ifnum\pst@cntg<-3 |
|---|
| 1366 | % \ifnum\pst@dimg<-3 |
|---|
| 1367 | %----------------- hv end 2004-05-07 ------------- patch 1.14b |
|---|
| 1368 | \@pstrickserr{linetype must be greater than -3}\@ehpa |
|---|
| 1369 | %----------------- hv begin 2004-05-07 ------------- patch 15 |
|---|
| 1370 | % \def\pslinetype{0}% |
|---|
| 1371 | \def\pslinetype{2}% |
|---|
| 1372 | \fi% |
|---|
| 1373 | } |
|---|
| 1374 | %\psset@linetype{0} |
|---|
| 1375 | \psset@linetype{2}% otherwise there is a problem when using e.g. |
|---|
| 1376 | % \psaxes[axesstyle=frame,linestyle=dashed]{->}(3,-2) |
|---|
| 1377 | %----------------- hv end 2004-05-07 ------------- patch 15 |
|---|
| 1378 | % |
|---|
| 1379 | \def\caddto@pscode#1{% |
|---|
| 1380 | \@pstrickserr{Command can only be used in \string\pscustom}\@ehpa% |
|---|
| 1381 | } |
|---|
| 1382 | \let\cuse@par\caddto@pscode |
|---|
| 1383 | % |
|---|
| 1384 | \def\tx@MSave{% |
|---|
| 1385 | /msavematrx |
|---|
| 1386 | [ tx@Dict /msavematrx known % does msavematrix exists? |
|---|
| 1387 | { msavematrx aload pop } if |
|---|
| 1388 | CM % matrix currentmatrix |
|---|
| 1389 | ] |
|---|
| 1390 | def |
|---|
| 1391 | %----------------- hv begin 2004-05-07 ------------- patch 15 |
|---|
| 1392 | msavematrx |
|---|
| 1393 | %----------------- hv end 2004-05-07 ------------- patch 15 |
|---|
| 1394 | } |
|---|
| 1395 | \def\tx@MRestore{% a typo in pstricks with msavematrx |
|---|
| 1396 | tx@Dict /msavematrx known { length 0 gt } { false } ifelse |
|---|
| 1397 | { msavematrx aload pop setmatrix } if |
|---|
| 1398 | } |
|---|
| 1399 | % |
|---|
| 1400 | \newtoks\pst@customdefs |
|---|
| 1401 | \pst@customdefs{% |
|---|
| 1402 | \def\newpath{\addto@pscode{newpath}}% |
|---|
| 1403 | \def\moveto(#1){\pst@@getcoor{#1}\addto@pscode{\pst@coor moveto}}% |
|---|
| 1404 | \def\closepath{\addto@pscode{closepath}}% |
|---|
| 1405 | \def\gsave{\begingroup\addto@pscode{gsave}}% |
|---|
| 1406 | \def\grestore{\endgroup\addto@pscode{grestore}}% |
|---|
| 1407 | % DG/SR modification begin - May 12, 1997 - Patch 2 |
|---|
| 1408 | % \def\translate(#1){\pst@@getcoor{#1}\addto@pscode{\pst@coor moveto}}% |
|---|
| 1409 | \def\translate(#1){\pst@@getcoor{#1}\addto@pscode{\pst@coor translate}}% |
|---|
| 1410 | % DG/SR modification end |
|---|
| 1411 | \def\rotate#1{\pst@@getangle{#1}\addto@pscode{\pst@angle rotate}}% |
|---|
| 1412 | \def\scale#1{\pst@getscale{#1}\pst@tempg\addto@pscode{\pst@tempg}}% |
|---|
| 1413 | \def\msave{\addto@pscode{\tx@MSave}}% |
|---|
| 1414 | \def\mrestore{\addto@pscode{\tx@MRestore}}% |
|---|
| 1415 | \def\swapaxes{\addto@pscode{-90 rotate -1 1 scale}}% |
|---|
| 1416 | \def\stroke{\pst@object{stroke}}% |
|---|
| 1417 | \def\fill{\pst@object{fill}}% |
|---|
| 1418 | \def\openshadow{\pst@object{openshadow}}% |
|---|
| 1419 | \def\closedshadow{\pst@object{closedshadow}}% |
|---|
| 1420 | % DG/SR modification begin - Jan. 7, 1998 - Patch 8 |
|---|
| 1421 | % \def\movepath(#1){\pst@@getcoor{#1}\addto@pscode{\pst@coor tx@Shadow}}% |
|---|
| 1422 | \def\movepath(#1){\pst@@getcoor{#1}\addto@pscode{\pst@coor \tx@Shadow}}% |
|---|
| 1423 | % DG/SR modification end |
|---|
| 1424 | \def\lineto{\pst@onecoor{lineto}}% |
|---|
| 1425 | \def\rlineto{\pst@onecoor{rlineto}}% |
|---|
| 1426 | \def\curveto{\pst@threecoor{curveto}}% |
|---|
| 1427 | \def\rcurveto{\pst@threecoor{rcurveto}}% |
|---|
| 1428 | \def\code#1{\addto@pscode{#1}}% |
|---|
| 1429 | \def\coor(#1){\pst@@getcoor{#1}\addto@pscode\pst@coor\@ifnextchar({\coor}{}}% |
|---|
| 1430 | \def\rcoor{\pst@getcoors{}{}}% |
|---|
| 1431 | \def\dim#1{\pssetlength\pst@dimg{#1}\addto@pscode{\pst@number\pst@dimg}}% |
|---|
| 1432 | \def\setcolor#1{% |
|---|
| 1433 | % ----------------hv begin 2004-05-07-------------------- patch 15 |
|---|
| 1434 | % \@ifundefined{color@#1}{}{\addto@pscode{\use@color{#1}}}}% |
|---|
| 1435 | % \@ifundefined{color@#1}{}{\addto@pscode{\pst@usecolor{#1}}}}% |
|---|
| 1436 | \@ifundefined{\string\color@#1}{}{\addto@pscode{\pst@usecolor{#1}}}}% hv 1.14 2005-12-17 |
|---|
| 1437 | % ----------------hv end 2004-05-07-------------------- |
|---|
| 1438 | \def\arrows#1{{\psset@arrows{#1}\pst@addarrowdef}}% |
|---|
| 1439 | \let\file\pst@rawfile |
|---|
| 1440 | } % END \pst@customdefs |
|---|
| 1441 | % |
|---|
| 1442 | \def\closedshadow@i{\cuse@par\pst@closedshadow} |
|---|
| 1443 | \def\openshadow@i{\cuse@par\pst@openshadow} |
|---|
| 1444 | \def\stroke@i{\cuse@par\pst@stroke}% |
|---|
| 1445 | \def\fill@i{\cuse@par\psk@fillstyle}% |
|---|
| 1446 | \def\pst@onecoor#1(#2){% |
|---|
| 1447 | \pst@@getcoor{#2}% |
|---|
| 1448 | \addto@pscode{\pst@coor #1}} |
|---|
| 1449 | \def\pst@threecoor#1(#2)#3(#4)#5(#6){% |
|---|
| 1450 | \begingroup |
|---|
| 1451 | \pst@getcoor{#2}\pst@tempa |
|---|
| 1452 | \pst@getcoor{#4}\pst@tempb |
|---|
| 1453 | % DG/SR modification begin - Aug. 4, 1999 - Patch 11 |
|---|
| 1454 | %\pst@getcoor{#6}\pst@tembc |
|---|
| 1455 | \pst@getcoor{#6}\pst@tempc |
|---|
| 1456 | % DG/SR modification end |
|---|
| 1457 | \addto@pscode{\pst@tempa \pst@tempb \pst@tempc #1}% |
|---|
| 1458 | \endgroup} |
|---|
| 1459 | % |
|---|
| 1460 | \def\pst@rawfile#1{% |
|---|
| 1461 | \begingroup |
|---|
| 1462 | \def\do##1{\catcode`##1=12\relax}" |
|---|
| 1463 | \dospecials |
|---|
| 1464 | \catcode`\%=14 |
|---|
| 1465 | \pst@@rawfile{#1}% |
|---|
| 1466 | \endgroup} |
|---|
| 1467 | % |
|---|
| 1468 | \def\pst@@rawfile#1{% |
|---|
| 1469 | \immediate\openin1 #1 |
|---|
| 1470 | \ifeof1 |
|---|
| 1471 | \@pstrickserr{File `#1' not found}\@ehpa |
|---|
| 1472 | \else |
|---|
| 1473 | \immediate\read1 to \pst@tempg |
|---|
| 1474 | \loop |
|---|
| 1475 | \ifeof1 \@pstfalse\else\@psttrue\fi |
|---|
| 1476 | \if@pst |
|---|
| 1477 | \addto@pscode\pst@tempg |
|---|
| 1478 | \immediate\read1 to \pst@tempg |
|---|
| 1479 | \repeat |
|---|
| 1480 | \fi |
|---|
| 1481 | \immediate\closein1\relax} |
|---|
| 1482 | % |
|---|
| 1483 | \def\tx@NArray{NArray } |
|---|
| 1484 | \def\tx@NArray{NArray } |
|---|
| 1485 | \def\tx@Line{Line } |
|---|
| 1486 | \def\tx@Arcto{Arcto } |
|---|
| 1487 | \def\tx@CheckClosed{CheckClosed } |
|---|
| 1488 | \def\tx@Polygon{Polygon } |
|---|
| 1489 | \def\psset@gangle#1{\pst@getangle{#1}\psk@gangle} |
|---|
| 1490 | \psset@gangle{0} |
|---|
| 1491 | % |
|---|
| 1492 | \def\tx@Diamond{Diamond } |
|---|
| 1493 | \def\psdiamond{\pst@object{psdiamond}} |
|---|
| 1494 | \def\psdiamond@i(#1){\@ifnextchar({\psdiamond@ii(#1)}{\psdiamond@ii(0,0)(#1)}} |
|---|
| 1495 | \def\psdiamond@ii(#1)(#2){% |
|---|
| 1496 | \begin@ClosedObj |
|---|
| 1497 | \pst@getcoor{#1}\pst@tempa |
|---|
| 1498 | \pst@getcoor{#2}\pst@tempb |
|---|
| 1499 | \addto@pscode{% |
|---|
| 1500 | \psline@iii |
|---|
| 1501 | pop |
|---|
| 1502 | \psk@dimen |
|---|
| 1503 | \pst@tempb |
|---|
| 1504 | \psk@gangle |
|---|
| 1505 | \pst@tempa |
|---|
| 1506 | \tx@Diamond |
|---|
| 1507 | }% |
|---|
| 1508 | \def\pst@linetype{4}% |
|---|
| 1509 | \end@ClosedObj} |
|---|
| 1510 | % |
|---|
| 1511 | \def\tx@Triangle{Triangle } |
|---|
| 1512 | \def\pstriangle{\pst@object{pstriangle}} |
|---|
| 1513 | \def\pstriangle@i(#1){\@ifnextchar({\pstriangle@ii(#1)}{\pstriangle@ii(0,0)(#1)}} |
|---|
| 1514 | \def\pstriangle@ii(#1)(#2){% |
|---|
| 1515 | \begin@ClosedObj |
|---|
| 1516 | \pst@getcoor{#1}\pst@tempa% the center of the baseline |
|---|
| 1517 | \pst@getcoor{#2}\pst@tempb% the height of the triangle |
|---|
| 1518 | \addto@pscode{% |
|---|
| 1519 | \psline@iii |
|---|
| 1520 | pop % no showpoints option |
|---|
| 1521 | \psk@dimen % outer/inner/middle |
|---|
| 1522 | \pst@tempb |
|---|
| 1523 | \psk@gangle % rotating angle |
|---|
| 1524 | \pst@tempa |
|---|
| 1525 | \tx@Triangle |
|---|
| 1526 | }% |
|---|
| 1527 | \def\pst@linetype{2}% |
|---|
| 1528 | \end@ClosedObj} |
|---|
| 1529 | % |
|---|
| 1530 | \def\tx@CCA{CCA } |
|---|
| 1531 | \def\tx@CCA{CCA } |
|---|
| 1532 | \def\tx@CC{CC } |
|---|
| 1533 | \def\tx@IC{IC } |
|---|
| 1534 | \def\tx@BOC{BOC } |
|---|
| 1535 | \def\tx@NC{NC } |
|---|
| 1536 | \def\tx@EOC{EOC } |
|---|
| 1537 | \def\tx@BAC{BAC } |
|---|
| 1538 | \def\tx@NAC{NAC } |
|---|
| 1539 | \def\tx@EAC{EAC } |
|---|
| 1540 | \def\tx@OpenCurve{OpenCurve } |
|---|
| 1541 | \def\tx@AltCurve{AltCurve } |
|---|
| 1542 | \def\tx@ClosedCurve{ClosedCurve } |
|---|
| 1543 | \def\psset@curvature#1{% |
|---|
| 1544 | \edef\pst@tempg{#1 }% |
|---|
| 1545 | \expandafter\psset@@curvature\pst@tempg * * * \@nil} |
|---|
| 1546 | \def\psset@@curvature#1 #2 #3 #4\@nil{% |
|---|
| 1547 | \pst@checknum{#1}\pst@tempg |
|---|
| 1548 | \pst@checknum{#2}\pst@temph |
|---|
| 1549 | \pst@checknum{#3}\pst@tempi |
|---|
| 1550 | \edef\psk@curvature{\pst@tempg \pst@temph \pst@tempi}} |
|---|
| 1551 | \psset@curvature{1 .1 0} |
|---|
| 1552 | \def\pscurve{\pst@object{pscurve}} |
|---|
| 1553 | \def\pscurve@i{% |
|---|
| 1554 | \pst@getarrows{% |
|---|
| 1555 | \begin@OpenObj |
|---|
| 1556 | \pst@getcoors[\pscurve@ii% |
|---|
| 1557 | }% |
|---|
| 1558 | } |
|---|
| 1559 | \def\pscurve@ii{% |
|---|
| 1560 | \addto@pscode{ |
|---|
| 1561 | \pst@cp |
|---|
| 1562 | \psk@curvature\space /c ED /b ED /a ED |
|---|
| 1563 | \ifshowpoints true \else false \fi |
|---|
| 1564 | \tx@OpenCurve |
|---|
| 1565 | }% |
|---|
| 1566 | \end@OpenObj% |
|---|
| 1567 | } |
|---|
| 1568 | \def\psecurve{\pst@object{psecurve}} |
|---|
| 1569 | \def\psecurve@i{% |
|---|
| 1570 | \pst@getarrows{% |
|---|
| 1571 | \begin@OpenObj |
|---|
| 1572 | \pst@getcoors[\psecurve@ii}} |
|---|
| 1573 | \def\psecurve@ii{% |
|---|
| 1574 | \addto@pscode{% |
|---|
| 1575 | \psk@curvature\space /c ED /b ED /a ED |
|---|
| 1576 | \ifshowpoints true \else false \fi |
|---|
| 1577 | \tx@AltCurve}% |
|---|
| 1578 | \end@OpenObj} |
|---|
| 1579 | \def\psccurve{\pst@object{psccurve}} |
|---|
| 1580 | \def\psccurve@i{% |
|---|
| 1581 | \begin@ClosedObj |
|---|
| 1582 | \pst@getcoors[\psccurve@ii} |
|---|
| 1583 | \def\psccurve@ii{% |
|---|
| 1584 | \addto@pscode{% |
|---|
| 1585 | \psk@curvature\space /c ED /b ED /a ED |
|---|
| 1586 | \ifshowpoints true \else false \fi |
|---|
| 1587 | \tx@ClosedCurve}% |
|---|
| 1588 | \def\pst@linetype{1}% |
|---|
| 1589 | \end@ClosedObj} |
|---|
| 1590 | \def\psset@dotsize#1{% |
|---|
| 1591 | \pst@expandafter\pst@getdimnum{#1} 0 {} {}\@nil |
|---|
| 1592 | \edef\psk@@dotsize{\pst@number\pst@dimg}% |
|---|
| 1593 | \let\psk@@@dotsize\pst@tempg |
|---|
| 1594 | \edef\psk@dotsize{% |
|---|
| 1595 | /DS \psk@@dotsize \psk@@@dotsize CLW mul add 2 div def }} |
|---|
| 1596 | \psset@dotsize{2pt 2} |
|---|
| 1597 | \def\psset@dotscale#1{% |
|---|
| 1598 | \pst@getscale{#1}\psk@dotscale |
|---|
| 1599 | \ifx\psk@dotscale\@empty |
|---|
| 1600 | \def\psk@xdotscale{1 }% |
|---|
| 1601 | \def\psk@ydotscale{1 }% |
|---|
| 1602 | \else |
|---|
| 1603 | \let\psk@xdotscale\pst@tempg |
|---|
| 1604 | \let\psk@ydotscale\pst@temph |
|---|
| 1605 | \fi} |
|---|
| 1606 | % DG/SR modification begin - Oct. 17, 1997 - Patch 5 |
|---|
| 1607 | %\psset@dotscale{1} |
|---|
| 1608 | % DG/SR modification end |
|---|
| 1609 | \def\pst@Getangle#1#2{% |
|---|
| 1610 | \pst@getangle{#1}\pst@tempg |
|---|
| 1611 | \def\pst@temph{0. }% |
|---|
| 1612 | \ifx\pst@tempg\pst@temph |
|---|
| 1613 | \def#2{}% |
|---|
| 1614 | \else |
|---|
| 1615 | \edef#2{\pst@tempg\space rotate }% |
|---|
| 1616 | \fi} |
|---|
| 1617 | \def\psset@dotangle#1{% |
|---|
| 1618 | \pst@getangle{#1}\psk@@dotangle |
|---|
| 1619 | \ifdim\psk@@dotangle\p@=\z@ |
|---|
| 1620 | \let\psk@dotangle\@empty |
|---|
| 1621 | \else |
|---|
| 1622 | % DG/SR modification begin - Aug. 8, 1997 - Patch 4 |
|---|
| 1623 | %\edef\psk@dotangle{\psk@@dotangle rotate } |
|---|
| 1624 | \edef\psk@dotangle{\psk@@dotangle rotate }% |
|---|
| 1625 | % DG/SR modification end |
|---|
| 1626 | \fi} |
|---|
| 1627 | \psset@dotangle{0} |
|---|
| 1628 | \def\pst@getdotsize{% |
|---|
| 1629 | \pst@dimg=\psk@@@dotsize\pslinewidth |
|---|
| 1630 | \advance\pst@dimg\psk@@dotsize\p@ |
|---|
| 1631 | \pst@dimh=\psk@ydotscale\pst@dimg |
|---|
| 1632 | \pst@dimg=\psk@xdotscale\pst@dimg |
|---|
| 1633 | \divide\pst@dimh 2 |
|---|
| 1634 | \divide\pst@dimg 2\relax} |
|---|
| 1635 | % DG/SR modification begin - Oct. 17, 1997 - Patch 5 |
|---|
| 1636 | \psset@dotscale{1} |
|---|
| 1637 | % DG/SR modification end |
|---|
| 1638 | \def\psdot{\pst@object{psdot}} |
|---|
| 1639 | \def\psdot@i{\@ifnextchar({\psdot@ii}{\psdot@ii(\z@,\z@)}} |
|---|
| 1640 | \def\psdot@ii(#1){% |
|---|
| 1641 | \begin@SpecialObj% |
|---|
| 1642 | % hv modification 1.13 2005-11-28 |
|---|
| 1643 | \solid@star% |
|---|
| 1644 | % hv modification end |
|---|
| 1645 | \pst@@getcoor{#1}% |
|---|
| 1646 | \addto@pscode{ |
|---|
| 1647 | \psk@dotsize |
|---|
| 1648 | \@nameuse{psds@\psk@dotstyle}% |
|---|
| 1649 | \pst@coor Dot}% |
|---|
| 1650 | \end@SpecialObj} |
|---|
| 1651 | \def\psdots{\pst@object{psdots}} |
|---|
| 1652 | \def\psdots@i{% |
|---|
| 1653 | \begin@SpecialObj% |
|---|
| 1654 | \pst@getcoors[\psdots@ii} |
|---|
| 1655 | \def\psdots@ii{% |
|---|
| 1656 | \addto@pscode{false \tx@NArray \psdots@iii}% |
|---|
| 1657 | \end@SpecialObj} |
|---|
| 1658 | \def\psdots@iii{% |
|---|
| 1659 | \psk@dotsize |
|---|
| 1660 | \@nameuse{psds@\psk@dotstyle} |
|---|
| 1661 | newpath |
|---|
| 1662 | n { transform floor .5 add exch floor .5 add exch itransform Dot } repeat} |
|---|
| 1663 | % |
|---|
| 1664 | % DG: dead code (to suppress until \psset@dotstyle) ? - Aug. 4, 1997 |
|---|
| 1665 | \def\tx@SQ{SQ } |
|---|
| 1666 | \def\tx@ST{ST } |
|---|
| 1667 | \def\tx@SP{SP } |
|---|
| 1668 | % |
|---|
| 1669 | \def\pst@gdot#1{/Dot { gsave T \psk@dotangle \psk@dotscale #1 grestore } def } |
|---|
| 1670 | % |
|---|
| 1671 | \@namedef{psds@*}{\pst@gdot{0 0 DS \tx@SD}} |
|---|
| 1672 | \@namedef{psds@o}{% |
|---|
| 1673 | /r2 DS CLW sub def |
|---|
| 1674 | \pst@gdot{0 0 DS \tx@SD \pst@usecolor\psfillcolor 0 0 r2 \tx@SD}} |
|---|
| 1675 | \@namedef{psds@square*}{% |
|---|
| 1676 | /r1 DS .886 mul def |
|---|
| 1677 | \pst@gdot{r1 \tx@SQ}} |
|---|
| 1678 | \@namedef{psds@square}{% |
|---|
| 1679 | /r1 DS .886 mul def /r2 r1 CLW sub def |
|---|
| 1680 | \pst@gdot{r1 \tx@SQ \pst@usecolor\psfillcolor r2 \tx@SQ}} |
|---|
| 1681 | \@namedef{psds@triangle*}{% |
|---|
| 1682 | /y1 DS .778 mul neg def /x1 y1 1.732 mul neg def |
|---|
| 1683 | \pst@gdot{x1 y1 \tx@ST}} |
|---|
| 1684 | \@namedef{psds@triangle}{% |
|---|
| 1685 | /y1 DS .778 mul neg def /x1 y1 1.732 mul neg def |
|---|
| 1686 | /y2 y1 CLW add def /x2 y2 1.732 mul neg def |
|---|
| 1687 | \pst@gdot{x1 y1 \tx@ST \pst@usecolor\psfillcolor x2 y2 \tx@ST}} |
|---|
| 1688 | \@namedef{psds@pentagon*}{% |
|---|
| 1689 | /r1 DS 1.149 mul def |
|---|
| 1690 | \pst@gdot{r1 \tx@SP}} |
|---|
| 1691 | \@namedef{psds@pentagon}{% |
|---|
| 1692 | DS .93 mul dup 1.236 mul /r1 ED CLW sub 1.236 mul /r2 ED |
|---|
| 1693 | \pst@gdot{r1 \tx@SP \pst@usecolor\psfillcolor r2 \tx@SP}} |
|---|
| 1694 | \@namedef{psds@+}{% |
|---|
| 1695 | /DS DS 1.253 mul def |
|---|
| 1696 | \pst@gdot{DS 0 moveto DS neg 0 L stroke 0 DS moveto 0 DS neg L stroke}} |
|---|
| 1697 | \@namedef{psds@|}{% |
|---|
| 1698 | \psk@tbarsize CLW mul add 2 div /DS ED |
|---|
| 1699 | \pst@gdot{0 DS moveto 0 DS neg L stroke}} |
|---|
| 1700 | % DG: end dead code? |
|---|
| 1701 | % |
|---|
| 1702 | \def\psset@dotstyle#1{% |
|---|
| 1703 | \@ifundefined{psds@#1}% |
|---|
| 1704 | {\@pstrickserr{Dot style `#1' not defined}\@eha}% |
|---|
| 1705 | {\edef\psk@dotstyle{#1}}} |
|---|
| 1706 | \psset@dotstyle{*} |
|---|
| 1707 | % |
|---|
| 1708 | \def\tx@FontDot{FontDot } |
|---|
| 1709 | \def\newpsfontdot#1[#2]#3#4{% |
|---|
| 1710 | \@namedef{psds@#1}{% |
|---|
| 1711 | /#3 \psk@@dotangle [#2] \tx@FontDot |
|---|
| 1712 | % DG/SR modification begin - Dec. 12, 1999 - Patch 14 |
|---|
| 1713 | %/Dot { moveto #4 show } bind def }} |
|---|
| 1714 | /Dot { moveto gsave \psk@dotscale #4 show grestore } bind def |
|---|
| 1715 | }} |
|---|
| 1716 | % DG/SR modification end |
|---|
| 1717 | \def\newpsfontdotH#1[#2]#3#4#5{% |
|---|
| 1718 | \@namedef{psds@#1}{% |
|---|
| 1719 | /#3 \psk@@dotangle [#2] \tx@FontDot |
|---|
| 1720 | /Dot { |
|---|
| 1721 | moveto |
|---|
| 1722 | \iftrue |
|---|
| 1723 | % DG/SR modification begin - Dec. 23, 1999 - Patch 14 |
|---|
| 1724 | %gsave \pst@usecolor\psfillcolor #5 show grestore |
|---|
| 1725 | %\fi |
|---|
| 1726 | %#4 show |
|---|
| 1727 | gsave \psk@dotscale \pst@usecolor\psfillcolor #5 show grestore |
|---|
| 1728 | \fi |
|---|
| 1729 | gsave \psk@dotscale #4 show grestore |
|---|
| 1730 | % DG/SR modification end |
|---|
| 1731 | } bind def |
|---|
| 1732 | }} |
|---|
| 1733 | % |
|---|
| 1734 | \pstheader{pst-dots.pro} |
|---|
| 1735 | \newpsfontdot{*}[1.0 0.0 0.0 1.0 0.0 0.0]{PSTricksDotFont}{(b)} |
|---|
| 1736 | \newpsfontdotH{o}[1.0 0.0 0.0 1.0 0.0 0.0]{PSTricksDotFont}{(c)}{(b)} |
|---|
| 1737 | \newpsfontdotH{Bo}[1.0 0.0 0.0 1.0 0.0 0.0]{PSTricksDotFont}{(C)}{(b)} |
|---|
| 1738 | \newpsfontdotH{triangle}[1.0 0.0 0.0 1.0 0.0 0.0]{PSTricksDotFont}{(t)}{(u)} |
|---|
| 1739 | \newpsfontdotH{Btriangle}[1.0 0.0 0.0 1.0 0.0 0.0]{PSTricksDotFont}{(T)}{(u)} |
|---|
| 1740 | \newpsfontdot{triangle*}[1.0 0.0 0.0 1.0 0.0 0.0]{PSTricksDotFont}{(u)} |
|---|
| 1741 | \newpsfontdotH{square}[1.0 0.0 0.0 1.0 0.0 0.0]{PSTricksDotFont}{(s)}{(r)} |
|---|
| 1742 | \newpsfontdotH{Bsquare}[1.0 0.0 0.0 1.0 0.0 0.0]{PSTricksDotFont}{(S)}{(r)} |
|---|
| 1743 | \newpsfontdot{square*}[1.0 0.0 0.0 1.0 0.0 0.0]{PSTricksDotFont}{(r)} |
|---|
| 1744 | \newpsfontdotH{pentagon}[1.0 0.0 0.0 1.0 0.0 0.0]{PSTricksDotFont}{(p)}{(q)} |
|---|
| 1745 | \newpsfontdotH{Bpentagon}[1.0 0.0 0.0 1.0 0.0 0.0]{PSTricksDotFont}{(P)}{(q)} |
|---|
| 1746 | \newpsfontdot{pentagon*}[1.0 0.0 0.0 1.0 0.0 0.0]{PSTricksDotFont}{(q)} |
|---|
| 1747 | % DG/SR modification begin - Mar. 18, 1997 and Dec. 16, 1999 - Patch 14 |
|---|
| 1748 | %\newpsfontdot{diamond*}% |
|---|
| 1749 | %[1.9 0.0 0.0 1.9 -0.4598 -0.70775]{Symbol}{<E0>} |
|---|
| 1750 | %\newpsfontdot{diamond}% |
|---|
| 1751 | %[2.3 0.0 0.0 2.3 -0.8533 -0.5336]{Symbol}{<A8>} |
|---|
| 1752 | % D.G. modification begin - Jan. 17, 2000 |
|---|
| 1753 | \newpsfontdotH{diamond}[1.0 0.0 0.0 1.0 0.0 0.0]{PSTricksDotFont}{(d)}{(l)} |
|---|
| 1754 | \newpsfontdotH{Bdiamond}[1.0 0.0 0.0 1.0 0.0 0.0]{PSTricksDotFont}{(D)}{(l)} |
|---|
| 1755 | \newpsfontdot{diamond*}[1.0 0.0 0.0 1.0 0.0 0.0]{PSTricksDotFont}{(l)} |
|---|
| 1756 | % DG/SR modification end |
|---|
| 1757 | \newpsfontdot{oplus}[1.44928 0.0 0.0 1.44928 -0.562319 -0.478261]{Symbol}{<C5>} |
|---|
| 1758 | \newpsfontdot{otimes}[1.44928 0.0 0.0 1.44928 -0.562319 -0.475362]{Symbol}{<C4>} |
|---|
| 1759 | \newpsfontdot{x}[1.8 0.0 0.0 1.8 -0.495 -0.4788]{Symbol}{<B4>} |
|---|
| 1760 | \newpsfontdot{+}[2.3 0.0 0.0 2.3 -0.6486 -0.5819]{Times-Roman}{<2B>} |
|---|
| 1761 | \newpsfontdot{asterisk}[2.43309 0.0 0.0 2.43309 -0.609489 -1.14477]{Times-Roman}{<2A>} |
|---|
| 1762 | \newpsfontdot{B+}[2.3 0.0 0.0 2.3 -0.6555 -0.5819]{Times-Bold}{<2B>} |
|---|
| 1763 | \newpsfontdot{Basterisk}[2.29358 0.0 0.0 2.29358 -0.576835 -1.08486]{Times-Bold}{<2A>} |
|---|
| 1764 | \newpsfontdot{|}[1.98413 0.0 0.0 1.38 -0.258929 -0.5]{Helvetica}{(|)} |
|---|
| 1765 | % DG/SR modification begin - Oct. 27, 1997 - Patch 7 |
|---|
| 1766 | %[1.98413 0.0 0.0 1.98413 -0.258929 -0.712302]{Helvetica}{(|)} |
|---|
| 1767 | % DG/SR modification end |
|---|
| 1768 | \newpsfontdot{B|}[1.98413 0.0 0.0 1.38 -0.277778 -0.5]{Helvetica-Bold}{(|)}% |
|---|
| 1769 | % DG/SR modification begin - Oct. 27, 1997 - Patch 7 |
|---|
| 1770 | %[1.98413 0.0 0.0 1.98413 -0.277778 -0.78302]{Helvetica-Bold}{(|)} |
|---|
| 1771 | |
|---|
| 1772 | % DG/SR modification end |
|---|
| 1773 | \iffalse |
|---|
| 1774 | \newpsfontdot{*}[2.77778 0.0 0.0 2.77778 -0.638889 -0.813889]{Symbol}{<B7>} |
|---|
| 1775 | \newpsfontdot{o}[3.33333 0.0 0.0 3.33333 -0.666667 -1.78167]{Symbol}{<B0>} |
|---|
| 1776 | \newpsfontdot{Bo}[4.69484 0.0 0.0 4.69484 -0.78169 -2.97418]{Times-Bold}{<CA>} |
|---|
| 1777 | \fi |
|---|
| 1778 | % Etienne Riga |
|---|
| 1779 | \newpsfontdot{Asterisk}[1.0 0.0 0.0 1.0 0.0 0.0]{PSTricksDotFont}{(k)} |
|---|
| 1780 | \newpsfontdot{BoldAsterisk}[1.0 0.0 0.0 1.0 0.0 0.0]{PSTricksDotFont}{(K)} |
|---|
| 1781 | \newpsfontdotH{SolidAsterisk}[1.0 0.0 0.0 1.0 0.0 0.0]{PSTricksDotFont}{(J)}{(b)} |
|---|
| 1782 | \newpsfontdotH{Hexagon}[1.0 0.0 0.0 1.0 0.0 0.0]{PSTricksDotFont}{(h)}{(G)} |
|---|
| 1783 | \newpsfontdotH{BoldHexagon}[1.0 0.0 0.0 1.0 0.0 0.0]{PSTricksDotFont}{(H)}{(G)} |
|---|
| 1784 | \newpsfontdot{SolidHexagon}[1.0 0.0 0.0 1.0 0.0 0.0]{PSTricksDotFont}{(G)} |
|---|
| 1785 | % |
|---|
| 1786 | \newpsfontdot{Bullet}[1.0 0.0 0.0 1.0 0.0 0.0]{PSTricksDotFont}{(b)} |
|---|
| 1787 | \newpsfontdotH{Circle}[1.0 0.0 0.0 1.0 0.0 0.0]{PSTricksDotFont}{(c)}{(b)} |
|---|
| 1788 | \newpsfontdotH{BoldCircle}[1.0 0.0 0.0 1.0 0.0 0.0]{PSTricksDotFont}{(C)}{(b)} |
|---|
| 1789 | %\newpsfontdot{SolidCircle}[1.0 0.0 0.0 1.0 0.0 0.0]{PSTricksDotFont}{(u)} |
|---|
| 1790 | \newpsfontdotH{Triangle}[1.0 0.0 0.0 1.0 0.0 0.0]{PSTricksDotFont}{(t)}{(u)} |
|---|
| 1791 | \newpsfontdotH{BoldTriangle}[1.0 0.0 0.0 1.0 0.0 0.0]{PSTricksDotFont}{(T)}{(u)} |
|---|
| 1792 | \newpsfontdot{SolidTriangle}[1.0 0.0 0.0 1.0 0.0 0.0]{PSTricksDotFont}{(u)} |
|---|
| 1793 | \newpsfontdotH{Square}[1.0 0.0 0.0 1.0 0.0 0.0]{PSTricksDotFont}{(s)}{(r)} |
|---|
| 1794 | \newpsfontdotH{BoldSquare}[1.0 0.0 0.0 1.0 0.0 0.0]{PSTricksDotFont}{(S)}{(r)} |
|---|
| 1795 | \newpsfontdot{SolidSquare}[1.0 0.0 0.0 1.0 0.0 0.0]{PSTricksDotFont}{(r)} |
|---|
| 1796 | \newpsfontdotH{Pentagon}[1.0 0.0 0.0 1.0 0.0 0.0]{PSTricksDotFont}{(p)}{(q)} |
|---|
| 1797 | \newpsfontdotH{BoldPentagon}[1.0 0.0 0.0 1.0 0.0 0.0]{PSTricksDotFont}{(P)}{(q)} |
|---|
| 1798 | \newpsfontdot{SolidPentagon}[1.0 0.0 0.0 1.0 0.0 0.0]{PSTricksDotFont}{(q)} |
|---|
| 1799 | \newpsfontdot{Add}[1.0 0.0 0.0 1.0 0.0 0.0]{PSTricksDotFont}{(a)} |
|---|
| 1800 | \newpsfontdot{BoldAdd}[1.0 0.0 0.0 1.0 0.0 0.0]{PSTricksDotFont}{(A)} |
|---|
| 1801 | \newpsfontdot{Mul}[1.0 0.0 0.0 1.0 0.0 0.0]{PSTricksDotFont}{(x)} |
|---|
| 1802 | \newpsfontdot{BoldMul}[1.0 0.0 0.0 1.0 0.0 0.0]{PSTricksDotFont}{(X)} |
|---|
| 1803 | \newpsfontdotH{Oplus}[1.0 0.0 0.0 1.0 0.0 0.0]{PSTricksDotFont}{(m)}{(b)} |
|---|
| 1804 | \newpsfontdotH{BoldOplus}[1.0 0.0 0.0 1.0 0.0 0.0]{PSTricksDotFont}{(M)}{(b)} |
|---|
| 1805 | \newpsfontdotH{SolidOplus}[1.0 0.0 0.0 1.0 0.0 0.0]{PSTricksDotFont}{(e)}{(b)} |
|---|
| 1806 | \newpsfontdotH{Otimes}[1.0 0.0 0.0 1.0 0.0 0.0]{PSTricksDotFont}{(n)}{(b)} |
|---|
| 1807 | \newpsfontdotH{BoldOtimes}[1.0 0.0 0.0 1.0 0.0 0.0]{PSTricksDotFont}{(N)}{(b)} |
|---|
| 1808 | \newpsfontdotH{SolidOtimes}[1.0 0.0 0.0 1.0 0.0 0.0]{PSTricksDotFont}{(E)}{(b)} |
|---|
| 1809 | \newpsfontdot{Bar}[1.0 0.0 0.0 1.0 0.0 0.0]{PSTricksDotFont}{(i)} |
|---|
| 1810 | \newpsfontdot{BoldBar}[1.0 0.0 0.0 1.0 0.0 0.0]{PSTricksDotFont}{(I)} |
|---|
| 1811 | \newpsfontdotH{Diamond}[1.0 0.0 0.0 1.0 0.0 0.0]{PSTricksDotFont}{(d)}{(l)} |
|---|
| 1812 | \newpsfontdotH{BoldDiamond}[1.0 0.0 0.0 1.0 0.0 0.0]{PSTricksDotFont}{(D)}{(l)} |
|---|
| 1813 | \newpsfontdot{SolidDiamond}[1.0 0.0 0.0 1.0 0.0 0.0]{PSTricksDotFont}{(l)} |
|---|
| 1814 | %% |
|---|
| 1815 | \newdimen\pslinearc |
|---|
| 1816 | \def\psset@linearc#1{\pssetlength\pslinearc{#1}} |
|---|
| 1817 | \psset@linearc{0pt} |
|---|
| 1818 | \def\psline{\pst@object{psline}} |
|---|
| 1819 | \def\psline@i{% |
|---|
| 1820 | \pst@getarrows{% |
|---|
| 1821 | \begin@OpenObj |
|---|
| 1822 | \pst@getcoors[\psline@ii% |
|---|
| 1823 | }% |
|---|
| 1824 | } |
|---|
| 1825 | \def\psline@ii{% |
|---|
| 1826 | \addto@pscode{\pst@cp \psline@iii \tx@Line}% |
|---|
| 1827 | \end@OpenObj% |
|---|
| 1828 | } |
|---|
| 1829 | \def\psline@iii{% |
|---|
| 1830 | \ifdim\pslinearc>\z@ |
|---|
| 1831 | /r \pst@number\pslinearc def |
|---|
| 1832 | /Lineto { \tx@Arcto } def |
|---|
| 1833 | \else |
|---|
| 1834 | /Lineto /lineto load def |
|---|
| 1835 | \fi |
|---|
| 1836 | \ifshowpoints true \else false \fi |
|---|
| 1837 | \tx@setlinejoin % hv 2007-10-13 |
|---|
| 1838 | } |
|---|
| 1839 | \def\qline(#1)(#2){% |
|---|
| 1840 | \def\pst@par{}% |
|---|
| 1841 | \begin@SpecialObj |
|---|
| 1842 | \def\pst@linetype{0}% |
|---|
| 1843 | \pst@getcoor{#1}\pst@tempa |
|---|
| 1844 | \pst@@getcoor{#2}% |
|---|
| 1845 | \addto@pscode{% |
|---|
| 1846 | \pst@tempa moveto \pst@coor L |
|---|
| 1847 | \@nameuse{psls@\pslinestyle}% |
|---|
| 1848 | }% |
|---|
| 1849 | \end@SpecialObj} |
|---|
| 1850 | \def\pspolygon{\pst@object{pspolygon}} |
|---|
| 1851 | \def\pspolygon@i{% |
|---|
| 1852 | \begin@ClosedObj% |
|---|
| 1853 | \def\pst@cp{}% |
|---|
| 1854 | \pst@getcoors[\pspolygon@ii% |
|---|
| 1855 | } |
|---|
| 1856 | \def\pspolygon@ii{% |
|---|
| 1857 | \addto@pscode{\psline@iii \tx@Polygon}% |
|---|
| 1858 | \def\pst@linetype{1}% |
|---|
| 1859 | \end@ClosedObj} |
|---|
| 1860 | % |
|---|
| 1861 | \def\psset@framearc#1{\pst@checknum{#1}\psk@framearc} |
|---|
| 1862 | \psset@framearc{0} |
|---|
| 1863 | % |
|---|
| 1864 | \def\psset@cornersize#1{\pst@expandafter\psset@@cornersize{#1}\@nil} |
|---|
| 1865 | \def\psset@@cornersize#1#2\@nil{% |
|---|
| 1866 | \if #1a\relax |
|---|
| 1867 | \def\psk@cornersize{\pst@number\pslinearc false }% |
|---|
| 1868 | \else\def\psk@cornersize{\psk@framearc true }% |
|---|
| 1869 | \fi} |
|---|
| 1870 | \psset@cornersize{relative} |
|---|
| 1871 | % |
|---|
| 1872 | \def\tx@Rect{Rect } |
|---|
| 1873 | \def\tx@OvalFrame{OvalFrame } |
|---|
| 1874 | \def\tx@Frame{Frame } |
|---|
| 1875 | % |
|---|
| 1876 | \def\psset@dimen#1{\pst@expandafter\psset@@dimen{#1}\@nil} |
|---|
| 1877 | \def\psset@@dimen#1#2\@nil{% |
|---|
| 1878 | \if #1o\relax% outer |
|---|
| 1879 | \def\psk@dimen{.5 }% |
|---|
| 1880 | \else |
|---|
| 1881 | \if #1m\relax% middle |
|---|
| 1882 | \def\psk@dimen{0 }% |
|---|
| 1883 | \else |
|---|
| 1884 | \if #1i\relax% inner |
|---|
| 1885 | \def\psk@dimen{-.5 }% |
|---|
| 1886 | \fi\fi\fi} |
|---|
| 1887 | \psset@dimen{outer} |
|---|
| 1888 | % |
|---|
| 1889 | \def\psframe{\pst@object{psframe}} |
|---|
| 1890 | \def\psframe@i(#1){% |
|---|
| 1891 | \@ifnextchar({\psframe@ii(#1)}{\psframe@ii(0,0)(#1)}} |
|---|
| 1892 | \def\psframe@ii(#1)(#2){% |
|---|
| 1893 | \begin@ClosedObj |
|---|
| 1894 | \pst@getcoor{#1}\pst@tempa |
|---|
| 1895 | \pst@@getcoor{#2}% |
|---|
| 1896 | \addto@pscode{\psk@cornersize \pst@tempa \pst@coor \psk@dimen \tx@Frame}% |
|---|
| 1897 | \def\pst@linetype{2}% |
|---|
| 1898 | \showpointsfalse |
|---|
| 1899 | \end@ClosedObj% |
|---|
| 1900 | } |
|---|
| 1901 | % |
|---|
| 1902 | \def\psTextFrame{\pst@object{psTextFrame}} |
|---|
| 1903 | \def\psTextFrame@i(#1)(#2)#3{% |
|---|
| 1904 | \addbefore@par{ref=c}% to prevent an empty value |
|---|
| 1905 | \leavevmode% |
|---|
| 1906 | \pst@killglue |
|---|
| 1907 | \begingroup |
|---|
| 1908 | \use@par |
|---|
| 1909 | \ifx\psk@yref\relax \def\psk@yref{0}\fi% no Baseline possible |
|---|
| 1910 | \SpecialCoor |
|---|
| 1911 | \pst@getcoor{#1}\pst@tempA |
|---|
| 1912 | \pst@getcoor{#2}\pst@tempB |
|---|
| 1913 | \if@star\psframe*(#1)(#2)\else\psframe(#1)(#2)\fi |
|---|
| 1914 | \rput(! \pst@tempA \pst@tempB % x1 y1 x2 y2 |
|---|
| 1915 | exch 4 -1 roll % y1 y2 x2 x1 |
|---|
| 1916 | dup /x1 ED % y1 y2 x2 x1 |
|---|
| 1917 | sub /dx ED % y1 y2 |
|---|
| 1918 | exch dup /y1 ED % y2 y1 |
|---|
| 1919 | sub /dy ED |
|---|
| 1920 | x1 dx \psk@xref\space mul add \pst@number\psxunit div |
|---|
| 1921 | y1 dy \psk@yref\space mul add \pst@number\psyunit div ){#3} |
|---|
| 1922 | \endgroup |
|---|
| 1923 | \ignorespaces} |
|---|
| 1924 | % |
|---|
| 1925 | \def\tx@BezierNArray{BezierNArray } |
|---|
| 1926 | \def\tx@OpenBezier{OpenBezier } |
|---|
| 1927 | \def\tx@ClosedBezier{ClosedBezier } |
|---|
| 1928 | \def\tx@BezierShowPoints{BezierShowPoints } |
|---|
| 1929 | \def\psbezier{\pst@object{psbezier}} |
|---|
| 1930 | \def\psbezier@i{% |
|---|
| 1931 | \pst@getarrows{% |
|---|
| 1932 | \begin@OpenObj |
|---|
| 1933 | \pst@getcoors[\psbezier@ii% |
|---|
| 1934 | }% |
|---|
| 1935 | } |
|---|
| 1936 | \def\psbezier@ii{% |
|---|
| 1937 | \addto@pscode{% |
|---|
| 1938 | % DG/SR modification begin - Apr. 28, 1997 - Patch 1 |
|---|
| 1939 | % \psbezier doesn't work inside \pscustom |
|---|
| 1940 | \pst@cp |
|---|
| 1941 | % DG/SR modification end |
|---|
| 1942 | \ifshowpoints true \else false \fi |
|---|
| 1943 | \tx@OpenBezier |
|---|
| 1944 | \ifshowpoints \tx@BezierShowPoints \fi}% |
|---|
| 1945 | \end@OpenObj} |
|---|
| 1946 | \def\pscbezier{\pst@object{pscbezier}} |
|---|
| 1947 | \def\pscbezier@i{% |
|---|
| 1948 | \begin@ClosedObj |
|---|
| 1949 | \pst@getcoors[\pscbezier@ii} |
|---|
| 1950 | \def\pscbezier@ii{% |
|---|
| 1951 | \addto@pscode{% |
|---|
| 1952 | \ifshowpoints true \else false \fi |
|---|
| 1953 | \tx@ClosedBezier |
|---|
| 1954 | \ifshowpoints \tx@BezierShowPoints \fi}% |
|---|
| 1955 | \chardef\pst@linetype=1 |
|---|
| 1956 | \end@ClosedObj} |
|---|
| 1957 | % |
|---|
| 1958 | \def\tx@Parab{Parab } |
|---|
| 1959 | \def\psparabola{\pst@object{psparabola}}% 1.15a 2006-01-05 (hv) |
|---|
| 1960 | \def\psparabola@i{\pst@getarrows\psparabola@ii} |
|---|
| 1961 | \def\psparabola@ii#1(#2)#3(#4){% |
|---|
| 1962 | \begin@OpenObj |
|---|
| 1963 | \pst@getcoor{#2}\pst@tempa |
|---|
| 1964 | \pst@@getcoor{#4}% |
|---|
| 1965 | \addto@pscode{\pst@tempa \pst@coor \tx@Parab}% |
|---|
| 1966 | \end@OpenObj} |
|---|
| 1967 | \let\parabola\psparabola% compatibility (hv) |
|---|
| 1968 | % |
|---|
| 1969 | \def\psset@gridwidth#1{\pst@getlength{#1}\psk@gridwidth} |
|---|
| 1970 | \psset@gridwidth{.8pt} |
|---|
| 1971 | \def\psset@griddots#1{% |
|---|
| 1972 | \pst@cntg=#1\relax |
|---|
| 1973 | \edef\psk@griddots{\the\pst@cntg}} |
|---|
| 1974 | \psset@griddots{0} |
|---|
| 1975 | \def\psset@gridcolor#1{\pst@getcolor{#1}\psgridcolor} |
|---|
| 1976 | \psset@gridcolor{black} |
|---|
| 1977 | \def\psset@subgridwidth#1{\pst@getlength{#1}\psk@subgridwidth} |
|---|
| 1978 | \psset@subgridwidth{.4pt} |
|---|
| 1979 | \def\psset@subgridcolor#1{\pst@getcolor{#1}\pssubgridcolor} |
|---|
| 1980 | \psset@subgridcolor{gray} |
|---|
| 1981 | \def\psset@subgriddots#1{% |
|---|
| 1982 | \pst@cntg=#1\relax\edef\psk@subgriddots{\the\pst@cntg}} |
|---|
| 1983 | \psset@subgriddots{0} |
|---|
| 1984 | \def\psset@subgriddiv#1{% |
|---|
| 1985 | \pst@cntg=#1\relax\edef\psk@subgriddiv{\the\pst@cntg}} |
|---|
| 1986 | \psset@subgriddiv{5} |
|---|
| 1987 | % |
|---|
| 1988 | \def\psset@gridfont#1{\def\psk@gridfont{/#1 }}% hv 2007-11-13 |
|---|
| 1989 | \psset@gridfont{Helvetica} |
|---|
| 1990 | % |
|---|
| 1991 | \def\psset@gridlabels#1{\pst@getlength{#1}\psk@gridlabels} |
|---|
| 1992 | \psset@gridlabels{10pt} |
|---|
| 1993 | \def\psset@gridlabelcolor#1{\pst@getcolor{#1}\psgridlabelcolor} |
|---|
| 1994 | \psset@gridlabelcolor{black} |
|---|
| 1995 | |
|---|
| 1996 | \def\tx@Grid{Grid } |
|---|
| 1997 | |
|---|
| 1998 | \def\psgrid{\pst@object{psgrid}} |
|---|
| 1999 | \def\psgrid@i{\@ifnextchar({\psgrid@ii}{\expandafter\psgrid@iv\pic@coor}} |
|---|
| 2000 | \def\psgrid@ii(#1){\@ifnextchar({\psgrid@iii(#1)}{\psgrid@iv(0,0)(0,0)(#1)}} |
|---|
| 2001 | \def\psgrid@iii(#1)(#2){\@ifnextchar({\psgrid@iv(#1)(#2)}{\psgrid@iv(#1)(#1)(#2)}} |
|---|
| 2002 | \def\psgrid@iv(#1)(#2)(#3){% |
|---|
| 2003 | \begin@SpecialObj |
|---|
| 2004 | \pst@getcoor{#1}\pst@tempA% hv 1.11 |
|---|
| 2005 | \pst@getcoor{#2}\pst@tempB % hv 1.11 |
|---|
| 2006 | \pst@@getcoor{#3}% |
|---|
| 2007 | \ifnum\psk@subgriddiv>1 |
|---|
| 2008 | \addto@pscode{ |
|---|
| 2009 | gsave |
|---|
| 2010 | \psk@subgridwidth SLW \pst@usecolor\pssubgridcolor |
|---|
| 2011 | \pst@tempB \pst@coor \pst@tempA % hv 1.11 |
|---|
| 2012 | % \pst@number\psxunit \pst@number\psyunit % hv 1.11 |
|---|
| 2013 | \pst@number\psxunit abs \pst@number\psyunit abs % hv 1.11 |
|---|
| 2014 | \psk@subgriddiv\space \psk@subgriddots\space |
|---|
| 2015 | {} 0 |
|---|
| 2016 | \psk@gridfont findfont 0 scalefont setfont % hv 1.16 |
|---|
| 2017 | \tx@Grid |
|---|
| 2018 | grestore |
|---|
| 2019 | }% |
|---|
| 2020 | \fi |
|---|
| 2021 | \addto@pscode{ |
|---|
| 2022 | gsave |
|---|
| 2023 | \psk@gridwidth SLW \pst@usecolor\psgridcolor |
|---|
| 2024 | \pst@tempB \pst@coor \pst@tempA % hv 1.11 |
|---|
| 2025 | \pst@number\psxunit abs \pst@number\psyunit abs % hv 1.11 |
|---|
| 2026 | % \pst@number\psxunit \pst@number\psyunit % hv 1.11 |
|---|
| 2027 | 1 \psk@griddots\space { \pst@usecolor\psgridlabelcolor } |
|---|
| 2028 | \psk@gridlabels |
|---|
| 2029 | \psk@gridfont findfont \psk@gridlabels scalefont setfont % hv 1.16 |
|---|
| 2030 | \tx@Grid |
|---|
| 2031 | grestore |
|---|
| 2032 | }% |
|---|
| 2033 | \end@SpecialObj} |
|---|
| 2034 | % |
|---|
| 2035 | \newif\ifpsmathbox |
|---|
| 2036 | \psmathboxtrue |
|---|
| 2037 | \def\pst@mathflag{\z@} |
|---|
| 2038 | \newtoks\everypsbox |
|---|
| 2039 | \let\pst@thisbox\relax |
|---|
| 2040 | \long\def\pst@makenotverbbox#1#2{% |
|---|
| 2041 | \edef\pst@mathflag{% |
|---|
| 2042 | \ifpsmathbox\ifmmode\ifinner 1\else 2\fi\else \z@\fi\else \z@\fi}% |
|---|
| 2043 | \setbox\pst@hbox=\hbox{% |
|---|
| 2044 | \ifcase\pst@mathflag\or$\m@th\textstyle\or$\m@th\displaystyle\fi |
|---|
| 2045 | {\pst@thisbox\the\everypsbox#2}% |
|---|
| 2046 | \ifnum\pst@mathflag>\z@$\fi% $ |
|---|
| 2047 | }% |
|---|
| 2048 | #1} |
|---|
| 2049 | % |
|---|
| 2050 | \def\pst@makeverbbox#1{% |
|---|
| 2051 | \def\pst@afterbox{#1}% |
|---|
| 2052 | \edef\pst@mathflag{% |
|---|
| 2053 | \ifpsmathbox\ifmmode\ifinner 1\else 2\fi\else \z@\fi\else \z@\fi% |
|---|
| 2054 | }% |
|---|
| 2055 | \afterassignment\pst@beginbox |
|---|
| 2056 | \setbox\pst@hbox\hbox% |
|---|
| 2057 | } |
|---|
| 2058 | \def\pst@beginbox{% |
|---|
| 2059 | \ifcase\pst@mathflag\or$\m@th\or$\m@th\displaystyle\fi |
|---|
| 2060 | \bgroup\aftergroup\pst@endbox |
|---|
| 2061 | \pst@thisbox |
|---|
| 2062 | \the\everypsbox% |
|---|
| 2063 | } |
|---|
| 2064 | \def\pst@endbox{% |
|---|
| 2065 | \ifnum\pst@mathflag>\z@$\fi |
|---|
| 2066 | \egroup |
|---|
| 2067 | \pst@afterbox% |
|---|
| 2068 | } |
|---|
| 2069 | \def\pst@makebox{\pst@@makebox} |
|---|
| 2070 | \def\psverbboxtrue{\def\pst@@makebox{\pst@makeverbbox}} |
|---|
| 2071 | \def\psverbboxfalse{\def\pst@@makebox{\pst@makenotverbbox}} |
|---|
| 2072 | \psverbboxfalse |
|---|
| 2073 | \def\pst@longbox{% |
|---|
| 2074 | \def\pst@makebox{% |
|---|
| 2075 | \gdef\pst@makebox{\pst@@makebox}% |
|---|
| 2076 | \pst@makelongbox% |
|---|
| 2077 | }% |
|---|
| 2078 | } |
|---|
| 2079 | \def\pst@makelongbox#1{% |
|---|
| 2080 | \def\pst@afterbox{#1}% |
|---|
| 2081 | \edef\pst@mathflag{% |
|---|
| 2082 | \ifpsmathbox\ifmmode\ifinner 1\else 2\fi\else \z@\fi\else \z@\fi% |
|---|
| 2083 | }% |
|---|
| 2084 | \setbox\pst@hbox\hbox\bgroup |
|---|
| 2085 | \aftergroup\pst@afterbox |
|---|
| 2086 | \ifcase\pst@mathflag\or$\m@th\or$\m@th\displaystyle\fi |
|---|
| 2087 | \begingroup |
|---|
| 2088 | \pst@thisbox |
|---|
| 2089 | \the\everypsbox% |
|---|
| 2090 | } |
|---|
| 2091 | \def\pst@endlongbox{% |
|---|
| 2092 | \endgroup |
|---|
| 2093 | \ifnum\pst@mathflag>\z@$\fi |
|---|
| 2094 | \egroup% |
|---|
| 2095 | } |
|---|
| 2096 | \def\pslongbox#1#2{% |
|---|
| 2097 | \@namedef{#1}{\pst@longbox#2}% |
|---|
| 2098 | \@namedef{end#1}{\pst@endlongbox}} |
|---|
| 2099 | % |
|---|
| 2100 | \newdimen\psframesep |
|---|
| 2101 | \def\psset@framesep#1{\pssetlength\psframesep{#1}} |
|---|
| 2102 | \psset@framesep{3pt} |
|---|
| 2103 | % |
|---|
| 2104 | \newif\ifpsboxsep |
|---|
| 2105 | \def\psset@boxsep#1{\@nameuse{psboxsep#1}} |
|---|
| 2106 | % |
|---|
| 2107 | \psset@boxsep{true} |
|---|
| 2108 | % |
|---|
| 2109 | \def\pst@useboxpar{% |
|---|
| 2110 | \use@par |
|---|
| 2111 | \if@star |
|---|
| 2112 | \let\pslinecolor\psfillcolor |
|---|
| 2113 | \solid@star |
|---|
| 2114 | \let\solid@star\relax |
|---|
| 2115 | \fi |
|---|
| 2116 | \ifpsdoubleline \pst@setdoublesep \fi} |
|---|
| 2117 | % |
|---|
| 2118 | \def\psframebox{\pst@object{psframebox}} |
|---|
| 2119 | \def\psframebox@i{\pst@makebox\psframebox@ii} |
|---|
| 2120 | \def\psframebox@ii{% |
|---|
| 2121 | \begingroup |
|---|
| 2122 | \pst@useboxpar |
|---|
| 2123 | \pst@dima=\pslinewidth |
|---|
| 2124 | \advance\pst@dima by \psframesep |
|---|
| 2125 | \pst@dimc=\wd\pst@hbox\advance\pst@dimc by \pst@dima |
|---|
| 2126 | \pst@dimb=\dp\pst@hbox\advance\pst@dimb by \pst@dima |
|---|
| 2127 | \pst@dimd=\ht\pst@hbox\advance\pst@dimd by \pst@dima |
|---|
| 2128 | \setbox\pst@hbox=\hbox{% |
|---|
| 2129 | \ifpsboxsep\kern\pst@dima\fi |
|---|
| 2130 | \begin@ClosedObj |
|---|
| 2131 | \addto@pscode{% |
|---|
| 2132 | \psk@cornersize % arcradius boolean |
|---|
| 2133 | \pst@number\pst@dima neg |
|---|
| 2134 | \pst@number\pst@dimb neg |
|---|
| 2135 | \pst@number\pst@dimc |
|---|
| 2136 | \pst@number\pst@dimd |
|---|
| 2137 | .5 |
|---|
| 2138 | \tx@Frame% |
|---|
| 2139 | }% |
|---|
| 2140 | \def\pst@linetype{2}% |
|---|
| 2141 | \showpointsfalse |
|---|
| 2142 | \end@ClosedObj |
|---|
| 2143 | \box\pst@hbox |
|---|
| 2144 | \ifpsboxsep\kern\pst@dima\fi% |
|---|
| 2145 | }% |
|---|
| 2146 | \ifpsboxsep\dp\pst@hbox=\pst@dimb\ht\pst@hbox=\pst@dimd\fi |
|---|
| 2147 | \leavevmode\box\pst@hbox |
|---|
| 2148 | \endgroup} |
|---|
| 2149 | % |
|---|
| 2150 | \def\psdblframebox{\pst@object{psdblframebox}} |
|---|
| 2151 | \def\psdblframebox@i{\addto@par{doubleline=true}\psframebox@i} |
|---|
| 2152 | \def\psclip#1{% |
|---|
| 2153 | \leavevmode |
|---|
| 2154 | \begingroup |
|---|
| 2155 | \begin@psclip |
|---|
| 2156 | \begingroup |
|---|
| 2157 | \def\use@pscode{% |
|---|
| 2158 | \pstVerb{% |
|---|
| 2159 | \pst@dict |
|---|
| 2160 | /mtrxc CM def |
|---|
| 2161 | CP CP T |
|---|
| 2162 | \tx@STV |
|---|
| 2163 | \psk@origin |
|---|
| 2164 | \psk@swapaxes |
|---|
| 2165 | newpath |
|---|
| 2166 | \pst@code |
|---|
| 2167 | clip |
|---|
| 2168 | newpath |
|---|
| 2169 | mtrxc setmatrix |
|---|
| 2170 | moveto |
|---|
| 2171 | 0 setgray |
|---|
| 2172 | end |
|---|
| 2173 | }% |
|---|
| 2174 | \gdef\pst@code{}}% |
|---|
| 2175 | \def\@multips(##1)(##2)##3##4{\pst@misplaced\multips}% |
|---|
| 2176 | \def\nc@object##1##2##3##4{\pst@misplaced{node connection}}% |
|---|
| 2177 | \hbox to\z@{#1}% |
|---|
| 2178 | \endgroup |
|---|
| 2179 | \def\endpsclip{% |
|---|
| 2180 | \end@psclip |
|---|
| 2181 | \endgroup}% |
|---|
| 2182 | \ignorespaces} |
|---|
| 2183 | \def\endpsclip{\pst@misplaced\endpsclip} |
|---|
| 2184 | \let\begin@psclip\relax |
|---|
| 2185 | \def\end@psclip{\pstVerb{currentpoint initclip moveto}} |
|---|
| 2186 | \def\AltClipMode{% |
|---|
| 2187 | \def\end@psclip{\pstVerb{\pst@grestore}}% |
|---|
| 2188 | \def\begin@psclip{\pstVerb{gsave}}} |
|---|
| 2189 | \def\clipbox{\@ifnextchar[{\clipbox@}{\clipbox@[\z@]}} |
|---|
| 2190 | % DG modification begin - Apr. 3, 1997 |
|---|
| 2191 | % From paulus@immd5.informatik.uni-erlangen.de (Dietrich Paulus) |
|---|
| 2192 | %\def\clipbox@[#1]{\pst@makebox\clipbox@@{#1}} |
|---|
| 2193 | \def\clipbox@[#1]{\pst@makebox{\clipbox@@{#1}}} |
|---|
| 2194 | % DG modification end |
|---|
| 2195 | \def\clipbox@@#1{% |
|---|
| 2196 | \pssetlength\pst@dimg{#1}% |
|---|
| 2197 | \leavevmode\hbox{% |
|---|
| 2198 | \begin@psclip |
|---|
| 2199 | \pst@Verb{% |
|---|
| 2200 | CM \tx@STV CP T newpath |
|---|
| 2201 | /a \pst@number\pst@dimg def |
|---|
| 2202 | /w \pst@number{\wd\pst@hbox}a add def |
|---|
| 2203 | /d \pst@number{\dp\pst@hbox}a add neg def |
|---|
| 2204 | /h \pst@number{\ht\pst@hbox}a add def |
|---|
| 2205 | a neg d moveto |
|---|
| 2206 | a neg h L |
|---|
| 2207 | w h L |
|---|
| 2208 | w d L |
|---|
| 2209 | closepath |
|---|
| 2210 | clip |
|---|
| 2211 | newpath |
|---|
| 2212 | 0 0 moveto |
|---|
| 2213 | setmatrix}% |
|---|
| 2214 | \unhbox\pst@hbox |
|---|
| 2215 | \end@psclip}} |
|---|
| 2216 | \def\psshadowbox{\pst@object{psshadowbox}} |
|---|
| 2217 | \def\psshadowbox@i{\pst@makebox\psshadowbox@ii} |
|---|
| 2218 | \def\psshadowbox@ii{% |
|---|
| 2219 | \begingroup |
|---|
| 2220 | \pst@useboxpar |
|---|
| 2221 | \psshadowtrue |
|---|
| 2222 | \psboxseptrue |
|---|
| 2223 | \def\psk@shadowangle{-45 }% |
|---|
| 2224 | \setbox\pst@hbox=\hbox{\psframebox@ii}% |
|---|
| 2225 | \pst@dimh=\psk@shadowsize\p@ |
|---|
| 2226 | \pst@dimh=.7071\pst@dimh |
|---|
| 2227 | \pst@dimg=\dp\pst@hbox |
|---|
| 2228 | \advance\pst@dimg\pst@dimh |
|---|
| 2229 | \dp\pst@hbox=\pst@dimg |
|---|
| 2230 | \pst@dimg=\wd\pst@hbox |
|---|
| 2231 | \advance\pst@dimg\pst@dimh |
|---|
| 2232 | \wd\pst@hbox=\pst@dimg |
|---|
| 2233 | \leavevmode |
|---|
| 2234 | \box\pst@hbox |
|---|
| 2235 | \endgroup} |
|---|
| 2236 | \def\pscirclebox{\pst@object{pscirclebox}} |
|---|
| 2237 | \def\pscirclebox@i{\pst@makebox\pscirclebox@ii} |
|---|
| 2238 | \def\pscirclebox@ii{% |
|---|
| 2239 | \begingroup |
|---|
| 2240 | \pst@useboxpar |
|---|
| 2241 | \setbox\pst@hbox=\hbox{% |
|---|
| 2242 | \pst@nodehook |
|---|
| 2243 | \pscirclebox@iii |
|---|
| 2244 | \box\pst@hbox}% |
|---|
| 2245 | \ifpsboxsep \pscirclebox@sep \fi |
|---|
| 2246 | \leavevmode |
|---|
| 2247 | \box\pst@hbox |
|---|
| 2248 | \endgroup} |
|---|
| 2249 | \def\pscirclebox@iii{% |
|---|
| 2250 | \if@star |
|---|
| 2251 | \pslinewidth\z@ |
|---|
| 2252 | \pstverb{\pst@dict \tx@STP \pst@usecolor\psfillcolor |
|---|
| 2253 | newpath \pscirclebox@iv \tx@SD end}% |
|---|
| 2254 | \else |
|---|
| 2255 | \begin@ClosedObj |
|---|
| 2256 | \def\pst@linetype{4}\showpointsfalse |
|---|
| 2257 | \addto@pscode{% |
|---|
| 2258 | \pscirclebox@iv CLW 2 div add 0 360 arc closepath}% |
|---|
| 2259 | \end@ClosedObj |
|---|
| 2260 | \fi} |
|---|
| 2261 | % |
|---|
| 2262 | \def\pscirclebox@iv{% |
|---|
| 2263 | \pst@number{\wd\pst@hbox}2 div |
|---|
| 2264 | \pst@number{\ht\pst@hbox}\pst@number{\dp\pst@hbox}add 2 div |
|---|
| 2265 | 2 copy \pst@number{\dp\pst@hbox}sub 4 2 roll |
|---|
| 2266 | \tx@Pyth \pst@number\psframesep add } |
|---|
| 2267 | % |
|---|
| 2268 | \def\pscirclebox@sep{% |
|---|
| 2269 | \pst@dimb=\ht\pst@hbox |
|---|
| 2270 | \advance\pst@dimb\dp\pst@hbox |
|---|
| 2271 | \divide\pst@dimb 2 |
|---|
| 2272 | \pst@dima=.5\wd\pst@hbox |
|---|
| 2273 | \pst@pyth\pst@dima\pst@dimb\pst@dimc |
|---|
| 2274 | \advance\pst@dimc\pslinewidth |
|---|
| 2275 | \advance\pst@dimc\psframesep |
|---|
| 2276 | \advance\pst@dimb-\pst@dimc |
|---|
| 2277 | \setbox\pst@hbox=\hbox to2\pst@dimc{% |
|---|
| 2278 | \hss\vbox{\kern-\pst@dimb\box\pst@hbox}\hss}% |
|---|
| 2279 | \advance\pst@dimb-\dp\pst@hbox |
|---|
| 2280 | \dp\pst@hbox=-\pst@dimb} |
|---|
| 2281 | % |
|---|
| 2282 | \let\pst@nodehook\relax |
|---|
| 2283 | % |
|---|
| 2284 | \def\psCirclebox{\pst@object{psCirclebox}} |
|---|
| 2285 | \def\psCirclebox@i{\pst@makebox\psCirclebox@ii} |
|---|
| 2286 | \def\psCirclebox@ii{% |
|---|
| 2287 | \begingroup |
|---|
| 2288 | \pst@useboxpar |
|---|
| 2289 | \pst@dima=\ht\pst@hbox |
|---|
| 2290 | \advance\pst@dima\dp\pst@hbox |
|---|
| 2291 | \divide\pst@dima\tw@ |
|---|
| 2292 | \pssetlength\pst@dimb\psk@radius |
|---|
| 2293 | \setbox\pst@hbox=\hbox{% |
|---|
| 2294 | \pst@nodehook |
|---|
| 2295 | \pscircle(.5\wd\pst@hbox,\pst@dima){\pst@dimb}% |
|---|
| 2296 | \box\pst@hbox}% |
|---|
| 2297 | \ifpsboxsep \psCirclebox@sep \fi |
|---|
| 2298 | \leavevmode |
|---|
| 2299 | \box\pst@hbox |
|---|
| 2300 | \endgroup} |
|---|
| 2301 | % |
|---|
| 2302 | \def\psCirclebox@sep{% |
|---|
| 2303 | \pst@dimc=\pst@dimb |
|---|
| 2304 | \advance\pst@dimb-\pst@dima |
|---|
| 2305 | \advance\pst@dima\pst@dimc |
|---|
| 2306 | \setbox\pst@hbox=\hbox to\tw@\pst@dimc{% |
|---|
| 2307 | \hss\vrule width \z@ depth \pst@dimb height \pst@dima |
|---|
| 2308 | \box\pst@hbox\hss}} |
|---|
| 2309 | % |
|---|
| 2310 | \def\psovalbox{\pst@object{psovalbox}} |
|---|
| 2311 | \def\psovalbox@i{\pst@makebox{\psovalbox@ii}} |
|---|
| 2312 | \def\psovalbox@ii{% |
|---|
| 2313 | \begingroup |
|---|
| 2314 | \pst@useboxpar |
|---|
| 2315 | \psovalbox@iii |
|---|
| 2316 | \ifpsboxsep\psovalbox@sep\fi |
|---|
| 2317 | \leavevmode |
|---|
| 2318 | \box\pst@hbox |
|---|
| 2319 | \endgroup} |
|---|
| 2320 | % |
|---|
| 2321 | \def\psovalbox@iii{% |
|---|
| 2322 | \psovalbox@iv |
|---|
| 2323 | \setbox\pst@hbox=\hbox{% |
|---|
| 2324 | \begin@ClosedObj |
|---|
| 2325 | \addto@pscode{% |
|---|
| 2326 | 0 360 |
|---|
| 2327 | \pst@number\pst@dimc CLW 2 div sub |
|---|
| 2328 | \pst@number\pst@dimd CLW 2 div sub |
|---|
| 2329 | \pst@number\pst@dima |
|---|
| 2330 | \pst@number\pst@dimb |
|---|
| 2331 | \tx@Ellipse |
|---|
| 2332 | closepath }% |
|---|
| 2333 | \def\pst@linetype{2}% |
|---|
| 2334 | \end@ClosedObj |
|---|
| 2335 | \unhbox\pst@hbox}} |
|---|
| 2336 | % |
|---|
| 2337 | \def\psovalbox@iv{% |
|---|
| 2338 | \pst@dimc=\pslinewidth\advance\pst@dimc\psframesep |
|---|
| 2339 | \pst@dimd=\ht\pst@hbox\advance\pst@dimd\dp\pst@hbox |
|---|
| 2340 | \pst@dima=.5\wd\pst@hbox |
|---|
| 2341 | \pst@dimb=.5\pst@dimd\advance\pst@dimb-\dp\pst@hbox |
|---|
| 2342 | \pst@dimd=.707\pst@dimd |
|---|
| 2343 | \advance\pst@dimd\pst@dimc |
|---|
| 2344 | \advance\pst@dimc.707\wd\pst@hbox} |
|---|
| 2345 | % |
|---|
| 2346 | \def\psovalbox@sep{% |
|---|
| 2347 | \setbox\pst@hbox\hbox to 2\pst@dimc{\hss\unhbox\pst@hbox\hss}% |
|---|
| 2348 | \pst@dimg=\pst@dimd |
|---|
| 2349 | \advance\pst@dimg-\pst@dimb |
|---|
| 2350 | \dp\pst@hbox=\pst@dimg |
|---|
| 2351 | \advance\pst@dimd\pst@dimb |
|---|
| 2352 | \ht\pst@hbox=\pst@dimd} |
|---|
| 2353 | % |
|---|
| 2354 | \def\psdiabox{\pst@object{psdiabox}} |
|---|
| 2355 | \def\psdiabox@i{\pst@makebox{\psdiabox@ii}} |
|---|
| 2356 | \def\psdiabox@ii{% |
|---|
| 2357 | \begingroup |
|---|
| 2358 | \pst@useboxpar |
|---|
| 2359 | \psdiabox@iii |
|---|
| 2360 | \ifpsboxsep\psdiabox@sep\fi |
|---|
| 2361 | \leavevmode |
|---|
| 2362 | \box\pst@hbox |
|---|
| 2363 | \endgroup} |
|---|
| 2364 | \def\psdiabox@iv{% |
|---|
| 2365 | \pst@dimg=.707\pslinewidth |
|---|
| 2366 | \advance\pst@dimg.707\psframesep |
|---|
| 2367 | \pst@dima=\wd\pst@hbox |
|---|
| 2368 | \divide\pst@dima 2 |
|---|
| 2369 | \pst@dimc=\pst@dima |
|---|
| 2370 | \advance\pst@dimc\pst@dimg |
|---|
| 2371 | \pst@dimd=\ht\pst@hbox |
|---|
| 2372 | \advance\pst@dimd\dp\pst@hbox |
|---|
| 2373 | \divide\pst@dimd 2 |
|---|
| 2374 | \pst@dimb=\pst@dimd |
|---|
| 2375 | \advance\pst@dimb-\dp\pst@hbox |
|---|
| 2376 | \advance\pst@dimd\pst@dimg} |
|---|
| 2377 | \def\psdiabox@iii{% |
|---|
| 2378 | \psdiabox@iv |
|---|
| 2379 | \setbox\pst@hbox=\hbox{% |
|---|
| 2380 | \begin@ClosedObj |
|---|
| 2381 | \addto@pscode{% |
|---|
| 2382 | \psline@iii |
|---|
| 2383 | pop |
|---|
| 2384 | .5 |
|---|
| 2385 | \pst@number\pst@dimc 2 mul \pst@number\pst@dimd 2 mul |
|---|
| 2386 | 0 |
|---|
| 2387 | \pst@number\pst@dima \pst@number\pst@dimb |
|---|
| 2388 | \tx@Diamond}% |
|---|
| 2389 | \def\pst@linetype{4}% |
|---|
| 2390 | \end@ClosedObj |
|---|
| 2391 | \box\pst@hbox}} |
|---|
| 2392 | \def\psdiabox@sep{% |
|---|
| 2393 | \setbox\pst@hbox\hbox to 4\pst@dimc{\hss\unhbox\pst@hbox\hss}% |
|---|
| 2394 | \multiply\pst@dimd 2 |
|---|
| 2395 | \advance\pst@dimd\pst@dimb |
|---|
| 2396 | \ht\pst@hbox\pst@dimd |
|---|
| 2397 | \advance\pst@dimd-2\pst@dimb |
|---|
| 2398 | \dp\pst@hbox\pst@dimd} |
|---|
| 2399 | \def\psset@trimode#1{\pst@expandafter\psset@@trimode{#1}\@empty\@empty\@nil} |
|---|
| 2400 | \def\psset@@trimode#1#2#3\@nil{% |
|---|
| 2401 | \let\pst@tempg#1\relax |
|---|
| 2402 | \ifx\pst@tempg*% |
|---|
| 2403 | \let\psk@@trimode\@empty |
|---|
| 2404 | \let\pst@tempg#2\relax |
|---|
| 2405 | \else |
|---|
| 2406 | \let\psk@@trimode\relax |
|---|
| 2407 | \fi |
|---|
| 2408 | \edef\psk@trimode{% |
|---|
| 2409 | \ifx R\pst@tempg 1 \else\ifx D\pst@tempg 2 |
|---|
| 2410 | \else\ifx L\pst@tempg 3 \else 0 \fi\fi\fi}} |
|---|
| 2411 | \psset@trimode{U} |
|---|
| 2412 | \def\pstribox{\pst@object{pstribox}} |
|---|
| 2413 | \def\pstribox@i{\pst@makebox{\pstribox@ii}} |
|---|
| 2414 | \def\pstribox@ii{% |
|---|
| 2415 | \begingroup |
|---|
| 2416 | \pst@useboxpar |
|---|
| 2417 | \pstribox@iii |
|---|
| 2418 | \ifpsboxsep\pstribox@sep\fi |
|---|
| 2419 | \leavevmode |
|---|
| 2420 | \box\pst@hbox |
|---|
| 2421 | \endgroup} |
|---|
| 2422 | \def\pstribox@iii{% |
|---|
| 2423 | \pstribox@iv |
|---|
| 2424 | \setbox\pst@hbox=\hbox{% |
|---|
| 2425 | \begin@ClosedObj |
|---|
| 2426 | \addto@pscode{% |
|---|
| 2427 | \psline@iii |
|---|
| 2428 | pop |
|---|
| 2429 | .5 |
|---|
| 2430 | \pst@number\pst@dimc \pst@number\pst@dimd |
|---|
| 2431 | \ifodd\psk@trimode exch \fi |
|---|
| 2432 | \psk@trimode -90 mul |
|---|
| 2433 | \pst@number\pst@dima \pst@number\pst@dimb |
|---|
| 2434 | \tx@Triangle}% |
|---|
| 2435 | \def\pst@linetype{2}% |
|---|
| 2436 | \end@ClosedObj |
|---|
| 2437 | \box\pst@hbox}} |
|---|
| 2438 | \def\pstribox@iv{% |
|---|
| 2439 | \pst@dimh=\pslinewidth |
|---|
| 2440 | \advance\pst@dimh\psframesep |
|---|
| 2441 | \pst@dimg=\ht\pst@hbox |
|---|
| 2442 | \advance\pst@dimg-\dp\pst@hbox |
|---|
| 2443 | \divide\pst@dimg 2 |
|---|
| 2444 | \edef\pst@tempa{\number\pst@dimg sp}% For use by nodes. |
|---|
| 2445 | \ifodd\psk@trimode |
|---|
| 2446 | \pst@dimb\pst@dimg |
|---|
| 2447 | \else |
|---|
| 2448 | \pst@dima=\wd\pst@hbox |
|---|
| 2449 | \divide\pst@dima 2 |
|---|
| 2450 | \fi |
|---|
| 2451 | \ifcase\psk@trimode |
|---|
| 2452 | \pst@dimb=-\dp\pst@hbox |
|---|
| 2453 | \advance\pst@dimb-\pst@dimh |
|---|
| 2454 | \or |
|---|
| 2455 | \pst@dima=-\pst@dimh |
|---|
| 2456 | \or |
|---|
| 2457 | \pst@dimb=\ht\pst@hbox |
|---|
| 2458 | \advance\pst@dimb\pst@dimh |
|---|
| 2459 | \or |
|---|
| 2460 | \pst@dima=\wd\pst@hbox |
|---|
| 2461 | \advance\pst@dima\pst@dimh |
|---|
| 2462 | \fi |
|---|
| 2463 | \pst@dimd=\dp\pst@hbox |
|---|
| 2464 | \advance\pst@dimd\ht\pst@hbox |
|---|
| 2465 | \ifx\psk@@trimode\relax |
|---|
| 2466 | \pst@dimc=\wd\pst@hbox |
|---|
| 2467 | \advance\pst@dimc\ifodd\psk@trimode 1.447\else 1.789\fi\pst@dimh |
|---|
| 2468 | \multiply\pst@dimc 2 |
|---|
| 2469 | \advance\pst@dimd\ifodd\psk@trimode 1.789\else 1.447\fi\pst@dimh |
|---|
| 2470 | \multiply\pst@dimd 2 |
|---|
| 2471 | \else |
|---|
| 2472 | \ifodd\psk@trimode |
|---|
| 2473 | \advance\pst@dimd 1.1547\wd\pst@hbox |
|---|
| 2474 | \advance\pst@dimd 3.4641\pst@dimh |
|---|
| 2475 | \pst@dimc=.866\pst@dimd |
|---|
| 2476 | \else |
|---|
| 2477 | \advance\pst@dimd .866\wd\pst@hbox %.866=(sqrt(3)/2) |
|---|
| 2478 | \advance\pst@dimd 3\pst@dimh |
|---|
| 2479 | \pst@dimc=1.1547\pst@dimd % 1.1547=(2/sqrt(3)) |
|---|
| 2480 | \fi |
|---|
| 2481 | \fi} |
|---|
| 2482 | \def\pstribox@sep{% |
|---|
| 2483 | \ifodd\psk@trimode |
|---|
| 2484 | \advance\pst@dimb.5\pst@dimd |
|---|
| 2485 | \ht\pst@hbox=\pst@dimb |
|---|
| 2486 | \advance\pst@dimd-\pst@dimb |
|---|
| 2487 | \dp\pst@hbox=\pst@dimd |
|---|
| 2488 | \else |
|---|
| 2489 | \setbox\pst@hbox\hbox to \pst@dimc{\hss\unhbox\pst@hbox\hss}% |
|---|
| 2490 | \global\pst@dimg=.5\pst@dimc |
|---|
| 2491 | \fi |
|---|
| 2492 | \ifcase\psk@trimode |
|---|
| 2493 | \dp\pst@hbox-\pst@dimb |
|---|
| 2494 | \advance\pst@dimd\pst@dimb |
|---|
| 2495 | \ht\pst@hbox\pst@dimd |
|---|
| 2496 | \or |
|---|
| 2497 | \pst@dimg=.5\wd\pst@hbox |
|---|
| 2498 | \global\advance\pst@dimg-\pst@dima |
|---|
| 2499 | \setbox\pst@hbox\hbox to \pst@dimc{\kern-\pst@dima\box\pst@hbox\hss}% |
|---|
| 2500 | \or |
|---|
| 2501 | \ht\pst@hbox\pst@dimb |
|---|
| 2502 | \advance\pst@dimd-\pst@dimb |
|---|
| 2503 | \dp\pst@hbox\pst@dimd |
|---|
| 2504 | \or |
|---|
| 2505 | \pst@dimg=\pst@dimc |
|---|
| 2506 | \advance\pst@dimg-\pst@dima |
|---|
| 2507 | \global\advance\pst@dimg.5\wd\pst@hbox |
|---|
| 2508 | \setbox\pst@hbox\hbox to \pst@dimc{% |
|---|
| 2509 | \hss\box\pst@hbox\kern\psframesep\kern\pslinewidth}% |
|---|
| 2510 | \fi} |
|---|
| 2511 | \def\psset@arcsepA#1{\pst@getlength{#1}\psk@arcsepA} |
|---|
| 2512 | \def\psset@arcsepB#1{\pst@getlength{#1}\psk@arcsepB} |
|---|
| 2513 | \def\psset@arcsep#1{% |
|---|
| 2514 | \psset@arcsepA{#1}\let\psk@arcsepB\psk@arcsepA} |
|---|
| 2515 | \psset@arcsep{0} |
|---|
| 2516 | \def\tx@ArcArrow{ArcArrow } |
|---|
| 2517 | \def\psarc{\pst@object{psarc}} |
|---|
| 2518 | \def\psarc@i{\@ifnextchar({\psarc@iii}{\psarc@ii}} |
|---|
| 2519 | \def\psarc@ii#1{\addto@par{arrows=#1}% |
|---|
| 2520 | \@ifnextchar({\psarc@iii}{\psarc@iii(0,0)}% |
|---|
| 2521 | } |
|---|
| 2522 | \def\psarc@iii(#1)#2#3#4{% |
|---|
| 2523 | \begin@OpenObj |
|---|
| 2524 | \pst@getangle{#3}\pst@tempa |
|---|
| 2525 | \pst@getangle{#4}\pst@tempb |
|---|
| 2526 | \pst@@getcoor{#1}% |
|---|
| 2527 | \pssetlength\pst@dima{#2}% |
|---|
| 2528 | \addto@pscode{\psarc@iv \psarc@v}% |
|---|
| 2529 | \gdef\psarc@type{0}% |
|---|
| 2530 | \showpointsfalse |
|---|
| 2531 | \end@OpenObj% |
|---|
| 2532 | } |
|---|
| 2533 | \def\psarc@iv{% |
|---|
| 2534 | \pst@coor /y ED /x ED |
|---|
| 2535 | /r \pst@number\pst@dima def |
|---|
| 2536 | /c 57.2957 r \tx@Div def |
|---|
| 2537 | /angleA |
|---|
| 2538 | \pst@tempa |
|---|
| 2539 | \psk@arcsepA c mul 2 div |
|---|
| 2540 | \ifcase \psarc@type add \or sub \fi |
|---|
| 2541 | def |
|---|
| 2542 | /angleB |
|---|
| 2543 | \pst@tempb |
|---|
| 2544 | \psk@arcsepB c mul 2 div |
|---|
| 2545 | \ifcase \psarc@type sub \or add \fi |
|---|
| 2546 | def |
|---|
| 2547 | \ifshowpoints\psarc@showpoints\fi |
|---|
| 2548 | \ifx\psk@arrowA\@empty |
|---|
| 2549 | \ifnum\psk@liftpen=2 |
|---|
| 2550 | r angleA \tx@PtoC |
|---|
| 2551 | y add exch x add exch moveto |
|---|
| 2552 | \fi |
|---|
| 2553 | \fi} |
|---|
| 2554 | % hv ---- 1.10 2005-05-05 ----------------------> hv begin |
|---|
| 2555 | \def\psarc@v{% |
|---|
| 2556 | x y r |
|---|
| 2557 | angleA |
|---|
| 2558 | \ifx\psk@arrowA\@empty\else |
|---|
| 2559 | { ArrowA CP } |
|---|
| 2560 | r 0 gt \pslbrace |
|---|
| 2561 | { \ifcase\psarc@type add \or sub \fi } \psrbrace\pslbrace |
|---|
| 2562 | { \ifcase\psarc@type sub \or add \fi } \psrbrace ifelse |
|---|
| 2563 | % { \ifcase\psarc@type add \or sub \fi } |
|---|
| 2564 | \tx@ArcArrow |
|---|
| 2565 | \fi |
|---|
| 2566 | angleB |
|---|
| 2567 | \ifx\psk@arrowB\@empty\else |
|---|
| 2568 | { ArrowB } |
|---|
| 2569 | r 0 gt \pslbrace |
|---|
| 2570 | { \ifcase\psarc@type sub \or add \fi } \psrbrace\pslbrace |
|---|
| 2571 | { \ifcase\psarc@type add \or sub \fi } \psrbrace ifelse |
|---|
| 2572 | % { \ifcase\psarc@type sub \or add \fi } |
|---|
| 2573 | \tx@ArcArrow |
|---|
| 2574 | \fi |
|---|
| 2575 | \ifcase\psarc@type arc \or arcn \fi} |
|---|
| 2576 | % hv ----- 1.10 2005-05-05 ------------------------> end |
|---|
| 2577 | % |
|---|
| 2578 | \def\psarc@type{0} |
|---|
| 2579 | \def\psarc@showpoints{% |
|---|
| 2580 | gsave |
|---|
| 2581 | newpath |
|---|
| 2582 | x y moveto |
|---|
| 2583 | x y r \pst@tempa \pst@tempb |
|---|
| 2584 | \ifcase\psarc@type arc \or arcn \fi |
|---|
| 2585 | closepath |
|---|
| 2586 | CLW 2 div SLW |
|---|
| 2587 | [ \psk@dash\space ] 0 setdash stroke |
|---|
| 2588 | grestore } |
|---|
| 2589 | \def\psarcn{\pst@object{psarcn}} |
|---|
| 2590 | \def\psarcn@i{\def\psarc@type{1}\psarc@i} |
|---|
| 2591 | % |
|---|
| 2592 | %------------------ tvz/DG/hv (2004-05-10) begin -------------------%% |
|---|
| 2593 | % from Denis Giroux: http://www.tug.org/pipermail/pstricks/2001/000507.html |
|---|
| 2594 | % |
|---|
| 2595 | % I - Definition of \psellipticwedge, a generalization of \pswedge for wedges |
|---|
| 2596 | % of ellipses (from the code of \pswedge and \psellipse) |
|---|
| 2597 | % |
|---|
| 2598 | \def\psellipticwedge{\def\pst@par{}\pst@object{psellipticwedge}} |
|---|
| 2599 | \def\psellipticwedge@i(#1){% |
|---|
| 2600 | \@ifnextchar({\psellipticwedge@ii(#1)}{\psellipticwedge@ii(0,0)(#1)}} |
|---|
| 2601 | \def\psellipticwedge@ii(#1)(#2)#3#4{% |
|---|
| 2602 | \begin@ClosedObj |
|---|
| 2603 | \pst@getangle{#3}\pst@tempa |
|---|
| 2604 | \pst@getangle{#4}\pst@tempb |
|---|
| 2605 | \pst@getcoor{#1}\pst@tempc |
|---|
| 2606 | \pst@@getcoor{#2}% |
|---|
| 2607 | \def\pst@linetype{1}% |
|---|
| 2608 | \addto@pscode{% |
|---|
| 2609 | \pst@tempa \pst@tempb |
|---|
| 2610 | \pst@coor |
|---|
| 2611 | \pst@tempc moveto |
|---|
| 2612 | \ifdim\psk@dimen\p@=\z@\else |
|---|
| 2613 | \psk@dimen CLW mul dup 3 1 roll |
|---|
| 2614 | sub 3 1 roll sub exch |
|---|
| 2615 | \fi |
|---|
| 2616 | \pst@tempc |
|---|
| 2617 | \tx@Ellipse |
|---|
| 2618 | closepath% |
|---|
| 2619 | }% |
|---|
| 2620 | \showpointsfalse |
|---|
| 2621 | \end@ClosedObj% |
|---|
| 2622 | } |
|---|
| 2623 | % |
|---|
| 2624 | % Code mainly from "pstricks.tex'' 0.94 beta (TvZ) |
|---|
| 2625 | % |
|---|
| 2626 | \def\psellipticarcn{\def\pst@par{}\pst@object{psellipticarcn}} |
|---|
| 2627 | \def\psellipticarcn@i{\let\if@psarcn\iftrue\psellipticarc@ii} |
|---|
| 2628 | % |
|---|
| 2629 | \def\psellipticarc{\def\pst@par{}\pst@object{psellipticarc}} |
|---|
| 2630 | \def\psellipticarc@i{\let\if@psarcn\iffalse\psellipticarc@ii} |
|---|
| 2631 | % |
|---|
| 2632 | \let\if@psarcn\iffalse |
|---|
| 2633 | \def\psellipticarc@ii{\pst@getarrows\psellipticarc@iii} |
|---|
| 2634 | \def\psellipticarc@iii(#1){% |
|---|
| 2635 | \@ifnextchar({\psellipticarc@iv(#1)}{\psellipticarc@iv(0,0)(#1)}} |
|---|
| 2636 | \def\psellipticarc@iv(#1)(#2)#3#4{% |
|---|
| 2637 | \begin@OpenObj |
|---|
| 2638 | \pst@getcoor{#1}\pst@tempa |
|---|
| 2639 | \pst@getcoor{#2}\pst@tempb |
|---|
| 2640 | \pst@getangle{#3}\pst@tempc |
|---|
| 2641 | \pst@getangle{#4}\pst@tempd |
|---|
| 2642 | \addto@pscode{\psellipticarc@definearg \psellipticarc@draw}% |
|---|
| 2643 | \showpointsfalse |
|---|
| 2644 | \end@OpenObj% |
|---|
| 2645 | } |
|---|
| 2646 | \def\psellipticarc@definearg{% |
|---|
| 2647 | \pst@tempa /yOrig ED /xOrig ED % Origin |
|---|
| 2648 | \pst@tempb % radii. Now adjust: |
|---|
| 2649 | \ifdim\psk@dimen\p@=\z@\else |
|---|
| 2650 | \psk@dimen CLW mul dup 3 1 roll |
|---|
| 2651 | sub 3 1 roll sub exch |
|---|
| 2652 | \fi |
|---|
| 2653 | /ry ED /rx ED |
|---|
| 2654 | /angleA |
|---|
| 2655 | /d { \if@psarcn sub \else add \fi } def |
|---|
| 2656 | \pst@tempc \psk@arcsepA 2 div |
|---|
| 2657 | ArcAdjust |
|---|
| 2658 | def |
|---|
| 2659 | /angleB |
|---|
| 2660 | /d { \if@psarcn add \else sub \fi } def |
|---|
| 2661 | \pst@tempd \psk@arcsepB 2 div ArcAdjust |
|---|
| 2662 | def |
|---|
| 2663 | \ifshowpoints\psellipticarc@showpoints\fi |
|---|
| 2664 | \ifx\psk@arrowA\@empty |
|---|
| 2665 | \ifnum\psk@liftpen=2 |
|---|
| 2666 | angleA cos rx mul xOrig add |
|---|
| 2667 | angleA sin ry mul yOrig add |
|---|
| 2668 | moveto |
|---|
| 2669 | \fi |
|---|
| 2670 | \fi |
|---|
| 2671 | } |
|---|
| 2672 | \def\psellipticarc@draw{% |
|---|
| 2673 | 0 0 1 |
|---|
| 2674 | angleA |
|---|
| 2675 | \ifx\psk@arrowA\@empty\else |
|---|
| 2676 | { ArrowA CP } |
|---|
| 2677 | { \if@psarcn sub \else add \fi } |
|---|
| 2678 | EllipticArcArrow |
|---|
| 2679 | \fi |
|---|
| 2680 | angleB |
|---|
| 2681 | \ifx\psk@arrowB\@empty\else |
|---|
| 2682 | { ArrowB } |
|---|
| 2683 | { \if@psarcn add \else sub \fi } |
|---|
| 2684 | EllipticArcArrow |
|---|
| 2685 | \fi |
|---|
| 2686 | /mtrx CM def |
|---|
| 2687 | xOrig yOrig T |
|---|
| 2688 | rx ry scale |
|---|
| 2689 | \if@psarcn arcn \else arc \fi |
|---|
| 2690 | mtrx setmatrix% |
|---|
| 2691 | } |
|---|
| 2692 | \def\psellipticarc@showpoints{% |
|---|
| 2693 | gsave |
|---|
| 2694 | /mtrx CM def |
|---|
| 2695 | xOrig yOrig T |
|---|
| 2696 | rx ry scale |
|---|
| 2697 | 0 0 moveto |
|---|
| 2698 | 0 0 1 \pst@tempc \pst@tempd |
|---|
| 2699 | \ifcase\psarc@type arc \or arcn \fi |
|---|
| 2700 | closepath |
|---|
| 2701 | mtrx setmatrix |
|---|
| 2702 | CLW 2 div SLW |
|---|
| 2703 | [ \psk@dash\space ] 0 setdash stroke |
|---|
| 2704 | grestore % |
|---|
| 2705 | } |
|---|
| 2706 | \def\pscircle{\pst@object{pscircle}} |
|---|
| 2707 | \def\pscircle@i{\@ifnextchar({\pscircle@do}{\pscircle@do(0,0)}} |
|---|
| 2708 | \def\pscircle@do(#1)#2{% |
|---|
| 2709 | \if@star{\use@par\qdisk(#1){#2}}% qdisk does not allow |
|---|
| 2710 | \else% to use opacity option |
|---|
| 2711 | \begin@ClosedObj |
|---|
| 2712 | \pst@@getcoor{#1}% |
|---|
| 2713 | \pssetlength\pst@dimc{#2}% |
|---|
| 2714 | \def\pst@linetype{4}% |
|---|
| 2715 | \addto@pscode{ |
|---|
| 2716 | \pst@coor |
|---|
| 2717 | \pst@number\pst@dimc |
|---|
| 2718 | \psk@dimen CLW mul sub |
|---|
| 2719 | 0 360 arc |
|---|
| 2720 | closepath }% |
|---|
| 2721 | \showpointsfalse |
|---|
| 2722 | \end@ClosedObj |
|---|
| 2723 | \fi |
|---|
| 2724 | \ignorespaces} |
|---|
| 2725 | % |
|---|
| 2726 | \def\qdisk(#1)#2{% |
|---|
| 2727 | \def\pst@par{}% |
|---|
| 2728 | \begin@SpecialObj |
|---|
| 2729 | \pst@@getcoor{#1}% |
|---|
| 2730 | \pssetlength\pst@dimg{#2}% |
|---|
| 2731 | \addto@pscode{ \pst@coor \pst@number\pst@dimg \tx@SD }% |
|---|
| 2732 | \end@SpecialObj} |
|---|
| 2733 | % |
|---|
| 2734 | \def\psset@radius#1{\pst@@getlength{#1}\psk@radius} |
|---|
| 2735 | \psset@radius{.25cm} |
|---|
| 2736 | % |
|---|
| 2737 | \def\psCircle{\pst@object{psCircle}} |
|---|
| 2738 | \def\psCircle@i{\@ifnextchar({\psCircle@ii}{\psCircle@ii(0,0)}} |
|---|
| 2739 | \def\psCircle@ii(#1){\pscircle@do(#1){\psk@radius}} |
|---|
| 2740 | \def\pswedge{\pst@object{pswedge}} |
|---|
| 2741 | \def\pswedge@i{\@ifnextchar({\pswedge@ii}{\pswedge@ii(0,0)}} |
|---|
| 2742 | \def\pswedge@ii(#1)#2#3#4{% |
|---|
| 2743 | \begin@ClosedObj |
|---|
| 2744 | \pssetlength\pst@dimc{#2} |
|---|
| 2745 | \pst@getangle{#3}\pst@tempa |
|---|
| 2746 | \pst@getangle{#4}\pst@tempb |
|---|
| 2747 | \pst@@getcoor{#1}% |
|---|
| 2748 | \def\pst@linetype{1}% |
|---|
| 2749 | \addto@pscode{% |
|---|
| 2750 | \pst@coor |
|---|
| 2751 | 2 copy |
|---|
| 2752 | moveto |
|---|
| 2753 | \pst@number\pst@dimc \psk@dimen CLW mul sub % Adjusted radius |
|---|
| 2754 | \pst@tempa \pst@tempb |
|---|
| 2755 | arc |
|---|
| 2756 | closepath}% |
|---|
| 2757 | \showpointsfalse |
|---|
| 2758 | \end@ClosedObj% |
|---|
| 2759 | } |
|---|
| 2760 | \def\tx@Ellipse{Ellipse } |
|---|
| 2761 | \def\psellipse{\pst@object{psellipse}} |
|---|
| 2762 | \def\psellipse@i(#1){\@ifnextchar({\psellipse@ii(#1)}{\psellipse@ii(0,0)(#1)}} |
|---|
| 2763 | \def\psellipse@ii(#1)(#2){% |
|---|
| 2764 | \begin@ClosedObj |
|---|
| 2765 | \pst@getcoor{#1}\pst@tempa |
|---|
| 2766 | \pst@@getcoor{#2}% |
|---|
| 2767 | \addto@pscode{% |
|---|
| 2768 | 0 360 |
|---|
| 2769 | \pst@coor |
|---|
| 2770 | \ifdim\psk@dimen\p@=\z@\else |
|---|
| 2771 | \psk@dimen CLW mul |
|---|
| 2772 | dup 4 -1 roll sub neg 3 1 roll sub |
|---|
| 2773 | \fi |
|---|
| 2774 | \pst@tempa |
|---|
| 2775 | \tx@Ellipse |
|---|
| 2776 | closepath% |
|---|
| 2777 | }% |
|---|
| 2778 | \def\pst@linetype{2}% |
|---|
| 2779 | \end@ClosedObj% |
|---|
| 2780 | } |
|---|
| 2781 | \def\multips{\@ifnextchar({\def\pst@par{}\multips@ii}{\multips@i}} |
|---|
| 2782 | \def\multips@i#1{\def\pst@par{rot=#1}\multips@ii} |
|---|
| 2783 | \def\multips@ii(#1){\@ifnextchar({\multips@iii(#1)}{\multips@iii(\z@,\z@)(#1)}} |
|---|
| 2784 | \long\def\multips@iii(#1)(#2)#3#4{% |
|---|
| 2785 | \begingroup |
|---|
| 2786 | %----------------- hv 1.10 ------------------ |
|---|
| 2787 | \pst@killglue |
|---|
| 2788 | %----------------- hv 1.10 ------------------ |
|---|
| 2789 | \use@par |
|---|
| 2790 | \pst@getcoor{#1}\pst@tempa |
|---|
| 2791 | \pst@@getcoor{#2}% |
|---|
| 2792 | \pst@cnta=#3\relax |
|---|
| 2793 | \init@pscode |
|---|
| 2794 | \addto@pscode{% |
|---|
| 2795 | \pst@tempa T \the\pst@cnta\space \pslbrace |
|---|
| 2796 | gsave \ifx\psk@rot\@empty\else\psk@rot rotate \fi}% |
|---|
| 2797 | \hbox to\z@{% |
|---|
| 2798 | \def\init@pscode{% |
|---|
| 2799 | \addto@pscode{% |
|---|
| 2800 | gsave |
|---|
| 2801 | \pst@number\pslinewidth SLW |
|---|
| 2802 | \pst@usecolor\pslinecolor}}% |
|---|
| 2803 | \def\use@pscode{\addto@pscode{grestore}}% |
|---|
| 2804 | \def\psclip##1{\pst@misplaced\psclip}% |
|---|
| 2805 | \def\nc@object##1##2##3##4{\pst@misplaced{node connection}}% |
|---|
| 2806 | #4% |
|---|
| 2807 | }% |
|---|
| 2808 | \addto@pscode{grestore \pst@coor T \psrbrace repeat}% |
|---|
| 2809 | \leavevmode |
|---|
| 2810 | \use@pscode |
|---|
| 2811 | \endgroup |
|---|
| 2812 | \ignorespaces} |
|---|
| 2813 | \def\psscalebox#1{\pst@makebox{\ps@scalebox{#1}}} |
|---|
| 2814 | \def\ps@scalebox#1{% |
|---|
| 2815 | \begingroup% |
|---|
| 2816 | \pst@getscale{#1}\pst@tempa% |
|---|
| 2817 | \let\pst@tempc\pst@tempg% |
|---|
| 2818 | \let\pst@tempd\pst@temph% |
|---|
| 2819 | \ps@@scalebox% |
|---|
| 2820 | \endgroup} |
|---|
| 2821 | \def\ps@@scalebox{% |
|---|
| 2822 | \leavevmode% |
|---|
| 2823 | \hbox{% |
|---|
| 2824 | \ifdim\pst@tempd\p@<\z@% |
|---|
| 2825 | \pst@dimg=\pst@tempd\ht\pst@hbox% |
|---|
| 2826 | \pst@dimh=\pst@tempd\dp\pst@hbox% |
|---|
| 2827 | \dp\pst@hbox=-\pst@dimg% |
|---|
| 2828 | \ht\pst@hbox=-\pst@dimh% |
|---|
| 2829 | \else% |
|---|
| 2830 | \ht\pst@hbox=\pst@tempd\ht\pst@hbox% |
|---|
| 2831 | \dp\pst@hbox=\pst@tempd\dp\pst@hbox% |
|---|
| 2832 | \fi% |
|---|
| 2833 | \pst@dima=\pst@tempc\wd\pst@hbox% |
|---|
| 2834 | \ifdim\pst@dima<\z@\kern-\pst@dima\fi% |
|---|
| 2835 | \pst@Verb{CP CP translate \pst@tempa \tx@NET}% |
|---|
| 2836 | \hbox to \z@{\box\pst@hbox\hss}% |
|---|
| 2837 | \pst@Verb{ |
|---|
| 2838 | CP CP translate |
|---|
| 2839 | 1 \pst@tempc div 1 \pst@tempd div scale |
|---|
| 2840 | \tx@NET}% |
|---|
| 2841 | \ifdim\pst@dima>\z@\kern\pst@dima\fi% |
|---|
| 2842 | }% |
|---|
| 2843 | } |
|---|
| 2844 | \pslongbox{Scalebox}{\psscalebox} |
|---|
| 2845 | % |
|---|
| 2846 | \def\psscaleboxto(#1,#2){\pst@makebox{\ps@scaleboxto(#1,#2)}} |
|---|
| 2847 | \def\ps@scaleboxto(#1,#2){% |
|---|
| 2848 | \begingroup |
|---|
| 2849 | \pssetlength\pst@dima{#1}% |
|---|
| 2850 | \pssetlength\pst@dimb{#2}% |
|---|
| 2851 | \ifdim\pst@dima=\z@\else |
|---|
| 2852 | \pst@divide{\pst@dima}{\wd\pst@hbox}\pst@tempc |
|---|
| 2853 | \edef\pst@tempc{\pst@tempc\space}% |
|---|
| 2854 | \fi |
|---|
| 2855 | \ifdim\pst@dimb=\z@ |
|---|
| 2856 | \ifdim\pst@dima=\z@ |
|---|
| 2857 | \@pstrickserr{% |
|---|
| 2858 | \string\psscaleboxto\space dimensions cannot both be zero}\@ehpa |
|---|
| 2859 | \def\pst@tempa{}% |
|---|
| 2860 | \def\pst@tempc{1 }% |
|---|
| 2861 | \def\pst@tempd{1 }% |
|---|
| 2862 | \else |
|---|
| 2863 | \let\pst@tempd\pst@tempc |
|---|
| 2864 | \fi |
|---|
| 2865 | \else |
|---|
| 2866 | \pst@dimc=\ht\pst@hbox |
|---|
| 2867 | \advance\pst@dimc\dp\pst@hbox |
|---|
| 2868 | \pst@divide{\pst@dimb}{\pst@dimc}\pst@tempd |
|---|
| 2869 | \edef\pst@tempd{\pst@tempd\space}% |
|---|
| 2870 | \ifdim\pst@dima=\z@ \let\pst@tempc\pst@tempd \fi |
|---|
| 2871 | \fi |
|---|
| 2872 | \edef\pst@tempa{\pst@tempc \pst@tempd scale }% |
|---|
| 2873 | \ps@@scalebox |
|---|
| 2874 | \endgroup} |
|---|
| 2875 | \pslongbox{Scaleboxto}{\psscaleboxto} |
|---|
| 2876 | % |
|---|
| 2877 | \def\tx@Rot{Rot } |
|---|
| 2878 | \def\psrotateleft{\pst@makebox{\ps@rotateleft\pst@hbox}} |
|---|
| 2879 | \def\ps@rotateleft#1{% |
|---|
| 2880 | \leavevmode\hbox{\hskip\ht#1\hskip\dp#1\vbox{\vskip\wd#1% |
|---|
| 2881 | \pst@Verb{90 \tx@Rot} |
|---|
| 2882 | \vbox to \z@{\vss\hbox to \z@{\box#1\hss}\vskip\z@}% |
|---|
| 2883 | \pst@Verb{-90 \tx@Rot}}}} |
|---|
| 2884 | \def\psrotateright{\pst@makebox{\ps@rotateright\pst@hbox}} |
|---|
| 2885 | \def\ps@rotateright#1{% |
|---|
| 2886 | % ----------- hv begin 2004-05-07 ----------- patch 15 |
|---|
| 2887 | % \hbox{% |
|---|
| 2888 | \leavevmode\hbox{% |
|---|
| 2889 | % ----------- hv end 2004-05-07 ----------- patch 15 |
|---|
| 2890 | \hskip\ht#1\hskip\dp#1\vbox{\vskip\wd#1% |
|---|
| 2891 | \pst@Verb{-90 \tx@Rot} |
|---|
| 2892 | \vbox to \z@{\hbox to \z@{\hss\box#1}\vss}% |
|---|
| 2893 | \pst@Verb{90 \tx@Rot}}}} |
|---|
| 2894 | \def\psrotatedown{\pst@makebox{\ps@rotatedown\pst@hbox}} |
|---|
| 2895 | \def\ps@rotatedown#1{% |
|---|
| 2896 | \hbox{\hskip\wd#1\vbox{\vskip\ht#1\vskip\dp#1% |
|---|
| 2897 | \pst@Verb{180 \tx@Rot}% |
|---|
| 2898 | \vbox to \z@{\hbox to \z@{\box#1\hss}\vss}% |
|---|
| 2899 | \pst@Verb{-180 \tx@Rot}}}} |
|---|
| 2900 | \pslongbox{Rotateleft}{\psrotateleft} |
|---|
| 2901 | \pslongbox{Rotateright}{\psrotateright} |
|---|
| 2902 | \pslongbox{Rotatedown}{\psrotatedown} |
|---|
| 2903 | % ----------- hv begin 2004-09-23 ----------- 1.11 |
|---|
| 2904 | % compatibility stuff |
|---|
| 2905 | \let\rotateleft\psrotateleft |
|---|
| 2906 | \let\rotateright\psrotateright |
|---|
| 2907 | \let\rotatedown\psrotatedown |
|---|
| 2908 | % ----------- hv end 2005-09-23 ----------- 1.11 |
|---|
| 2909 | \def\pst@starbox{% |
|---|
| 2910 | \setbox\pst@hbox\hbox{\psframebox*[boxsep=false]{\unhbox\pst@hbox}}} |
|---|
| 2911 | \def\pst@@makesmall#1{% |
|---|
| 2912 | \setbox#1=\hbox to\z@{\hss\vbox to \z@{\vss\box#1\vss}\hss}} |
|---|
| 2913 | \def\pst@@@makesmall#1{% |
|---|
| 2914 | \pst@dimh=\psk@xref\wd#1% |
|---|
| 2915 | \ifx\psk@yref\relax |
|---|
| 2916 | \pst@dimg=\dp#1% |
|---|
| 2917 | \else |
|---|
| 2918 | \pst@dimg=\psk@yref\ht#1% |
|---|
| 2919 | \advance\pst@dimg\psk@yref\dp#1% |
|---|
| 2920 | \fi |
|---|
| 2921 | \setbox#1=\hbox to\z@{% |
|---|
| 2922 | \kern-\pst@dimh\vbox to\z@{\vss\box#1\kern-\pst@dimg}\hss}} |
|---|
| 2923 | \def\psset@ref#1{\pst@expandafter\psset@@ref{#1}\@empty,,\@nil} |
|---|
| 2924 | \def\psset@@ref#1#2,#3,#4\@nil{% |
|---|
| 2925 | \def\psk@xref{.5}% |
|---|
| 2926 | \def\psk@yref{.5}% |
|---|
| 2927 | \let\pst@makesmall\pst@@@makesmall |
|---|
| 2928 | \ifx\@empty#3\@empty |
|---|
| 2929 | \@nameuse{getref@#1}% |
|---|
| 2930 | \@nameuse{getref@#2}% |
|---|
| 2931 | \else |
|---|
| 2932 | \pst@checknum{#1#2}\psk@xref |
|---|
| 2933 | \pst@checknum{#3}\psk@yref |
|---|
| 2934 | \fi} |
|---|
| 2935 | \def\getref@c{\let\pst@makesmall\pst@@makesmall} |
|---|
| 2936 | \def\getref@t{\def\psk@yref{1}} |
|---|
| 2937 | \def\getref@b{\def\psk@yref{0}} |
|---|
| 2938 | \def\getref@B{\let\psk@yref\relax} |
|---|
| 2939 | \def\getref@l{\def\psk@xref{0}} |
|---|
| 2940 | \def\getref@r{\def\psk@xref{1}} |
|---|
| 2941 | \psset@ref{c} |
|---|
| 2942 | % |
|---|
| 2943 | \def\psset@rot#1{% |
|---|
| 2944 | \pst@expandafter{\@ifnextchar*{\psset@@@rot}{\psset@@rot}}{#1}\@nil} |
|---|
| 2945 | \def\psset@@rot#1\@nil{% |
|---|
| 2946 | \def\next##1@#1=##2@##3\@nil{% |
|---|
| 2947 | \ifx\relax##2% |
|---|
| 2948 | \pst@getangle{#1}\psk@rot |
|---|
| 2949 | \else |
|---|
| 2950 | \def\psk@rot{##2}% |
|---|
| 2951 | \fi}% |
|---|
| 2952 | \expandafter\next\pst@rottable @#1=\relax @\@nil} |
|---|
| 2953 | \def\psset@@@rot#1#2\@nil{% |
|---|
| 2954 | \psset@@rot#2\@nil |
|---|
| 2955 | \edef\psk@rot{\pst@rotlist \ifx\psk@rot\@empty\else\psk@rot add \fi}} |
|---|
| 2956 | \def\pst@rotlist{mark RAngle /a ED cleartomark a neg } |
|---|
| 2957 | \def\pst@rottable{% |
|---|
| 2958 | @0=% |
|---|
| 2959 | @U=% |
|---|
| 2960 | @L=90 % |
|---|
| 2961 | @D=180 % |
|---|
| 2962 | @R=-90 % |
|---|
| 2963 | @N=\pst@rotlist |
|---|
| 2964 | @W=\pst@rotlist 90 add % |
|---|
| 2965 | @S=\pst@rotlist 180 add % |
|---|
| 2966 | @E=\pst@rotlist 90 sub } |
|---|
| 2967 | \psset@rot{0} |
|---|
| 2968 | \def\tx@RotBegin{RotBegin } |
|---|
| 2969 | \def\tx@RotEnd{RotEnd } |
|---|
| 2970 | \def\pst@rotate#1#2{% |
|---|
| 2971 | \ifx#1\@empty\else |
|---|
| 2972 | \setbox#2=\hbox{\pst@Verb{#1 \tx@RotBegin}\box#2\pst@Verb{\tx@RotEnd}}% |
|---|
| 2973 | \fi% |
|---|
| 2974 | } |
|---|
| 2975 | \def\psput@cartesian#1{% |
|---|
| 2976 | \hbox to \z@{\kern\pst@dimg{\vbox to \z@{\vss\box#1\vskip\pst@dimh}\hss}}% |
|---|
| 2977 | } |
|---|
| 2978 | \def\psput@special#1{% |
|---|
| 2979 | \hbox{% |
|---|
| 2980 | \pst@Verb{{ \pst@coor } \tx@PutCoor \tx@PutBegin }% |
|---|
| 2981 | \box#1% |
|---|
| 2982 | \pst@Verb{ \tx@PutEnd }% |
|---|
| 2983 | }% |
|---|
| 2984 | } |
|---|
| 2985 | \def\tx@PutCoor{PutCoor } |
|---|
| 2986 | \def\tx@PutBegin{PutBegin } |
|---|
| 2987 | \def\tx@PutEnd{PutEnd } |
|---|
| 2988 | \def\rput{\def\pst@par{}\pst@ifstar{\@ifnextchar[{\rput@i}{\rput@ii}}} |
|---|
| 2989 | \def\rput@i[#1]{\addto@par{ref={#1}}\rput@ii} |
|---|
| 2990 | \def\rput@ii{\@ifnextchar({\rput@iv}{\rput@iii}} |
|---|
| 2991 | \def\rput@iii#1{\addto@par{rot={#1}}\@ifnextchar({\rput@iv}{\rput@iv(\z@,\z@)}} |
|---|
| 2992 | \def\rput@iv(#1){\pst@killglue\pst@makebox{\rput@v{#1}}} |
|---|
| 2993 | \def\rput@v#1{% |
|---|
| 2994 | \begingroup |
|---|
| 2995 | \use@par |
|---|
| 2996 | \if@star\pst@starbox\fi |
|---|
| 2997 | \pst@makesmall\pst@hbox |
|---|
| 2998 | \pst@rotate\psk@rot\pst@hbox |
|---|
| 2999 | \psput@{#1}\pst@hbox |
|---|
| 3000 | \endgroup |
|---|
| 3001 | \ignorespaces% |
|---|
| 3002 | } |
|---|
| 3003 | \def\multirput{% |
|---|
| 3004 | \def\pst@par{}% |
|---|
| 3005 | \pst@ifstar{\@ifnextchar[{\multirput@i}{\multirput@ii}}% |
|---|
| 3006 | } |
|---|
| 3007 | \def\multirput@i[#1]{\addto@par{ref={#1}}\multirput@ii} |
|---|
| 3008 | \def\multirput@ii{\@ifnextchar({\multirput@iv}{\multirput@iii}} |
|---|
| 3009 | \def\multirput@iii#1{\addto@par{rot={#1}}\multirput@iv} |
|---|
| 3010 | \def\multirput@iv(#1){% |
|---|
| 3011 | \@ifnextchar({\multirput@v(#1)}{\multirput@v(\z@,\z@)(#1)}% |
|---|
| 3012 | } |
|---|
| 3013 | \def\multirput@v(#1,#2)(#3,#4)#5{% |
|---|
| 3014 | \pst@makebox{\multirput@vi(#1,#2)(#3,#4){#5}}% |
|---|
| 3015 | } |
|---|
| 3016 | \def\multirput@vi(#1,#2)(#3,#4)#5{% |
|---|
| 3017 | \pst@killglue |
|---|
| 3018 | \begingroup |
|---|
| 3019 | \use@par |
|---|
| 3020 | \if@star\pst@starbox\fi |
|---|
| 3021 | \pst@makesmall\pst@hbox |
|---|
| 3022 | \pst@rotate\psk@rot\pst@hbox |
|---|
| 3023 | \pssetxlength\pst@dima{#1}% |
|---|
| 3024 | \pssetylength\pst@dimb{#2}% |
|---|
| 3025 | \pssetxlength\pst@dimc{#3}% |
|---|
| 3026 | \pssetylength\pst@dimd{#4}% |
|---|
| 3027 | \pst@cntg=#5\relax |
|---|
| 3028 | \pst@cnth=\@ne |
|---|
| 3029 | \leavevmode |
|---|
| 3030 | \loop |
|---|
| 3031 | \vbox to \z@{% |
|---|
| 3032 | \vss |
|---|
| 3033 | \hbox to \z@{\kern\pst@dima\copy\pst@hbox\hss}% |
|---|
| 3034 | \vskip\pst@dimb% |
|---|
| 3035 | }% |
|---|
| 3036 | \ifnum\pst@cntg>\pst@cnth |
|---|
| 3037 | \advance\pst@dima\pst@dimc |
|---|
| 3038 | \advance\pst@dimb\pst@dimd |
|---|
| 3039 | \advance\pst@cnth\@ne |
|---|
| 3040 | \repeat |
|---|
| 3041 | \endgroup |
|---|
| 3042 | \ignorespaces% |
|---|
| 3043 | } |
|---|
| 3044 | \newif\if@fixedradius |
|---|
| 3045 | \def\cput{\pst@object{cput}} |
|---|
| 3046 | \def\cput@i{\@fixedradiusfalse\cput@ii} |
|---|
| 3047 | \def\cput@ii{\pst@killglue\@ifnextchar({\cput@iv}{\cput@iii}} |
|---|
| 3048 | \def\cput@iii#1{% |
|---|
| 3049 | \addto@par{rot={#1}}% |
|---|
| 3050 | \@ifnextchar({\cput@iv}{\cput@iv(\z@,\z@)}% |
|---|
| 3051 | } |
|---|
| 3052 | \def\cput@iv(#1){\pst@makebox{\cput@v{#1}}} |
|---|
| 3053 | \def\cput@v#1{% |
|---|
| 3054 | \begingroup |
|---|
| 3055 | \use@par |
|---|
| 3056 | \setbox\pst@hbox=\hbox{% |
|---|
| 3057 | \psboxsepfalse |
|---|
| 3058 | \if@fixedradius\psCirclebox@ii\else\pscirclebox@ii\fi% |
|---|
| 3059 | }% |
|---|
| 3060 | \pst@@makesmall\pst@hbox |
|---|
| 3061 | \pst@rotate\psk@rot\pst@hbox |
|---|
| 3062 | \psput@{#1}\pst@hbox |
|---|
| 3063 | \endgroup |
|---|
| 3064 | \ignorespaces% |
|---|
| 3065 | } |
|---|
| 3066 | \def\Cput{\pst@object{Cput}} |
|---|
| 3067 | \def\Cput@i{\@fixedradiustrue\cput@ii} |
|---|
| 3068 | \newdimen\pslabelsep |
|---|
| 3069 | \def\psset@labelsep#1{\pssetlength\pslabelsep{#1}} |
|---|
| 3070 | \psset@labelsep{5pt} |
|---|
| 3071 | \def\psset@refangle#1{\pst@expandafter\psset@@refangle{#1}\@nil} |
|---|
| 3072 | \def\psset@@refangle#1\@nil{% |
|---|
| 3073 | \def\next##1@#1=##2"##3@##4\@nil{% |
|---|
| 3074 | \ifx\relax##2% |
|---|
| 3075 | \pst@getangle{#1}\psk@refangle |
|---|
| 3076 | \def\psk@uputref{}% |
|---|
| 3077 | \else |
|---|
| 3078 | \def\psk@refangle{##2 }% |
|---|
| 3079 | \def\psk@uputref{##3}% |
|---|
| 3080 | \fi}% |
|---|
| 3081 | \expandafter\next\pst@refangletable @#1=\relax"@\@nil} |
|---|
| 3082 | \def\pst@refangletable{% |
|---|
| 3083 | @r=0"20% |
|---|
| 3084 | @u=90"02% |
|---|
| 3085 | @l=180"10% |
|---|
| 3086 | @d=-90"01% |
|---|
| 3087 | @ur=45"22% |
|---|
| 3088 | @ul=135"12% |
|---|
| 3089 | @dr=-135"21% |
|---|
| 3090 | @dl=-45"11} |
|---|
| 3091 | \psset@refangle{0} |
|---|
| 3092 | % DG/SR modification begin - Mar. 24, 1999 - Patch 10 |
|---|
| 3093 | %\def\uput{\def\pst@par{}\@ifnextchar[{\uput@ii}{\uput@i}} |
|---|
| 3094 | \def\uput{\def\pst@par{}\pst@ifstar{\@ifnextchar[{\uput@ii}{\uput@i}}} |
|---|
| 3095 | % DG/SR modification end |
|---|
| 3096 | \def\uput@i#1{\addto@par{labelsep=#1}\uput@ii} |
|---|
| 3097 | \def\uput@ii[#1]{% |
|---|
| 3098 | \addto@par{refangle={#1}}% |
|---|
| 3099 | \@ifnextchar({\uput@iv}{\uput@iii}} |
|---|
| 3100 | \def\uput@iii#1{% |
|---|
| 3101 | \addto@par{rot={#1}}% |
|---|
| 3102 | \@ifnextchar({\uput@iv}{\uput@iv(\z@,\z@)}} |
|---|
| 3103 | \def\uput@iv(#1){\pst@killglue\pst@makebox{\uput@v{#1}}} |
|---|
| 3104 | \def\uput@v#1{% |
|---|
| 3105 | \begingroup |
|---|
| 3106 | \use@par |
|---|
| 3107 | \if@star\pst@starbox\fi |
|---|
| 3108 | \uput@vi |
|---|
| 3109 | \psput@{#1}\pst@hbox |
|---|
| 3110 | \endgroup |
|---|
| 3111 | \ignorespaces} |
|---|
| 3112 | \def\uput@vi{% |
|---|
| 3113 | \ifx\psk@uputref\@empty |
|---|
| 3114 | \uput@vii\tx@UUput{}% |
|---|
| 3115 | \else |
|---|
| 3116 | \ifx\psk@rot\@empty |
|---|
| 3117 | \expandafter\uput@viii\psk@uputref |
|---|
| 3118 | \else |
|---|
| 3119 | \uput@vii\tx@UUput{}% |
|---|
| 3120 | \fi |
|---|
| 3121 | \fi} |
|---|
| 3122 | \def\uput@vii#1#2{% |
|---|
| 3123 | \edef\pst@coor{% |
|---|
| 3124 | \pst@number\pslabelsep |
|---|
| 3125 | #2% |
|---|
| 3126 | \pst@number{\wd\pst@hbox}% |
|---|
| 3127 | \pst@number{\ht\pst@hbox}% |
|---|
| 3128 | \pst@number{\dp\pst@hbox}% |
|---|
| 3129 | \psk@refangle\space \ifx\psk@rot\@empty\else\psk@rot\space sub \fi |
|---|
| 3130 | \tx@Uput #1}% |
|---|
| 3131 | \setbox\pst@hbox=\hbox to\z@{\hss\vbox to\z@{\vss\box\pst@hbox\vss}\hss}% |
|---|
| 3132 | \setbox\pst@hbox=\psput@special\pst@hbox |
|---|
| 3133 | \ifx\psk@rot\@empty\else\pst@rotate\psk@rot\pst@hbox\fi} |
|---|
| 3134 | \def\uput@viii#1#2{% |
|---|
| 3135 | \ifnum#1>\z@\ifnum#2>\z@\pslabelsep=.707\pslabelsep\fi\fi |
|---|
| 3136 | \setbox\pst@hbox=\vbox to\z@{% |
|---|
| 3137 | \ifnum#2=1 \vskip\pslabelsep\else\vss\fi |
|---|
| 3138 | \hbox to\z@{% |
|---|
| 3139 | \ifnum#1=2 \hskip\pslabelsep\else\hss\fi |
|---|
| 3140 | \box\pst@hbox |
|---|
| 3141 | \ifnum#1=1 \hskip\pslabelsep\else\hss\fi}% |
|---|
| 3142 | \ifnum#2=2 \vskip\pslabelsep\else\vss\fi}} |
|---|
| 3143 | \def\tx@Uput{Uput } |
|---|
| 3144 | \def\tx@UUput{UUput } |
|---|
| 3145 | % |
|---|
| 3146 | \def\Rput{\def\pst@par{}\pst@ifstar{\@ifnextchar[{\Rput@ii}{\Rput@i}}} |
|---|
| 3147 | \def\Rput@i#1{\addto@par{labelsep=#1}\Rput@ii} |
|---|
| 3148 | \def\Rput@ii[#1]{\addto@par{ref={#1}}\@ifnextchar({\Rput@iv}{\Rput@iii}} |
|---|
| 3149 | \def\Rput@iii#1{\addto@par{rot={#1}}\@ifnextchar({\Rput@iv}{\Rput@iv(\z@,\z@)}} |
|---|
| 3150 | \def\Rput@iv(#1){\pst@killglue\pst@makebox{\Rput@v{#1}}} |
|---|
| 3151 | \def\Rput@v#1{% |
|---|
| 3152 | \begingroup |
|---|
| 3153 | \use@par |
|---|
| 3154 | \if@star\pst@starbox\fi |
|---|
| 3155 | \Rput@vi |
|---|
| 3156 | \pst@makesmall\pst@hbox |
|---|
| 3157 | \pst@rotate\psk@rot\pst@hbox |
|---|
| 3158 | \psput@{#1}\pst@hbox |
|---|
| 3159 | \endgroup |
|---|
| 3160 | \ignorespaces} |
|---|
| 3161 | % |
|---|
| 3162 | \def\Rput@vi{% |
|---|
| 3163 | \pst@dimg=\dp\pst@hbox |
|---|
| 3164 | \advance\pst@dimg\pslabelsep |
|---|
| 3165 | \dp\pst@hbox=\pst@dimg |
|---|
| 3166 | \pst@dimg=\ht\pst@hbox |
|---|
| 3167 | \advance\pst@dimg\pslabelsep |
|---|
| 3168 | \ht\pst@hbox=\pst@dimg |
|---|
| 3169 | \setbox\pst@hbox\hbox{\kern\pslabelsep\box\pst@hbox\kern\pslabelsep}}% |
|---|
| 3170 | % |
|---|
| 3171 | \def\oldpsput{\def\pst@par{}\pst@ifstar{\@ifnextchar[{\oldpsput@i}{\oldpsput@ii}}} |
|---|
| 3172 | \def\oldpsput@i[#1]{\addto@par{ref={#1}}\oldpsput@ii} |
|---|
| 3173 | \def\oldpsput@ii{\@ifnextchar<{\oldpsput@iii}{\oldpsput@iv}} |
|---|
| 3174 | \def\oldpsput@iii<#1>{\rput@iii{#1}} |
|---|
| 3175 | \def\OldPsput{\let\psput\oldpsput} |
|---|
| 3176 | \def\NewPsput{\let\psput\rput} |
|---|
| 3177 | % |
|---|
| 3178 | % ----------- 1.10/12 beg hv ------------------- |
|---|
| 3179 | \newpsstyle{gridstyle}{subgriddiv=0,gridcolor=lightgray,griddots=10,gridlabels=8pt} |
|---|
| 3180 | \newif\ifshowgrid |
|---|
| 3181 | \def\psset@showgrid#1{\@nameuse{showgrid#1}} |
|---|
| 3182 | \psset@showgrid{false} |
|---|
| 3183 | % |
|---|
| 3184 | \newdimen\pst@shift |
|---|
| 3185 | \def\psset@shift#1{\pssetlength\pst@dimg{#1}% |
|---|
| 3186 | \pst@shift\pst@dimg} |
|---|
| 3187 | % \global\pst@shift\pst@dimg} |
|---|
| 3188 | \psset@shift{0} |
|---|
| 3189 | % ----------- 1.10/12 end hv ------------------- |
|---|
| 3190 | % |
|---|
| 3191 | % |
|---|
| 3192 | %------------------------------- pspicture ------------------------------ |
|---|
| 3193 | % |
|---|
| 3194 | \def\pspicture{\begingroup\pst@ifstar\pst@picture} |
|---|
| 3195 | \def\pst@picture{\@ifnextchar[{\pst@@picture}{\pst@@picture[]}} |
|---|
| 3196 | \def\pst@@picture[#1]#2(#3,#4){\@ifnextchar(% |
|---|
| 3197 | {\pst@@@picture[#1](#3,#4)}% |
|---|
| 3198 | {\pst@@@picture[#1](0,0)(#3,#4)}} |
|---|
| 3199 | % |
|---|
| 3200 | \def\pst@@@picture[#1](#2,#3)(#4,#5){% |
|---|
| 3201 | \pssetxlength\pst@dima{#2}% |
|---|
| 3202 | \pssetylength\pst@dimb{#3}% |
|---|
| 3203 | \pssetxlength\pst@dimc{#4}% |
|---|
| 3204 | \pssetylength\pst@dimd{#5}% |
|---|
| 3205 | \ifdim\pst@dima>\pst@dimc% |
|---|
| 3206 | \pst@dimg=\pst@dima% |
|---|
| 3207 | \pst@dima=\pst@dimc% |
|---|
| 3208 | \pst@dimc=\pst@dimg% |
|---|
| 3209 | \fi% |
|---|
| 3210 | \ifdim\pst@dimb>\pst@dimd% |
|---|
| 3211 | \pst@dimg=\pst@dimb% |
|---|
| 3212 | \pst@dimb=\pst@dimd% |
|---|
| 3213 | \pst@dimd=\pst@dimg% |
|---|
| 3214 | \fi% |
|---|
| 3215 | \setbox\pst@hbox=\hbox\bgroup% |
|---|
| 3216 | \begingroup\KillGlue% |
|---|
| 3217 | \@ifundefined{@latexerr}{}{\let\unitlength\psunit}% |
|---|
| 3218 | \edef\pic@coor{(#2,#3)(#2,#3)(#4,#5)}% |
|---|
| 3219 | % ----------- 1.10/12 beg hv ------------------- |
|---|
| 3220 | \psset{showgrid=false}% % for nested pspicture environemnets |
|---|
| 3221 | \def\pst@tempA{#1}% |
|---|
| 3222 | \ifx\pst@tempA\@empty\else\psset{#1}\fi% sets the shift and grid option |
|---|
| 3223 | \ifshowgrid\psgrid[style=gridstyle]\fi% |
|---|
| 3224 | % ----------- 1.10/12 end hv ------------------- |
|---|
| 3225 | % \ignorespaces% |
|---|
| 3226 | } |
|---|
| 3227 | \def\pic@coor{(0,0)(0,0)(10,10)} |
|---|
| 3228 | \newdimen\pst@shift |
|---|
| 3229 | \def\endpspicture{% |
|---|
| 3230 | \pst@killglue |
|---|
| 3231 | \global\pst@shift=\pst@shift% in fact of the following endgroup |
|---|
| 3232 | \endgroup |
|---|
| 3233 | \egroup |
|---|
| 3234 | \ifdim\wd\pst@hbox=\z@\else |
|---|
| 3235 | %\@pstrickserr{Extraneous space in the pspicture environment}% |
|---|
| 3236 | %{Type \space <return> \space to proceed.}% |
|---|
| 3237 | \fi |
|---|
| 3238 | \ht\pst@hbox=\pst@dimd |
|---|
| 3239 | \dp\pst@hbox=-\pst@dimb |
|---|
| 3240 | \setbox\pst@hbox=\hbox{% |
|---|
| 3241 | \kern-\pst@dima |
|---|
| 3242 | % ----------- 1.10/12 beg hv ------------------- |
|---|
| 3243 | % \advance\pst@dimd-\pst@dimb% |
|---|
| 3244 | % \pst@dimd=\pst@shift\pst@dimd% |
|---|
| 3245 | % \advance\pst@dimd\pst@dimb |
|---|
| 3246 | \pst@dimd-\pst@shift |
|---|
| 3247 | % ----------- 1.10/12 end hv ------------------- |
|---|
| 3248 | \advance\pst@dimd\pst@dimb |
|---|
| 3249 | \lower\pst@dimd% |
|---|
| 3250 | \box\pst@hbox% |
|---|
| 3251 | \kern\pst@dimc}% |
|---|
| 3252 | \if@star\setbox\pst@hbox=\hbox{\clipbox@@\z@}\fi |
|---|
| 3253 | \leavevmode\box\pst@hbox |
|---|
| 3254 | \endgroup% |
|---|
| 3255 | \global\pst@shift\z@% restore value |
|---|
| 3256 | } |
|---|
| 3257 | \@namedef{pspicture*}{\pspicture*} |
|---|
| 3258 | \@namedef{endpspicture*}{\endpspicture} |
|---|
| 3259 | % |
|---|
| 3260 | %------------------------------- Overlays ------------------------------ |
|---|
| 3261 | % |
|---|
| 3262 | \def\tx@BeginOL{BeginOL } |
|---|
| 3263 | \def\tx@InitOL{InitOL } |
|---|
| 3264 | % |
|---|
| 3265 | \def\pst@initoverlay#1{\pst@Verb{\tx@InitOL /TheOL (#1) def}} |
|---|
| 3266 | \def\AltOverlayMode{% |
|---|
| 3267 | \def\pst@initoverlay##1{% |
|---|
| 3268 | \pst@Verb{% |
|---|
| 3269 | \tx@InitOL |
|---|
| 3270 | /Visible { initclip } def |
|---|
| 3271 | /Invisible { |
|---|
| 3272 | CP newpath OLUnit itransform moveto clip newpath moveto |
|---|
| 3273 | } def |
|---|
| 3274 | /TheOL (##1) def}}} |
|---|
| 3275 | % |
|---|
| 3276 | \def\pst@overlay#1{% |
|---|
| 3277 | \edef\curr@overlay{#1}% |
|---|
| 3278 | \pst@Verb{(#1) BOL}% |
|---|
| 3279 | \aftergroup\pst@endoverlay} |
|---|
| 3280 | % |
|---|
| 3281 | \def\pst@endoverlay{\pst@Verb{(\curr@overlay) BOL}} |
|---|
| 3282 | \def\curr@overlay{all} |
|---|
| 3283 | % |
|---|
| 3284 | \newbox\theoverlaybox |
|---|
| 3285 | % |
|---|
| 3286 | \def\overlaybox{% |
|---|
| 3287 | \global\setbox\theoverlaybox=\hbox\bgroup |
|---|
| 3288 | \begingroup |
|---|
| 3289 | \let\psoverlay\pst@overlay |
|---|
| 3290 | \def\overlaybox{% |
|---|
| 3291 | \@pstrickserr{Overlays cannot be nested}\@eha}% |
|---|
| 3292 | \def\putoverlaybox{% |
|---|
| 3293 | \@pstrickserr{You must end the overlay box |
|---|
| 3294 | before using \string\putoverlaybox}}% |
|---|
| 3295 | \psoverlay{main}% |
|---|
| 3296 | \ignorespaces} |
|---|
| 3297 | % |
|---|
| 3298 | \def\endoverlaybox{\endgroup\egroup} |
|---|
| 3299 | \def\putoverlaybox#1{% |
|---|
| 3300 | \hbox{\pst@initoverlay{#1}\copy\theoverlaybox}} |
|---|
| 3301 | % |
|---|
| 3302 | \def\psoverlay{\@pstrickserr{\string\psoverlay\space |
|---|
| 3303 | can only be used after \string\overlaybox}} |
|---|
| 3304 | % |
|---|
| 3305 | \ifx\pstcustomize\relax \input pstricks.con \fi |
|---|
| 3306 | % |
|---|
| 3307 | \catcode`\@=\PstAtCode\relax |
|---|
| 3308 | % |
|---|
| 3309 | \endinput |
|---|
| 3310 | %% |
|---|
| 3311 | %% END: pstricks.tex |
|---|