  
  [1m[4m[31m3. Drawings of semigroups[0m
  
  There  are  some  pictures  that  may  give  a  lot  of  information about a
  semigroup.  This  is  the  case of the egg-box picture of the D-classes, the
  right  Cayley  graph  of  a finite monoid and the Schutzenberger graphs of a
  finite inverse monoid.
  
  
  [1m[4m[31m3.1 Drawing the D-class of an element of a semigroup[0m
  
  [1m[4m[31m3.1-1 DrawDClassOfElement[0m
  
  [1m[34m> DrawDClassOfElement( [0m[22m[34marg[0m[1m[34m ) _______________________________________[0mfunction
  
  This  function  takes  as arguments a semigroup followed by a transformation
  which  is  the  element  whose D-class will be drawn. Optionally we can then
  specify  n  lists of elements and the elements of each list will be drawn in
  different  colours. Finally, we may specify a string name the file that will
  be  used to write the drawing of the class (in PostScript format) and if the
  last   argument   is  the  integer  [22m[32m1[0m  then  the  elements  will  appear  as
  transformations,  otherwise  they will appear as words. The idempotents will
  be marked with a * before them.
  
  This  last  optional argument may also be the integer [22m[32m2[0m and in this case the
  elements   will   appear   as  integers,  where  [22m[32mi[0m  represents  the  element
  [22m[32mElements(S)[i][0m.
  
  [22m[35m---------------------------  Example  ----------------------------[0m
    [22m[35mgap> DrawDClassOfElement(poi3, Transformation([1,4,3,4]));[0m
    [22m[35mgap> DrawDClassOfElement(poi3, Transformation([1,4,3,4]),1);[0m
    [22m[35mgap> DrawDClassOfElement(poi3, Transformation([1,4,3,4]),[0m
    [22m[35m [Transformation( [ 2, 3, 4, 4 ] )],1);[0m
    [22m[35mgap> DrawDClassOfElement(poi3, Transformation([1,4,3,4]),[0m
    [22m[35m [Transformation( [ 2, 3, 4, 4 ] ), Transformation( [ 2, 4, 3, 4 ] )],[0m
    [22m[35m [Transformation( [ 2, 4, 3, 4 ] )],1);[0m
    [22m[35mgap> DrawDClassOfElement(poi3, Transformation([1,4,3,4]), [0m
    [22m[35m [Transformation( [ 2, 4, 3, 4 ] )],"Dclass",1);[0m
    [22m[35m      [0m
  [22m[35m------------------------------------------------------------------[0m
  
  
  [1m[4m[31m3.2 Drawing the D-classes of a semigroup[0m
  
  [1m[4m[31m3.2-1 DrawDClasses[0m
  
  [1m[34m> DrawDClasses( [0m[22m[34marg[0m[1m[34m ) ______________________________________________[0mfunction
  
  This function is similar to the previous one, except that this one draws all
  the  D-classes  of  the semigroup given as the first argument. It then takes
  optionally  n  lists of elements and the elements of each list will be drawn
  in  different  colours.  It also accepts a string specifying the name of the
  file  in which the drawing will be written and the last, optional, argument,
  the  integer  [22m[32m1[0m,  to specify whether the elements will appear as words or as
  transformations  as in the previous function. The idempotents will be marked
  with a * before them.
  
  This  last  optional argument may also be the integer [22m[32m2[0m and in this case the
  elements   will   appear   as  integers,  where  [22m[32mi[0m  represents  the  element
  [22m[32mElements(S)[i][0m.
  
  [22m[35m---------------------------  Example  ----------------------------[0m
    [22m[35mgap> DrawDClasses(poi3,"DClasses");[0m
    [22m[35mgap> DrawDClasses(poi3, [Transformation( [ 2, 3, 4, 4 ] ),[0m
    [22m[35m  Transformation( [ 2, 4, 3, 4 ] )],[0m
    [22m[35m  [Transformation( [ 2, 4, 3, 4 ] )],1);[0m
    [22m[35m      [0m
  [22m[35m------------------------------------------------------------------[0m
  
  
  [1m[4m[31m3.3 Cayley graphs[0m
  
  [1m[4m[31m3.3-1 DrawRightCayleyGraph[0m
  
  [1m[34m> DrawRightCayleyGraph( [0m[22m[34mS[0m[1m[34m ) ________________________________________[0mfunction
  
  Draws the right Cayley graph of a finite monoid or semigroup [22m[34mS[0m.
  
  [1m[4m[31m3.3-2 DrawCayleyGraph[0m
  
  [1m[34m> DrawCayleyGraph( [0m[22m[34mS[0m[1m[34m ) _____________________________________________[0mfunction
  
  This function is a synonym of [1m[34mDrawRightCayleyGraph[0m ([1m3.3-1[0m).
  
  For  example,  the command [22m[32mDrawCayleyGraph(b21);[0m would produce the following
  image  (where  state  [22m[32mi[0m  represents  the element [22m[32mElements(S)[i][0m, the neutral
  element  is colored in "light blue" and all other idempotents are colored in
  "light coral"):
  
  
  [1m[4m[31m3.4 Schutzenberger graphs[0m
  
  [1m[4m[31m3.4-1 DrawSchutzenbergerGraphs[0m
  
  [1m[34m> DrawSchutzenbergerGraphs( [0m[22m[34mS[0m[1m[34m ) ____________________________________[0mfunction
  
  Draws the Schutzenberger graphs of the inverse semigroup [22m[34mS[0m.
  
  For example, [22m[32mDrawSchutzenbergerGraphs(poi3);[0m would produce the following:
  
  
  [1m[4m[31m3.5 Drawings output formats[0m
  
  By  default,  when  a  drawing  is  requested, it is outputted in PostScript
  format.    Since    [22m[32mgraphviz[0m    allows    other    output    formats    (see
  [34mhttp://www.graphviz.org/doc/info/output.html[0m),   it   is  possible  to  also
  request a drawing in a format other than PostScript.
  
  [1m[4m[31m3.5-1 DrawingsListOfExtraFormats[0m
  
  [1m[34m> DrawingsListOfExtraFormats_________________________________[0mglobal variable
  
  This  is  a  global  variable  which  holds  the  valid output formats for a
  drawing.  It  currently  has  the  value: [22m[32m["dia", "fig", "gd", "gd2", "gif",
  "hpgl", "jpg", "mif", "mp", "pcl", "pic", "plain", "plain-ext", "png", "ps",
  "ps2",    "svg",    "svgz",    "vrml",    "vtx",    "wbmp",   "none"][0m   (see
  [34mhttp://www.graphviz.org/doc/info/output.html[0m for their description).
  
  [1m[4m[31m3.5-2 DrawingsExtraFormat[0m
  
  [1m[34m> DrawingsExtraFormat________________________________________[0mglobal variable
  
  This  is  a  global variable which holds the alternative output format for a
  drawing. By default its value is [22m[32m"none"[0m which indicates that just PostScript
  will be used as the output format.
  
  If  its  value  becomes  one of those in [1m[34mDrawingsListOfExtraFormats[0m ([1m3.5-1[0m),
  then  besides  the  PostScript  file,  it will also be created a file in the
  alternative format.
  
  To change this variable's value, please use [1m[34mSetDrawingsExtraFormat[0m ([1m3.5-3[0m).
  
  [1m[4m[31m3.5-3 SetDrawingsExtraFormat[0m
  
  [1m[34m> SetDrawingsExtraFormat( [0m[22m[34mf[0m[1m[34m ) ______________________________________[0mfunction
  
  This function is used to set the value of [1m[34mDrawingsExtraFormat[0m ([1m3.5-2[0m) to the
  format [22m[34mf[0m which is one of [1m[34mDrawingsListOfExtraFormats[0m ([1m3.5-1[0m).
  
  [22m[35m---------------------------  Example  ----------------------------[0m
    [22m[35mgap> DrawingsExtraFormat;[0m
    [22m[35m"none"[0m
    [22m[35mgap> SetDrawingsExtraFormat("jpg");[0m
    [22m[35mgap> DrawingsExtraFormat;[0m
    [22m[35m"jpg"[0m
    [22m[35m[0m
    [22m[35mgap> DrawRightCayleyGraph(poi3);[0m
    [22m[35mDisplaying file: /tmp/tmp.tpJqvI/cayleygraph.dot.ps[0m
    [22m[35mThe extra output format file: /tmp/tmp.tpJqvI/cayleygraph.dot.jpg[0m
    [22m[35mhas also been created.[0m
    [22m[35m[0m
  [22m[35m------------------------------------------------------------------[0m
  
