diff options
author | Karl Berry <karl@freefriends.org> | 2007-01-10 22:50:08 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2007-01-10 22:50:08 +0000 |
commit | 35d6860f8d0a3dc99e81eb2646f8e55c45aab0f2 (patch) | |
tree | 869200b5777b231ca0668f7e5ec7909f817bad90 /Master/texmf-dist/dvips/gastex | |
parent | b4d039f81c7fdbc1a98b2f44b2444543ead926db (diff) |
new latex package gastex (28nov06)
git-svn-id: svn://tug.org/texlive/trunk@3316 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/dvips/gastex')
-rwxr-xr-x | Master/texmf-dist/dvips/gastex/gastex.pro | 162 |
1 files changed, 162 insertions, 0 deletions
diff --git a/Master/texmf-dist/dvips/gastex/gastex.pro b/Master/texmf-dist/dvips/gastex/gastex.pro new file mode 100755 index 00000000000..e2ae122440e --- /dev/null +++ b/Master/texmf-dist/dvips/gastex/gastex.pro @@ -0,0 +1,162 @@ +%! +TeXDict begin +/!BP{ 72 72.27 div dup scale } def /!smartarct { /!r exch def /!y2 +exch def /!x2 exch def /!y1 exch def /!x1 exch def currentpoint /!y0 +exch def /!x0 exch def /!d0 !y0 !y1 sub dup mul !x0 !x1 sub dup mul +add sqrt def /!d2 !y2 !y1 sub dup mul !x2 !x1 sub dup mul add sqrt +def !d0 !d2 add 0 gt { !d0 !d2 le { /!xp !x1 !x2 !x1 sub !d0 mul !d2 +div add def /!yp !y1 !y2 !y1 sub !d0 mul !d2 div add def /!d !yp !y0 +sub dup mul !xp !x0 sub dup mul add sqrt 2 div def } { /!xp !x1 !x0 +!x1 sub !d2 mul !d0 div add def /!yp !y1 !y0 !y1 sub !d2 mul !d0 div +add def /!d !yp !y2 sub dup mul !xp !x2 sub dup mul add sqrt 2 div +def } ifelse } { /!d 0 def } ifelse !d !r lt { /!r !d def } if !x1 +!y1 !x2 !y2 !r arct } def /!psarrow { gsave 2 copy translate 3 -1 roll +sub neg /!y exch def sub /!x exch def !x 0 eq !y 0 eq and {/!x 1 def} +if !y !x atan rotate /L2 exch def /L1 exch def /ang exch def /dist +exch def /nb exch def 1 1 nb { pop L2 0 eq { newpath L1 ang cos mul +L1 ang sin mul 2 copy moveto 0 0 lineto neg lineto stroke } { newpath +0 0 moveto L1 ang cos mul L1 ang sin mul 2 copy lineto L2 0 lineto +neg lineto closepath fill } ifelse dist 0 translate } for grestore +} def /!psvect { /y exch def /x exch def newpath 0 0 moveto x y lineto +stroke 0 0 x y !psarrow x y 0 0 !psarrow } def /!pslines { /ra exch +def /n exch def /yn exch def /xn exch def /yn_1 exch def /xn_1 exch +def /x xn def /y yn def /xx xn_1 def /yy yn_1 def newpath xn yn moveto +3 1 n { pop /x xx def /y yy def /yy exch def /xx exch def x y xx yy +ra !smartarct } for xx yy lineto stroke xn_1 yn_1 xn yn !psarrow x +y xx yy !psarrow } def /!psrectpath { /y1 exch def /x1 exch def /y0 +exch def /x0 exch def newpath x0 y0 moveto x1 y0 lineto x1 y1 lineto +x0 y1 lineto closepath } def /!pscirclepath { newpath 0 360 arc closepath +} def /!psovalpath { /rmax exch dup 0.1 le { pop 0.1 } if def /H exch +2 div dup 0.1 le { pop 0.1 } if def /W exch 2 div dup 0.1 le { pop +0.1 } if def /y exch def /x exch def H W le { /R H def }{ /R W def +} ifelse rmax R le { /R rmax def } if newpath x y H add moveto x W +add y H add x W add y R arct x W add y H sub x y H sub R arct x W sub +y H sub x W sub y R arct x W sub y H add x y H add R arct closepath +} def /!pspolygonpath { /ra exch def /n exch def dup n 2 mul 1 add +1 roll 1 index n 2 mul 2 add 1 roll n 2 mul 1 sub index n 2 mul 1 sub +index /yy exch def /xx exch def /y exch def /x exch def newpath xx +x add 2 div yy y add 2 div moveto 1 1 n { pop /yy exch def /xx exch +def x y x xx add 2 div y yy add 2 div ra !smartarct /x xx def /y yy +def } for closepath } def /!psrpolygonpath { /rd exch def /ra exch +def /a exch def /r exch def /n exch def /y exch def /x exch def /b +360 n div def /c b def x y translate a rotate rd 0 ne { r rd b 2 div +cos div sub r div dup scale } if /x1 r b cos mul def /y1 r b sin mul +def newpath r x1 add 2 div y1 2 div moveto 1 1 n { pop /c c b add def +/x2 r c cos mul def /y2 r c sin mul def x1 y1 x1 x2 add 2 div y1 y2 +add 2 div ra !smartarct /x1 x2 def /y1 y2 def } for closepath rd 0 +ne { r r rd b 2 div cos div sub div dup scale } if a neg rotate x neg +y neg translate } def /!psccurvepath { /n exch def n 2 mul 1 sub index +n 2 mul 1 sub index n 2 mul 1 sub index n 2 mul 1 sub index n 2 mul +4 add array astore /coef exch def /alpha 3.5 def /px0 coef n 2 mul +2 sub get def /py0 coef n 2 mul 1 sub get def /px1 coef 0 get def /py1 +coef 1 get def /px2 coef 2 get def /py2 coef 3 get def /d0 px1 px0 +sub dup mul py1 py0 sub dup mul add sqrt def /d2 px1 px2 sub dup mul +py1 py2 sub dup mul add sqrt def /ppx d2 d0 div px0 px1 sub mul px1 +add def /ppy d2 d0 div py0 py1 sub mul py1 add def /d1 ppx px2 sub +dup mul ppy py2 sub dup mul add sqrt def /qx d2 d1 div px2 ppx sub +mul alpha div px1 add def /qy d2 d1 div py2 ppy sub mul alpha div py1 +add def newpath px1 py1 moveto 4 2 n 2 mul 2 add { /i exch def /px0 +px1 def /px1 px2 def /px2 coef i get def /py0 py1 def /py1 py2 def +/py2 coef i 1 add get def /d0 d2 def /d2 px1 px2 sub dup mul py1 py2 +sub dup mul add sqrt def /ppx d0 d2 div px2 px1 sub mul px1 add def +/ppy d0 d2 div py2 py1 sub mul py1 add def /d1 ppx px0 sub dup mul +ppy py0 sub dup mul add sqrt def /rx d0 d1 div px0 ppx sub mul alpha +div px1 add def /ry d0 d1 div py0 ppy sub mul alpha div py1 add def +qx qy rx ry px1 py1 curveto /ppx d2 d0 div px0 px1 sub mul px1 add +def /ppy d2 d0 div py0 py1 sub mul py1 add def /d1 ppx px2 sub dup +mul ppy py2 sub dup mul add sqrt def /qx d2 d1 div px2 ppx sub mul +alpha div px1 add def /qy d2 d1 div py2 ppy sub mul alpha div py1 add +def } for closepath } def /!pscurve { /n exch def n 2 mul array astore +/coef exch def /alpha 3.5 def /px1 coef 0 get def /py1 coef 1 get def +/px2 coef 2 get def /py2 coef 3 get def /d2 px1 px2 sub dup mul py1 +py2 sub dup mul add sqrt def /qx px1 def /qy py1 def newpath px1 py1 +moveto 4 2 n 2 mul 2 sub { /i exch def /px0 px1 def /px1 px2 def /px2 +coef i get def /py0 py1 def /py1 py2 def /py2 coef i 1 add get def +/d0 d2 def /d2 px1 px2 sub dup mul py1 py2 sub dup mul add sqrt def +/ppx d0 d2 div px2 px1 sub mul px1 add def /ppy d0 d2 div py2 py1 sub +mul py1 add def /d1 ppx px0 sub dup mul ppy py0 sub dup mul add sqrt +def /rx d0 d1 div px0 ppx sub mul alpha div px1 add def /ry d0 d1 div +py0 ppy sub mul alpha div py1 add def qx qy rx ry px1 py1 curveto /ppx +d2 d0 div px0 px1 sub mul px1 add def /ppy d2 d0 div py0 py1 sub mul +py1 add def /d1 ppx px2 sub dup mul ppy py2 sub dup mul add sqrt def +/qx d2 d1 div px2 ppx sub mul alpha div px1 add def /qy d2 d1 div py2 +ppy sub mul alpha div py1 add def } for /px1 coef n 2 mul 2 sub get +def /py1 coef n 2 mul 1 sub get def /rx px1 def /ry py1 def qx qy rx +ry px1 py1 curveto stroke /px0 coef n 2 mul 6 sub get def /py0 coef +n 2 mul 5 sub get def /px1 coef n 2 mul 4 sub get def /py1 coef n 2 +mul 3 sub get def /px2 coef n 2 mul 2 sub get def /py2 coef n 2 mul +1 sub get def /d0 px1 px0 sub dup mul py1 py0 sub dup mul add sqrt +def /d2 px1 px2 sub dup mul py1 py2 sub dup mul add sqrt def /ppx d2 +d0 div px0 px1 sub mul px1 add def /ppy d2 d0 div py0 py1 sub mul py1 +add def /d1 ppx px2 sub dup mul ppy py2 sub dup mul add sqrt def /qx +d2 d1 div px2 ppx sub mul alpha div px1 add def /qy d2 d1 div py2 ppy +sub mul alpha div py1 add def px1 py1 qx qy px2 py2 px2 py2 !ps_cbezier_arrow +/px0 coef 0 get def /py0 coef 1 get def /px1 coef 2 get def /py1 coef +3 get def /px2 coef 4 get def /py2 coef 5 get def /d0 px1 px0 sub dup +mul py1 py0 sub dup mul add sqrt def /d2 px1 px2 sub dup mul py1 py2 +sub dup mul add sqrt def /ppx d0 d2 div px2 px1 sub mul px1 add def +/ppy d0 d2 div py2 py1 sub mul py1 add def /d1 ppx px0 sub dup mul +ppy py0 sub dup mul add sqrt def /rx d0 d1 div px0 ppx sub mul alpha +div px1 add def /ry d0 d1 div py0 ppy sub mul alpha div py1 add def +px1 py1 rx ry px0 py0 px0 py0 !ps_cbezier_arrow } def /!ps_cbezier +{ /y3 exch def /x3 exch def /y2 exch def /x2 exch def /y1 exch def +/x1 exch def /y0 exch def /x0 exch def newpath x0 y0 moveto x1 y1 x2 +y2 x3 y3 curveto stroke x0 y0 x1 y1 x2 y2 x3 y3 !ps_cbezier_arrow x3 +y3 x2 y2 x1 y1 x0 y0 !ps_cbezier_arrow } def /!ps_cbezier_arrow { /y3 +exch def /x3 exch def /y2 exch def /x2 exch def /y1 exch def /x1 exch +def /y0 exch def /x0 exch def /xa x1 x2 sub 3 mul x3 x0 sub add def +/xb x0 x1 sub x1 sub x2 add 3 mul def /xc x1 x0 sub 3 mul def /ya y1 +y2 sub 3 mul y3 y0 sub add def /yb y0 y1 sub y1 sub y2 add 3 mul def +/yc y1 y0 sub 3 mul def /L2 exch def /L1 exch def /ang exch def /dist +exch def /nb exch def L2 0 le { /L L1 ang cos mul 2 div def } { /L +L2 def } ifelse /t4 1 def 1 1 nb { pop /x4 t4 !calculx def /y4 t4 !calculy +def L 0 le { /dx t4 !calculdx def /dy t4 !calculdy def dx dup mul dy +dup mul add sqrt dup 0 eq { /dx 1 def /dy 0 def pop 1 } if L1 exch +div dup dx neg mul /xx exch def dy neg mul /yy exch def } { /t1 0 def +/t2 t4 def 0 1 !max { pop /t t1 t2 add 2 div def t !calculx x4 sub +dup mul t !calculy y4 sub dup mul add sqrt L ge { /t1 t def } { /t2 +t def } ifelse } for /x6 t !calculx def /y6 t !calculy def L1 L div +dup x6 x4 sub mul /xx exch def y6 y4 sub mul /yy exch def } ifelse +/x5 x4 xx ang cos mul add yy ang sin mul sub def /y5 y4 xx ang sin +mul add yy ang cos mul add def /x7 x4 xx ang cos mul add yy ang sin +mul add def /y7 y4 xx ang sin mul sub yy ang cos mul add def L2 0 le +{ newpath x5 y5 moveto x4 y4 lineto x7 y7 lineto stroke } { newpath +x4 y4 moveto x5 y5 lineto x6 y6 lineto x7 y7 lineto closepath fill +} ifelse /t1 0 def /t2 t4 def 0 1 !max { pop /t t1 t2 add 2 div def +t !calculx x4 sub dup mul t !calculy y4 sub dup mul add sqrt dist ge +{ /t1 t def } { /t2 t def } ifelse } for /t4 t def } for } def /!ps_qbezier +{ /y3 exch def /x3 exch def /yy exch def /xx exch def /y0 exch def +/x0 exch def /x1 xx 2 mul x0 add 3 div def /y1 yy 2 mul y0 add 3 div +def /x2 xx 2 mul x3 add 3 div def /y2 yy 2 mul y3 add 3 div def x0 +y0 x1 y1 x2 y2 x3 y3 !ps_cbezier } def /!max 10 def /!ps_r_cbezier +{ /y3 exch def /x3 exch def /y2 exch def /x2 exch def /y1 exch def +/x1 exch def /y0 exch def /x0 exch def /xa x1 x2 sub 3 mul x3 x0 sub +add def /xb x0 x1 sub x1 sub x2 add 3 mul def /xc x1 x0 sub 3 mul def +/ya y1 y2 sub 3 mul y3 y0 sub add def /yb y0 y1 sub y1 sub y2 add 3 +mul def /yc y1 y0 sub 3 mul def /t1 0 def /t2 1 def 0 1 !max { pop +/t t1 t2 add 2 div def t !calculx t !calculy path!a inufill { /t1 t +def } { /t2 t def } ifelse } for /ta t def /t1 0 def /t2 1 def 0 1 +!max { pop /t t1 t2 add 2 div def t !calculx t !calculy path!b inufill +{ /t2 t def } { /t1 t def } ifelse } for /tb t def ta !calculx ta !calculy +ta !calculdx 3 div tb ta sub mul ta !calculx add ta !calculdy 3 div +tb ta sub mul ta !calculy add tb !calculdx 3 div ta tb sub mul tb !calculx +add tb !calculdy 3 div ta tb sub mul tb !calculy add tb !calculx tb +!calculy !ps_cbezier } def /!calculx { dup dup xa mul xb add mul xc +add mul x0 add } def /!calculy { dup dup ya mul yb add mul yc add mul +y0 add } def /!calculdx { dup 3 xa mul mul 2 xb mul add mul xc add +} def /!calculdy { dup 3 ya mul mul 2 yb mul add mul yc add } def /!node_mark +{ /ma exch def /ml exch def /y exch def /x exch def /x1 x def /y1 y +def /x2 x 500 ma cos mul add def /y2 y 500 ma sin mul add def 0 1 !max +{ pop /x x1 x2 add 2 div def /y y1 y2 add 2 div def x y path!a inufill +{ /x1 x def /y1 y def } { /x2 x def /y2 y def } ifelse } for /x1 x +def /y1 y def /x2 x ml ma cos mul add def /y2 y ml ma sin mul add def +newpath x1 y1 moveto x2 y2 lineto stroke x2 y2 x1 y1 !psarrow x1 y1 +x2 y2 !psarrow } def /!sign {dup 0 lt {pop -1} {0 eq {0} {1} ifelse} +ifelse} def /!pslatexline { /L exch def /b exch def /a exch def a 0 +eq {0 L b !sign mul} {L a !sign mul dup b mul a div} ifelse newpath +0 0 moveto lineto stroke } def /!pslatexvector { /L exch def /b exch +def /a exch def a 0 eq {0 L b !sign mul} {L a !sign mul dup b mul a +div} ifelse !psvect } def /!pscircle { 2 div newpath 0 0 3 2 roll 0 +360 arc stroke } def /!psdisk { 2 div newpath 0 0 3 2 roll 0 360 arc +fill } def +end
\ No newline at end of file |