  
  [1XB. Drawing automata[0X
  
  The  drawing  of  graphs described here uses [10Xgraphviz[0m [DEGKNW02], a software
  for  drawing  graphs  developed  at  AT  &  T  Labs, that can be obtained at
  [7Xhttp://www.graphviz.org/[0m.
  
  
  [1XB.1 Installing some external programs[0X
  
  In   order   to   create   the   drawings   you   should   install  graphviz
  ([7Xhttp://www.graphviz.org/[0m) and to view them you should install one of evince
  ([7Xhttp://www.gnome.org/projects/evince/[0m),                                 ggv
  ([7Xhttp://directory.fsf.org/GNU/ggv.html[0m),                              gsview
  ([7Xhttp://pages.cs.wisc.edu/~ghost/gsview/[0m)                or               gv
  ([7Xhttp://www.gnu.org/software/gv/[0m).
  
  
  [1XB.2 Functions to draw automata[0X
  
  [1XB.2-1 DrawAutomaton[0m
  
  [2X> DrawAutomaton( [0X[3XA[, state_names, L, file][0X[2X ) _______________________[0Xfunction
  
  This  function  draws automaton [3XA[0m. The arguments [3Xstate_names[0m, [3XL[0m and [3Xfile[0m are
  optional.
  
  An  automaton with [10Xn[0m states will be drawn with numbers [10X1[0m to [10Xn[0m written inside
  the  corresponding  graph  node.  The  argument  [3Xstate_names[0m  is a list of [10Xn[0m
  strings  which  will  be the new text written inside the corresponding graph
  node.
  
  The argument [3XL[0m is a list of lists of integers, each of which specifies a set
  of states to be drawn in a different color.
  
  The argument [3Xfile[0m is a string that specifies the name of the file containing
  the drawing. If it is not give, it defaults to [10X"automaton"[0m.
  
  [4X---------------------------  Example  ----------------------------[0X
    [4Xgap> x:=Automaton("det",3,2,[ [ 2, 3, 0 ], [ 0, 1, 2 ] ],[ 1 ],[ 1, 2, 3 ]);;[0X
    [4Xgap> DrawAutomaton(x,"file_name");[0X
    [4XDisplaying file: /tmp/tmp.Rj0v1s/file_name.dot.ps[0X
    [4X[0X
    [4Xgap> DrawAutomaton(x,["st 1", "2", "C"],"file_name");[0X
    [4XDisplaying file: /tmp/tmp.BCH3FO/file_name.dot.ps[0X
    [4X[0X
    [4Xgap> DrawAutomaton(x,["st 1", "2", "C"],[[2],[1,3]]);[0X
    [4XDisplaying file: /tmp/tmp.LPnJMq/automaton.dot.ps[0X
  [4X------------------------------------------------------------------[0X
  
  The  output  of  the  three  previous  [10XDrawAutomaton[0m  commands  would be the
  following diagrams displayed in a [13Xghostview[0m window, respectively.
  
  [1XB.2-2 DrawAutomata[0m
  
  [2X> DrawAutomata( [0X[3XA, B[, file][0X[2X ) _____________________________________[0Xfunction
  
  This  function tests if automaton [10X A [0m is a subautomaton of [10X B [0m in which case
  draws  [10X  B  [0m  highlighting  the edges not in [10X A [0m by drawing them in a dotted
  style, while the others are drawn in a plain style.
  
  [1XB.2-3 DrawGraph[0m
  
  [2X> DrawGraph( [0X[3XG[, file][0X[2X ) ___________________________________________[0Xfunction
  
  Draws a graph specified as an adjacency list [10XG[0m.
  
  [1XB.2-4 DrawSCCAutomaton[0m
  
  [2X> DrawSCCAutomaton( [0X[3XA[, state_names, L, file][0X[2X ) ____________________[0Xfunction
  
  Draws  automaton  [10X  A  [0m and highlights it's strongly connected components by
  drawing the other edges in a dotted style.
  
  The  optional  arguments  [3Xstate_names[0m,  [3XL[0m  and  [3Xfile[0m  are  as  described  in
  [2XDrawAutomaton[0m ([14XB.2-1[0m).
  
  
  [1XB.3 Drawings output formats[0X
  
  Since  drawings  are mostly used in the [5XSgpViz[0m package, please refer to that
  package's                                                             manual
  ([7Xhttp://www.gap-system.org/Manuals/pkg/sgpviz/doc/manual.html[0m)   section  of
  the same name.
  
  
  [1XB.4 Drawings extra graph attributes[0X
  
  Since  drawings  are mostly used in the [5XSgpViz[0m package, please refer to that
  package's                                                             manual
  ([7Xhttp://www.gap-system.org/Manuals/pkg/sgpviz/doc/manual.html[0m)   section  of
  the same name.
  
