===================================
   Gastex manual
===================================

This is simply the key command definitions, extracted from gastex.sty.   
The original author is

   %% Paul Gastin
   %% LIAFA
   %% Universite Paris 7
   %% 2, place Jussieu
   %% F-75251 Paris Cedex 05
   %% email : Paul.Gastin at liafa.jussieu.fr
   %% www : http://www.liafa.jussieu.fr/~gastin


===================================
   Settings
===================================

 Set values for gastex parameters.
 
   \gasset{parameter=value,parameter=value,...}
   optional spaces are only allowed after commas
 
 Nw=number
   widht in \unitlength of oval nodes
 Nh=number
   height in \unitlength of oval nodes
 Nmr=number
   maximal radius in \unitlength of oval nodes
   The actual radius will be min(Nw/2,Nh/2,Nmr)
   Nmr=0 yields a rectangle node
   
 Nadjust=any combination of the letters w,h,n
   w : the node width is adjusted to the node label width + Nadjustdist
   h : the node height is adjusted to the node label height + Nadjustdist
   n : no adjustment
 Nadjustdist=number
   distance in \unitlength between the label box and the node frame 
   when using Nadjust
 
 Nframe=y or n
   boolean flag defining whether nodes are framed or not.
 Nfill=y or n
   boolean flag defining whether nodes are filled or not.
   Automatically set to true by the parameters fillgray and fillcolor
 
 ExtNL=y or n
   boolean flag defining whether node labels are external or not.
 NLangle=number
   direction in degree of node labels
 NLdist=number
   The meaning depends on the ExtNL flag.
   If the flag is set to "n" then NLdist defines the distance
   in \unitlength between the node center and the label center.
   If the flag is set to "y" then NLdist defines the distance
   in \unitlength between the node frame and the label box.
   
 Nmarks=any combination of the letters i,f,r,n
   i : initial mark on nodes
   f : final mark on nodes
   r : repeated mark on nodes
   n : no mark on nodes
 ilength=number
   length in \unitlength of arrows marking initial nodes
 iangle=number
   direction in degree of arrows marking initial nodes
 flength=number
   length in \unitlength of arrows marking final nodes
 fangle=number
   direction in degree of arrows marking final nodes
 rdist=number
   distance in \unitlength between the lines of repeated nodes
   a positive value draw the second line inside the normal one
   a negative value draw the second line outside the normal one 
   but the edges are still connected to the normal line.
   
   An edge virtually starts from the center of the starting node and
   ends at the center of the ending node (indeed they are only drawn 
   outside of the nodes). It is possible to change the virtual starting 
   and ending points of an edge using offsets with respect to the center
   of the starting and ending node. This is the purpose of the following
   parameters.
 sxo=number (starting x offset)
   horizontal offset in \unitlength of the starting point of an edge 
   with respect to the center of the starting node.
 syo=number (starting y offset)
   vertical offset in \unitlength of the starting point of an edge 
   with respect to the center of the starting node.
 exo=number (ending x offset)
   horizontal offset in \unitlength of the ending point of an edge 
   with respect to the center of the ending node.
 eyo=number (ending y offset)
   vertical offset in \unitlength of the ending point of an edge 
   with respect to the center of the ending node.
   
 curvedepth=number
   depth in \unitlength of curved edges between two nodes
   The absolute value of curvedepth defines the distance between the
   middle of the curved edge and the center of the line joining the two nodes 
   With a positive/negative value the curved edge is on the left/right
   of the line joining the two nodes.
   
 loopdiam=number
   diameters in \unitlength of loops
 loopangle=number
   direction in degree of loops
 loopCW=y or n
   boolean flag defining whether loops are in clockwise direction or not.

 AHnb=number
   number of arrow(s) at the head of edges.
   0 for no arrowhead.
 AHdist=number
   distance in \unitlength between two arrowheads
 AHangle=angle
   angle in degree between the edge and the arrowhead side
 AHLength=number
   Length in \unitlegth of the arrowhead side
 AHlength=number
   length in \unitlegth defining the shape of the arrowhead
     0 for an arrowhead formed with just two lines
     Length*cos(angle) for a triangular arrowhead
     See examples.

 ATnb=number
   number of arrow(s) at the tail of edges.
   0 for no arrowhead.
 ATdist=number
   distance in \unitlength between two arrowtails
 ATangle=angle
   angle in degree between the edge and the arrowtail side
 ATLength=number
   Length in \unitlegth of the arrowtail side
 ATlength=number
   length in \unitlegth defining the shape of the arrowtail
     0 for an arrowtail formed with just two lines
     Length*cos(angle) for a triangular arrowtail
     See examples.
 
 ELside=l or r
   label on the (l)eft or (r)ight side of the edge
 ELpos=0..100
   position of the label along the edge.
     0 : starting node
    50 : middle of the edge
   100 : ending node
 ELdist=number
   distance in \unitlength between the label and the edge
 ELdistC=y or n
   y : The distance is between the center of the label and the edge.
       With ELdist=0 the center of the label is on the edge.
   n : The distance is between the side of the label and the edge.
       This is the default.
       The distance is actually between the side of the label and
       the tangent of the edge which is usually a good approximation. 
       It may not work very well if the label is large and the edge is
       strongly curved because then the tangent is far from the edge at the
       point that achieve the distance between the tangent and the label.
   
 linegray=decimal number between 0 and 1
   gray level used to draw lines. 0=black, 1=white.
 fillgray=decimal number between 0 and 1
   gray level used to fill nodes. 0=black, 1=white.
 linecolor=ColorName
   color used to draw lines.
   The color name should be defined in dvipsnam.def and one should 
   include \usepackage[usenames]{color}.
   This is to avoid the trouble of defining our own colors.
   The drawback is that it is not possible to define and use other colors.
   It should not be very restrictive since plenty of colours are 
   defined in dvipsnam.def.
   It should not be difficult to add the possibility of using new 
   colors if needed. 
 fillcolor=ColorName
   color used to fill nodes. See remarks above.
 linewidth=number
   width in \unitlegth of lines
 dash={list of numbers}{offset}
   Set the dash pattern used for drawing postscript paths.
   The numbers in the list indicate alternatively lengths
   in \unitlength of dashes and lengths in \unitlength of spaces. 
   The list of lenghts is used circularly.
   offset allows to start the pattern at some distance from its beginning.
   Here are some examples:
      dash={}{0} % continuous path
      dash={1.5}0 % dashs of length 1.5 and empty spaces of length 1.5
      dash={0.2 0.5}0 % looks like a sequence of dots
      dash={4 1 1 1}0 % alternation of long and short dashs
      dash={1.5}{1.5} % we start with the empty space and not the dash
      dash={4}{2} % we start in the middle of the first dash
 
 arcradius=number
   radius in \unitlength of the arcs used at the vertices 
   of polygons and broken lines. 0 for sharp angles.
 polyangle=angle
   angle in degrees with respect to the x axis of the first vertex 
   of the regular polygon.
 

===================================
Commands
===================================

 Define and draw a node whose shape is a regular polygon.
 
   \rpnode[parameter=value,...](NodeName)(x,y)(n,r){NodeLabel}

   NodeName : name of the node
     x,y : coordinates in \unitlengh of the node (center of the polygon).
       n : number of sides of the polygon.
       r : radius in \unitlengh of the circle containing the polygon.
   NodeLabel : label of the node. Empty if no label.

--------------------------------------
 Define and draw a node.
 
   \node[parameter=value,...](NodeName)(x,y){NodeLabel}
  
   NodeName : name of the node
   (x,y) : coordinates of the node in \unitlengh.
   NodeLabel : label of the node. Empty if no label.

--------------------------------------
 Edge between two nodes.
 
   \drawedge[parameter=value,...](startingNode,endingNode){label}
  
   startingNode : name of the starting node,
   endingNode : name of the ending node,
   label : label of the edge. {} for no label.

-----------------------------------------------------------------------
 Edge between two nodes following a quadratic Bezier curve.
 
   \drawqbedge[parameter=value,...](startingNode,x,y,endingNode){label}
   \drawqbpedge[parameter=value,...](startingNode,sa,endingNode,ea){label}  

   startingNode : name of the starting node,
   x,y : coordinates in \unitlength of the intermediary control point
   endingNode : name of the ending node,
   sa,ea : angles in degree at the starting and ending nodes,
           these angles define intermediary control point
   label : label of the edge. {} for no label.

-----------------------------------------------------------------------
 Edge between two nodes following a cubic Bezier curve.

   \drawbcedge[parameter=value,...](startingNode,xs,ys,endingNode,xe,ye){label}
   \drawbpedge[parameter=value,...](startingNode,sa,sr,endingNode,ea,er){label}
  
   startingNode : name of the starting node,
   sa,sr : polar coordinates of the second control point relative to the
           first control point (angle in degree and radius in \unitlength)
   endingNode : name of the ending node,
   ea,er : polar coordinates of the third control point relative to the
           last control point (angle in degree and radius in \unitlength)
   label : label of the edge. {} for no label.
   xs,ys : coordinates in \unitlength of the control point defining 
           the tangent at the starting node
   xe,ye : coordinates in \unitlength of the control point defining
           the tangent at the ending node

-----------------------------------------------------------------------
 Draw loop on a node 

   \drawloop[parameter=value,...](Node){label}
  
-----------------------------------------------------------------------
 Draw a broken line defined by n points (n>1).

   \drawline[parameter=value,...](x1,y1)...(xn,yn)
  
-----------------------------------------------------------------------
 Draw a circle.
 
   \drawcircle[parameter=value,...](x,y,d)

   x,y : coordinates of the circle center.
   d : diameter of the circle.

-----------------------------------------------------------------------
 Draw a rectangle.
 
   \drawrect[parameter=value,...](x0,y0,x1,y1)

   x0,y0 : coordinates of the lower left corner of the rectangle.
   x1,y1 : coordinates of the upper right corner of the rectangle.


-----------------------------------------------------------------------
 Draw an oval.

   \drawoval[parameter=value,...](x,y,w,h,mr)
  
   x,y : coordinates of the oval center.
   w,h : width and height of the oval.
   rm : defines the maximal radius for the corners.

-----------------------------------------------------------------------
 Draw a polygon defined by n points (n>1).
 
   \drawpolygon[parameter=value,...](x1,y1)...(xn,yn)
  
   (x1,y1)...(xn,yn) : coordinates of the points.

-----------------------------------------------------------------------
 Draw a regular polygon

   \drawrpolygon[parameter=value,...](x,y)(n,r)

   x,y : coordinates in \unitlengh of the center of the polygon.
     n : number of sides of the polygon.
     r : radius in \unitlengh of the polygon.

-----------------------------------------------------------------------
 Draw closed curve defined by n points (n>1).
 
   \drawccurve(x1,y1)...(xn,yn)
   \drawccurve[parameter=value,...](x1,y1)...(xn,yn)

   (x1,y1)...(xn,yn) : coordinates of the points.

-----------------------------------------------------------------------
 Draw a quadratic Bezier curve.
 
   \drawqbezier[parameter=value,...](x0,y0,x1,y1,x2,y2)
  
   x0,y0,x1,y1,x2,y2 : coordinates in \unitlength of the control points

-----------------------------------------------------------------------
 Draw a cubic Bezier curve.
 
   \drawcbezier[parameter=value,...](x0,y0,x1,y1,x2,y2,x3,y3)

   x0,y0,x1,y1,x2,y2,x3,y3 : coordinates in \unitlength of the control points