\typeout{%pspictpg v0.5 Jan. 27, 1999}%%----------------------------------------------------------------------%%%% Macros for using PostScript under the picture environment of latex.%% Designed to work with dvips.%%%% Redefinition of the macros \line, \vector, \circle and \circle* of latex.%% Contrary to the original macros, there are no restrictions on the value%% of the arguments.%%%% Definition of new macros :%% \setpsgray, \setpsdash%% \drawline, \drawvector, \drawcircle, \drawdisk%% \cbezier, \cbeziervector, \qbezier, \qbeziervector%%%% Definition of internal macros for gastex:%% \r@cbezier, \r@qbezier, \r@loop.%%%% All macros use %% - the line width defined by the latex commands \thinline,%%   \thickline or \linethickness%% - the gray scale defined with \setpsgray (0=black, 1=white)%% - colors with the color package%% - the dash pattern defined with \setpsdash%%%% WARNING: If this package is to be used with the color package,%% then the color package has to be loaded first, e.g.%% \usepackage[usenames]{color}%% \usepackage{pspictpg,gastex}%%%% Paul Gastin%% LIAFA%% Universite Paris 7%% 2, place Jussieu%% F-75251 Paris Cedex 05%% email : Paul.Gastin@liafa.jussieu.fr%% www : http://www.liafa.jussieu.fr/~gastin%%%%----------------------------------------------------------------------\special{header=pspictpg.pro}%% Set the dash pattern used for drawing postscript paths.%% #2 is a sequence of distances (in pt) along the path which alternatively %% indicates lengths of drawing and of non-drawing.%% The sequence of distances  is used circularly.%% Optionally, the parameter #1 allow to start the pattern at some distance %% from its beginning%% ex : \setpsdash() % continuous path%%      \setpsdash(3) % dashs of length 3 and empty spaces of length 3%%      \setpsdash(1 3) % looks like a sequence of dots%%      \setpsdash(12 3 3 3) % alternation of long and short dashs%%      \setpsdash[12](12) % we start with the empty space and not the dash%%      \setpsdash[6](12) % we start in the middle of the first dash\def\setpsdash{\@ifnextchar[{\i@setpsdash}{\i@setpsdash[0]}}\def\i@setpsdash[#1](#2){\def\ps@dash{[#2] #1\space}}\setpsdash() % continuous path% The macros \color and \textcolor do not work properly under the picture % environment of latex. We need to define special versions of these macros % until the problem is fixed.\@ifundefined{color}{}{  \def\pcolor{\@killglue\color} % Does not work completely  \def\pictcolor#1#2{\@killglue\textcolor{#1}{#2\@killglue}}}% If we do not use the color package, we can still use gray scales.\def\setpsgray#1{\def\ps@gray{#1\space}}\setpsgray{0}{\catcode`t=12\catcode`p=12\gdef\no@PT#1pt{#1}}\def\strip@PT#1{\expandafter\no@PT\the#1\space}\newdimen\dim@x \newdimen\dim@y\def\init@ps{!BP  \ps@dash setdash  \@ifundefined{color}{\ps@gray setgray}{\current@color\space}  \strip@PT\@wholewidth setlinewidth }% Redefinition of latex \line(a,b){L}.% Can be used with any values for a and b.\def\line(#1,#2)#3{{%  \@xarg #1\relax \@yarg #2\relax  \dim@x=#3\unitlength  \special{" \init@ps    \the\@xarg\space \the\@yarg\space \strip@PT\dim@x !pslatexline}}}% Redefinition of latex \vector(a,b){L}.% Can be used with any values for a and b.\def\vector(#1,#2)#3{{%  \@xarg #1\relax \@yarg #2\relax  \dim@x=#3\unitlength  \special{" \init@ps     \strip@PT\@wholewidth !setheadlength     \the\@xarg\space \the\@yarg\space \strip@PT\dim@x !pslatexvector}}}% redefinition of \circle of LaTeX % can be used with any diameter\def\circle{\@ifnextchar*{\@idisk}{\@icircle}}\def\@icircle#1{{%  \dim@x=#1\unitlength  \special{" \init@ps     \strip@PT\dim@x !pscircle}}}\def\@idisk*#1{{%  \dim@x=#1\unitlength  \special{" \init@ps     \strip@PT\dim@x !psdisk}}}%% \drawline:%%     Line from (#1,#2) to (#3,#4). %%     Use current linewidth, psgray and psdash. %% ex: \drawline(10,70)(70,20)%%\def\drawline(#1,#2)(#3,#4){{%  \dim@x=#3\unitlength \advance\dim@x by -#1\unitlength  \dim@y=#4\unitlength \advance\dim@y by -#2\unitlength  \put(#1,#2){\special{" \init@ps     \strip@PT\dim@x \strip@PT\dim@y !psline}}}}%% \drawvector:%%     Vector from (#1,#2) to (#3,#4). %%     Use current linewidth, psgray and psdash. %% ex: \drawvector(10,70)(70,20)%%\def\drawvector(#1,#2)(#3,#4){{%  \dim@x=#3\unitlength \advance\dim@x by -#1\unitlength  \dim@y=#4\unitlength \advance\dim@y by -#2\unitlength  \put(#1,#2){\special{" \init@ps     \strip@PT\@wholewidth !setheadlength     \strip@PT\dim@x \strip@PT\dim@y !psvect}}}}% circle centered in (#1,#2) with diameter #3\def\drawcircle(#1,#2)(#3){{%  \dim@x=#3\unitlength  \put(#1,#2){\special{" \init@ps     \strip@PT\dim@x !pscircle}}}}% disk centered in (#1,#2) with diameter #3 filled accordingly to setpsgray\def\drawdisk(#1,#2)(#3){{%  \dim@x=#3\unitlength  \put(#1,#2){\special{" \init@ps     \strip@PT\dim@x !psdisk}}}}%% \cbezier:%%     Cubic Bˇzier curve.\def\cbezier(#1,#2)(#3,#4)(#5,#6)(#7,#8){{%  \dim@x=#1\unitlength \edef\@csxa{\strip@PT\dim@x}  \dim@x=#2\unitlength \edef\@csya{\strip@PT\dim@x}  \dim@x=#3\unitlength \edef\@csxb{\strip@PT\dim@x}  \dim@x=#4\unitlength \edef\@csyb{\strip@PT\dim@x}  \dim@x=#5\unitlength \edef\@csxc{\strip@PT\dim@x}  \dim@x=#6\unitlength \edef\@csyc{\strip@PT\dim@x}  \dim@x=#7\unitlength \edef\@csxd{\strip@PT\dim@x}  \dim@x=#8\unitlength \edef\@csyd{\strip@PT\dim@x}  \put(0,0){\special{" \init@ps     false % no arrowhead    \@csxa \@csya \@csxb \@csyb \@csxc \@csyc \@csxd \@csyd !pscbezier  }}}}%% \cbeziervector:%%     Cubic Bˇzier vector.\def\cbeziervector(#1,#2)(#3,#4)(#5,#6)(#7,#8){{%  \dim@x=#1\unitlength \edef\@csxa{\strip@PT\dim@x}  \dim@x=#2\unitlength \edef\@csya{\strip@PT\dim@x}  \dim@x=#3\unitlength \edef\@csxb{\strip@PT\dim@x}  \dim@x=#4\unitlength \edef\@csyb{\strip@PT\dim@x}  \dim@x=#5\unitlength \edef\@csxc{\strip@PT\dim@x}  \dim@x=#6\unitlength \edef\@csyc{\strip@PT\dim@x}  \dim@x=#7\unitlength \edef\@csxd{\strip@PT\dim@x}  \dim@x=#8\unitlength \edef\@csyd{\strip@PT\dim@x}  \put(0,0){\special{" \init@ps     \strip@PT\@wholewidth !setheadlength     true % arrowhead requested    \@csxa \@csya \@csxb \@csyb \@csxc \@csyc \@csxd \@csyd !pscbezier  }}}}%% \qbezier:%%     Quadratic Bˇzier curve.\def\qbezier(#1,#2)(#3,#4)(#5,#6){{%  \dim@x=#1\unitlength \edef\@csxa{\strip@PT\dim@x}  \dim@x=#2\unitlength \edef\@csya{\strip@PT\dim@x}  \dim@x=#3\unitlength \edef\@csxb{\strip@PT\dim@x}  \dim@x=#4\unitlength \edef\@csyb{\strip@PT\dim@x}  \dim@x=#5\unitlength \edef\@csxc{\strip@PT\dim@x}  \dim@x=#6\unitlength \edef\@csyc{\strip@PT\dim@x}  \put(0,0){\special{" \init@ps     false % no arrowhead    \@csxa \@csya \@csxb \@csyb \@csxc \@csyc !psqbezier  }}}}%% \qbeziervector:%%     Quadratic Bˇzier vector.\def\qbeziervector(#1,#2)(#3,#4)(#5,#6){{%  \dim@x=#1\unitlength \edef\@csxa{\strip@PT\dim@x}  \dim@x=#2\unitlength \edef\@csya{\strip@PT\dim@x}  \dim@x=#3\unitlength \edef\@csxb{\strip@PT\dim@x}  \dim@x=#4\unitlength \edef\@csyb{\strip@PT\dim@x}  \dim@x=#5\unitlength \edef\@csxc{\strip@PT\dim@x}  \dim@x=#6\unitlength \edef\@csyc{\strip@PT\dim@x}  \put(0,0){\special{" \init@ps     \strip@PT\@wholewidth !setheadlength     true % arrowhead requested    \@csxa \@csya \@csxb \@csyb \@csxc \@csyc !psqbezier  }}}}%%----------------------------------------------------------------------%%%% The following macros are specific for gastex.%% Restricted cubic Bˇzier curve.%%%% The actual parameter list for \r@cbezier must be of the form%% (#1,#2,#3)(#4,#5)(#6,#7)(#8,#9,#10).%%%% (#1,#2), (#4,#5), (#6,#7), (#8,#9) are the control points of the%% Bˇzier curve. The curve is only drawn outside the disks of%% diameter #3 and #10 centered on (#1,#2) and (#8,#9).%%%% If \@arrowtrue, an arrowhead is added to the curve.%%%% Since TeX only allows 9 parameters, we have to split the command in 2.\def\r@cbezier(#1,#2,#3)(#4,#5)(#6,#7){%  \dim@x=#1\unitlength \edef\@csxa{\strip@PT\dim@x}  \dim@x=#2\unitlength \edef\@csya{\strip@PT\dim@x}  \dim@x=#3\unitlength \edef\@csdiama{\strip@PT\dim@x}  \dim@x=#4\unitlength \edef\@csxb{\strip@PT\dim@x}  \dim@x=#5\unitlength \edef\@csyb{\strip@PT\dim@x}  \dim@x=#6\unitlength \edef\@csxc{\strip@PT\dim@x}  \dim@x=#7\unitlength \edef\@csyc{\strip@PT\dim@x}  \r@cbeziertwo}\def\r@cbeziertwo(#1,#2,#3){%  \dim@x=#1\unitlength \edef\@csxd{\strip@PT\dim@x}  \dim@x=#2\unitlength \edef\@csyd{\strip@PT\dim@x}  \dim@x=#3\unitlength \edef\@csdiamd{\strip@PT\dim@x}  \put(0,0){\special{" \init@ps     \if@arrow      \strip@PT\@wholewidth !setheadlength       true    \else      false    \fi    \@csdiama 2 div \@csdiamd 2 div    \@csxa \@csya \@csxb \@csyb \@csxc \@csyc  \@csxd \@csyd !ps_r_cbezier  }}}%% Restricted quadratic Bˇzier curve.%%%% (#1,#2), (#4,#5), (#6,#7) are the control points of the Bˇzier curve.%% The curve is only drawn outside the disks of diameter #3 and #8%% centered on (#1,#2) and (#6,#7).%%%% If \@arrowtrue, an arrowhead is added to the curve.\def\r@qbezier(#1,#2,#3)(#4,#5)(#6,#7,#8){{%  \dim@x=#1\unitlength \edef\@csxa{\strip@PT\dim@x}  \dim@x=#2\unitlength \edef\@csya{\strip@PT\dim@x}  \dim@x=#3\unitlength \edef\@csdiama{\strip@PT\dim@x}  \dim@x=#4\unitlength \edef\@csxb{\strip@PT\dim@x}  \dim@x=#5\unitlength \edef\@csyb{\strip@PT\dim@x}  \dim@x=#6\unitlength \edef\@csxc{\strip@PT\dim@x}  \dim@x=#7\unitlength \edef\@csyc{\strip@PT\dim@x}  \dim@x=#8\unitlength \edef\@csdiamc{\strip@PT\dim@x}  \put(0,0){\special{" \init@ps     \if@arrow      \strip@PT\@wholewidth !setheadlength       true    \else      false    \fi    \@csdiama 2 div \@csdiamc 2 div    \@csxa \@csya \@csxb \@csyb \@csxc \@csyc !ps_r_qbezier  }}}}%% Restricted cubic Bezier loop.%%%% Draw a loop outside the disk of diameter #5 centered on (#3,#4).%% #2 is the diameter of the loop.%% #1 is the angle in degree defining direction of the loop.%%%% If \@arrowtrue, an arrowhead is added to the curve.\def\r@loop(#1,#2)(#3,#4,#5){{%  \dim@x=#3\d@my@unit \edef\@csxa{\strip@PT\dim@x}  \dim@x=#4\d@my@unit \edef\@csya{\strip@PT\dim@x}  \dim@x=#5\d@my@unit \edef\@csdiama{\strip@PT\dim@x}  \dim@x=#2\d@my@unit \edef\@csdiaml{\strip@PT\dim@x}  \put(0,0){\special{" \init@ps     \if@arrow      \strip@PT\@wholewidth !setheadlength       true    \else      false    \fi    #1 \@csdiaml 2 div \@csdiama 2 div \@csxa \@csya !ps_r_loop  }}}}\endinput