=================================== 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