]> granicus.if.org Git - graphviz/commitdiff
Update info files
authorerg <devnull@localhost>
Thu, 21 Feb 2008 23:27:29 +0000 (23:27 +0000)
committererg <devnull@localhost>
Thu, 21 Feb 2008 23:27:29 +0000 (23:27 +0000)
doc/info/attrs.html
doc/info/output.html

index 9ffe40e55f8fe4a40ae8eedf75a2496ca31a20d9..bac098d04362d7bf330da63e6802ea4486bd01e5 100644 (file)
@@ -19,37 +19,37 @@ for numeric attributes, and certain restrictions on the use of the attribute.
 <P>
 All Graphviz attributes are specified by name-value pairs. Thus, to
 set the fillcolor of a node <TT>abc</TT>, one would use
-<TABLE> 
+<TABLE>
 <TR><TD><TT>abc [fillcolor = red]</TT></TR>
-</TABLE> 
-Similarly, to set the arrowhead style of an edge <TT>abc -> def</TT>, 
+</TABLE>
+Similarly, to set the arrowhead style of an edge <TT>abc -> def</TT>,
 one would use
-<TABLE> 
+<TABLE>
 <TR><TD><TT>abc -> def [arrowhead = diamond]</TT></TR>
-</TABLE> 
+</TABLE>
 Further details concerning the setting of attributes can be found
-in the description of the 
+in the description of the
 <A HREF="http://www.graphviz.org/doc/info/lang.html">DOT language.</A>
 <P>
 At present, most device-independent units are either inches or
 <A NAME="points"></A>
-<A HREF="http://en.wikipedia.org/wiki/Point_(typography)">points</A>, 
+<A HREF="http://en.wikipedia.org/wiki/Point_(typography)">points</A>,
 which we take as 72 points per inch.
 <P>
 <A NAME=h:undir_note><STRONG>Note:</STRONG></A> Some attributes, such as
-<A HREF=#d:dir>dir</A> or <A HREF=#d:arrowtail>arrowtail</A>, are 
-ambiguous when used in 
+<A HREF=#d:dir>dir</A> or <A HREF=#d:arrowtail>arrowtail</A>, are
+ambiguous when used in
 <A HREF="http://www.graphviz.org/doc/info/lang.html">DOT</A>
-with an undirected graph since the head and tail of an edge are meaningless. 
+with an undirected graph since the head and tail of an edge are meaningless.
 As a convention, the first time an undirected edge appears, the
 <A HREF="http://www.graphviz.org/doc/info/lang.html">DOT</A>
 parser will assign the left node as the tail node and the right node as
 the head. For example, the edge <TT>A -- B</TT> will have tail <TT>A</TT>
 and head <TT>B</TT>. It is the user's responsibility to handle such
 edges consistently. If the edge appears later, in the format
-<TABLE> 
+<TABLE>
 <TR><TD><TT>B -- A [taillabel = "tail"]</TT></TR>
-</TABLE> 
+</TABLE>
 the drawing will attach the tail label to node <TT>A</TT>.
 To avoid possible confusion when such attributes are required, the user
 is encouraged to use a directed graph.
@@ -59,16 +59,16 @@ or <A HREF=#d:arrowhead>arrowhead</A> attributes.
 <P>
 The tools accept standard C representations for <EM>int</EM> and
 <EM>double</EM> types.
-For the <A NAME=k:bool><EM>bool</EM></A> type, TRUE values are 
+For the <A NAME=k:bool><EM>bool</EM></A> type, TRUE values are
 represented by "true" (case-insensitive)
 and any non-zero integer, and FALSE values by "false" (case-insensitive)
 and zero.
-In addition, there are a variety of specialized types such as 
+In addition, there are a variety of specialized types such as
 <EM>arrowType</EM>, <EM>color</EM>,
 <EM>pointf</EM> and <EM>rankdir</EM>. Legal values for these types are given
 at the end.
 <P>
-In the <A NAME=h:uses><STRONG>Used By</STRONG></A> field, the 
+In the <A NAME=h:uses><STRONG>Used By</STRONG></A> field, the
 characters E, N, G, S and C
 represent edges, nodes, the root graph, subgraphs
 and cluster subgraphs, respectively.
@@ -207,7 +207,7 @@ This field indicates which graph component uses the attribute.
 <BR>string</TD><TD ALIGN="CENTER">false</TD><TD></TD><TD></TD> </TR>
  <TR><TD><A NAME=a:label HREF=#d:label>label</A>
 </TD><TD>ENGC</TD><TD><A HREF=#k:lblString>lblString</A>
-</TD><TD ALIGN="CENTER">"N"</TD><TD>(nodes)<BR>"" (otherwise)</TD><TD></TD> </TR>
+</TD><TD ALIGN="CENTER">"\N" (nodes)<BR>"" (otherwise)</TD><TD></TD><TD></TD> </TR>
  <TR><TD><A NAME=a:labelURL HREF=#d:labelURL>labelURL</A>
 </TD><TD>E</TD><TD><A HREF=#k:lblString>lblString</A>
 </TD><TD ALIGN="CENTER">""</TD><TD></TD><TD>svg, map only</TD> </TR>
@@ -231,7 +231,7 @@ This field indicates which graph component uses the attribute.
  <TR><TD><A NAME=a:labeljust HREF=#d:labeljust>labeljust</A>
 </TD><TD>GC</TD><TD>string</TD><TD ALIGN="CENTER">"c"</TD><TD></TD><TD></TD> </TR>
  <TR><TD><A NAME=a:labelloc HREF=#d:labelloc>labelloc</A>
-</TD><TD>GC</TD><TD>string</TD><TD ALIGN="CENTER">"t"</TD><TD>clusters)<BR>"b"(root graphs)</TD><TD></TD> </TR>
+</TD><TD>GC</TD><TD>string</TD><TD ALIGN="CENTER">"t"(clusters)<BR>"b"(root graphs)</TD><TD></TD><TD></TD> </TR>
  <TR><TD><A NAME=a:labeltarget HREF=#d:labeltarget>labeltarget</A>
 </TD><TD>E</TD><TD><A HREF=#k:escString>escString</A>
 </TD><TD ALIGN="CENTER">&#60;none&#62;</TD><TD></TD><TD>svg, map only</TD> </TR>
@@ -355,7 +355,7 @@ This field indicates which graph component uses the attribute.
 </TD><TD>G</TD><TD>double</TD><TD ALIGN="CENTER">96.0<BR>0.0</TD><TD></TD><TD>svg, bitmap output only</TD> </TR>
  <TR><TD><A NAME=a:root HREF=#d:root>root</A>
 </TD><TD>GN</TD><TD>string<BR><A HREF=#k:bool>bool</A>
-</TD><TD ALIGN="CENTER">""</TD><TD>graphs)<BR>false(nodes)</TD><TD>circo, twopi only</TD> </TR>
+</TD><TD ALIGN="CENTER">""(graphs)<BR>false(nodes)</TD><TD></TD><TD>circo, twopi only</TD> </TR>
  <TR><TD><A NAME=a:rotate HREF=#d:rotate>rotate</A>
 </TD><TD>G</TD><TD>int</TD><TD ALIGN="CENTER">0</TD><TD></TD><TD></TD> </TR>
  <TR><TD><A NAME=a:samehead HREF=#d:samehead>samehead</A>
@@ -449,49 +449,49 @@ This field indicates which graph component uses the attribute.
 
 <DT><A NAME=d:K HREF=#a:K><STRONG>K</STRONG></A>
 <DD>  Spring constant used in virtual physical model. It roughly corresponds
-  to an ideal edge length (in inches), in that increasing K tends to 
+  to an ideal edge length (in inches), in that increasing K tends to
   increase the distance between nodes.
   Note that the edge attribute <A HREF=#d:len>len</A> can be used to
   override this value for adjacent nodes.
 
 <DT><A NAME=d:URL HREF=#a:URL><STRONG>URL</STRONG></A>
-<DD>  Hyperlinks incorporated into device-dependent output. 
-  At present, used in ps2, cmap, i*map and svg formats. 
+<DD>  Hyperlinks incorporated into device-dependent output.
+  At present, used in ps2, cmap, i*map and svg formats.
   For all these formats, URLs can be attached to nodes, edges and
   clusters. URL attributes can also be attached to the root graph in ps2,
-  cmap and i*map formats. This serves as the base URL for relative URLs in the 
+  cmap and i*map formats. This serves as the base URL for relative URLs in the
   former, and as the default image map file in the latter.
   <P>
-  For svg, cmapx and imap output, the active area for a node is its 
-  visible image. 
+  For svg, cmapx and imap output, the active area for a node is its
+  visible image.
   For example, an unfilled
-  node with no drawn boundary will only be active on its label. 
+  node with no drawn boundary will only be active on its label.
   For other output, the active area is its bounding box.
-  The active area for a cluster is its bounding box. 
+  The active area for a cluster is its bounding box.
   For edges, the active areas are small circles where the edge contacts its head
-  and tail nodes. In addition, for svg, cmapx and imap, the active area 
-  includes a thin polygon approximating the edge. The circles may 
+  and tail nodes. In addition, for svg, cmapx and imap, the active area
+  includes a thin polygon approximating the edge. The circles may
   overlap the related node, and the edge URL dominates.
-  If the edge has a label, this will also be active. 
+  If the edge has a label, this will also be active.
   Finally, if the edge has a head or tail label, this will also be active.
   <P>
   Note that, for edges, the attributes <A HREF=#d:headURL>headURL</A>,
   <A HREF=#d:tailURL>tailURL</A>, <A HREF=#d:labelURL>labelURL</A> and
   <A HREF=#d:edgeURL>edgeURL</A> allow control of various parts of an
   edge.
-  Also note that, if active areas of two edges overlap, it is unspecified 
+  Also note that, if active areas of two edges overlap, it is unspecified
   which area dominates.
 
 <DT><A NAME=d:arrowhead HREF=#a:arrowhead><STRONG>arrowhead</STRONG></A>
-<DD>  Style of arrowhead on the head node of an edge. 
-  See also the <A HREF=#d:dir>dir</A> attribute, 
+<DD>  Style of arrowhead on the head node of an edge.
+  See also the <A HREF=#d:dir>dir</A> attribute,
   and a <A HREF=#h:undir_note>limitation</A>.
 
 <DT><A NAME=d:arrowsize HREF=#a:arrowsize><STRONG>arrowsize</STRONG></A>
 <DD>  Multiplicative scale factor for arrowheads.
 
 <DT><A NAME=d:arrowtail HREF=#a:arrowtail><STRONG>arrowtail</STRONG></A>
-<DD>  Style of arrowhead on the tail node of an edge. 
+<DD>  Style of arrowhead on the tail node of an edge.
   See also the <A HREF=#d:dir>dir</A> attribute,
   and a <A HREF=#h:undir_note>limitation</A>.
 
@@ -499,11 +499,11 @@ This field indicates which graph component uses the attribute.
 <DD>  Bounding box of drawing in integer points.
 
 <DT><A NAME=d:bgcolor HREF=#a:bgcolor><STRONG>bgcolor</STRONG></A>
-<DD>  When attached to the root graph, this color is used as the background for 
+<DD>  When attached to the root graph, this color is used as the background for
   entire canvas. When a cluster attribute, it is used as the initial
-  background for the cluster. If a cluster has a filled 
+  background for the cluster. If a cluster has a filled
   <A HREF=#d:style>style</A>, the
-  cluster's <A HREF=#d:fillcolor>fillcolor</A> will overlay the 
+  cluster's <A HREF=#d:fillcolor>fillcolor</A> will overlay the
   background color.
   <P>
   If no background color is specified for the root graph, no graphics
@@ -521,9 +521,9 @@ This field indicates which graph component uses the attribute.
 <DT><A NAME=d:charset HREF=#a:charset><STRONG>charset</STRONG></A>
 <DD>  Specifies the character encoding used when interpreting string input
   as a text label. The default value is <TT>"UTF-8"</TT>.
-  The other legal value is <TT>"iso-8859-1"</TT> or, 
+  The other legal value is <TT>"iso-8859-1"</TT> or,
   equivalently,
- <TT>"Latin1"</TT>. The <B>charset</B> attribute is case-insensitive.
 <TT>"Latin1"</TT>. The <B>charset</B> attribute is case-insensitive.
   Note that if the character encoding used in the input does not
   match the <B>charset</B> value, the resulting output may be very strange.
 
@@ -531,7 +531,7 @@ This field indicates which graph component uses the attribute.
 <DD>  Mode used for handling clusters. If <B>clusterrank</B> is "local", a
   subgraph whose name begins with "cluster" is given special treatment.
   The subgraph is laid out separately, and then integrated as a unit into
-  its parent graph, with a bounding rectangle drawn about it. 
+  its parent graph, with a bounding rectangle drawn about it.
   If the cluster has a <A HREF=#d:label>label</A> parameter, this label
   is displayed within the rectangle.
   Note also that there can be clusters within clusters.
@@ -540,28 +540,28 @@ This field indicates which graph component uses the attribute.
 
 <DT><A NAME=d:color HREF=#a:color><STRONG>color</STRONG></A>
 <DD>  Basic drawing color for graphics, not text. For the latter, use the
-  <A HREF=#d.fontcolor>fontcolor</A> attribute. 
+  <A HREF=#d.fontcolor>fontcolor</A> attribute.
   <P>
   For edges, the value
   can either be a single color or a <A HREF=#k:colorList>colorList</A>.
   In the latter case, the edge is drawn using parallel splines or lines,
   one for each color in the list, in the order given.
-  The head arrow, if any, is drawn using the first color in the list, 
-  and the tail arrow, if any, the second color. This supports the common 
-  case of drawing opposing edges, but using parallel splines instead of 
+  The head arrow, if any, is drawn using the first color in the list,
+  and the tail arrow, if any, the second color. This supports the common
+  case of drawing opposing edges, but using parallel splines instead of
   separately routed multiedges. For example, the graph
   <PRE>
   digraph G {
     a -> b [dir=both color="red:blue"]
-  } 
+  }
   </PRE>
   yields<BR>
   <IMG SRC="colorlist.gif">
 
 <DT><A NAME=d:colorscheme HREF=#a:colorscheme><STRONG>colorscheme</STRONG></A>
 <DD>  This attribute specifies a color scheme namespace. If defined, it specifies
-  the context for interpreting color names. In particular, if a 
-  <A HREF=#k:color>color</A> value has form <TT>"xxx"</TT> or <TT>"//xxx"</TT>, 
+  the context for interpreting color names. In particular, if a
+  <A HREF=#k:color>color</A> value has form <TT>"xxx"</TT> or <TT>"//xxx"</TT>,
   then the
   color <TT>xxx</TT> will be evaluated according to the current color scheme.
   If no color scheme is set, the standard X11 naming is used.
@@ -572,7 +572,7 @@ This field indicates which graph component uses the attribute.
 <DD>  Comments are inserted into output. Device-dependent
 
 <DT><A NAME=d:compound HREF=#a:compound><STRONG>compound</STRONG></A>
-<DD>  If true, allow edges between clusters. (See <A HREF=#d:lhead>lhead</A> 
+<DD>  If true, allow edges between clusters. (See <A HREF=#d:lhead>lhead</A>
   and <A HREF=#d:ltail>ltail</A> below.)
 
 <DT><A NAME=d:concentrate HREF=#a:concentrate><STRONG>concentrate</STRONG></A>
@@ -615,14 +615,14 @@ This field indicates which graph component uses the attribute.
 
 <DT><A NAME=d:diredgeconstraints HREF=#a:diredgeconstraints><STRONG>diredgeconstraints</STRONG></A>
 <DD>  Only valid when <A HREF=#d:mode>mode</A>="ipsep".
-  If true, constraints are generated for each edge in the largest (heuristic) 
+  If true, constraints are generated for each edge in the largest (heuristic)
   directed acyclic subgraph such that the edge must point downwards.
   If "hier", generates level constraints similar to those used with
   <A HREF=#d:mode>mode</A>="hier". The main difference is that, in the latter
   case, only these constraints are involved, so a faster solver can be used.
 
 <DT><A NAME=d:distortion HREF=#a:distortion><STRONG>distortion</STRONG></A>
-<DD>  Distortion factor for <A HREF=#d:shape><B>shape</B></A>=polygon. 
+<DD>  Distortion factor for <A HREF=#d:shape><B>shape</B></A>=polygon.
   Positive values cause top part to
   be larger than bottom; negative values do the opposite.
 
@@ -647,16 +647,16 @@ This field indicates which graph component uses the attribute.
 
 <DT><A NAME=d:edgetarget HREF=#a:edgetarget><STRONG>edgetarget</STRONG></A>
 <DD>  If the edge has a <A HREF=#d:URL>URL</A> or <A HREF=#d:edgeURL>edgeURL</A>
-  attribute, this attribute determines which window of the 
+  attribute, this attribute determines which window of the
   browser is used
-  for the URL attached to the non-label part of the edge. 
-  Setting it to "_graphviz" will open a new window if it 
+  for the URL attached to the non-label part of the edge.
+  Setting it to "_graphviz" will open a new window if it
   doesn't already exist, or reuse it if it does.
   If undefined, the value of the <A HREF=#d:target>target</A> is used.
 
 <DT><A NAME=d:edgetooltip HREF=#a:edgetooltip><STRONG>edgetooltip</STRONG></A>
-<DD>  Tooltip annotation attached to the non-label part of an edge. 
-  This is used only if the edge has a <A HREF=#d:URL>URL</A> 
+<DD>  Tooltip annotation attached to the non-label part of an edge.
+  This is used only if the edge has a <A HREF=#d:URL>URL</A>
   or <A HREF=#d:edgeURL>edgeURL</A> attribute.
 
 <DT><A NAME=d:epsilon HREF=#a:epsilon><STRONG>epsilon</STRONG></A>
@@ -665,17 +665,17 @@ This field indicates which graph component uses the attribute.
 
 <DT><A NAME=d:esep HREF=#a:esep><STRONG>esep</STRONG></A>
 <DD>  Fraction to increase polygons (multiply
-  coordinates by 1 + esep) for purposes of spline edge routing. 
-  This should normally be strictly less than 
+  coordinates by 1 + esep) for purposes of spline edge routing.
+  This should normally be strictly less than
   <A HREF=#d:sep>sep</A>.
 
 <DT><A NAME=d:fillcolor HREF=#a:fillcolor><STRONG>fillcolor</STRONG></A>
-<DD>  Color used to fill the background of a node or cluster 
+<DD>  Color used to fill the background of a node or cluster
   assuming <A HREF=#d:style>style</A>=filled.
-  If <B>fillcolor</B> is not defined, <A HREF=#d:color>color</A> is 
-  used. (For clusters, if <B>color</B> is not defined, 
+  If <B>fillcolor</B> is not defined, <A HREF=#d:color>color</A> is
+  used. (For clusters, if <B>color</B> is not defined,
   <A HREF=#d:bgcolor>bgcolor</A> is used.) If this is not defined,
-  the default is used, except for 
+  the default is used, except for
   <A HREF=#d:shape><B>shape</B></A>=point or when the output
   format is MIF,
   which use black by default.
@@ -686,37 +686,37 @@ This field indicates which graph component uses the attribute.
 
 <DT><A NAME=d:fixedsize HREF=#a:fixedsize><STRONG>fixedsize</STRONG></A>
 <DD>  If true, the node size is specified by the values of the
-  <A HREF=#d:width><B>width</B></A>  
-  and <A HREF=#d:height><B>height</B></A> attributes only 
+  <A HREF=#d:width><B>width</B></A>
+  and <A HREF=#d:height><B>height</B></A> attributes only
   and is not expanded to contain the text label.
 
 <DT><A NAME=d:fontcolor HREF=#a:fontcolor><STRONG>fontcolor</STRONG></A>
 <DD>  Color used for text.
 
 <DT><A NAME=d:fontname HREF=#a:fontname><STRONG>fontname</STRONG></A>
-<DD>  Font used for text. This very much depends on the output format and, for 
+<DD>  Font used for text. This very much depends on the output format and, for
   non-bitmap output such as PostScript or SVG, the availability of the font
   when the graph is displayed or printed. As such, it is best to rely on
   font faces that are generally available, such as Times-Roman, Helvetica or
   Courier.
   <P>
-  If Graphviz was built using the 
+  If Graphviz was built using the
   <A HREF=http://pdx.freedesktop.org/~fontconfig/fontconfig-user.html>fontconfig library</A>, the latter library
   will be used to search for the font. However, if the <TT>fontname</TT> string
   contains a slash character "/", it is treated as a pathname for the font
   file, though font lookup will append the usual font suffixes.
   <P>
   If Graphviz does not use fontconfig, <TT>fontname</TT> will be
-  considered the name of a Type 1 or True Type font file. 
-  If you specify <TT>fontname=schlbk</TT>, the tool will look for a 
+  considered the name of a Type 1 or True Type font file.
+  If you specify <TT>fontname=schlbk</TT>, the tool will look for a
   file named  <TT>schlbk.ttf</TT> or <TT>schlbk.pfa</TT> or <TT>schlbk.pfb</TT>
-  in one of the directories specified by 
+  in one of the directories specified by
   the <A HREF=#d:fontpath>fontpath</A> attribute.
   The lookup does support various aliases for the common fonts.
 
 <DT><A NAME=d:fontnames HREF=#a:fontnames><STRONG>fontnames</STRONG></A>
 <DD>  Allows user control of how basic fontnames are represented in SVG output.
-  If <TT>fontnames</TT> is undefined or <TT>"svg"</TT>, 
+  If <TT>fontnames</TT> is undefined or <TT>"svg"</TT>,
   the output will try to use known SVG fontnames. For example, the
   default font  <TT>"Times-Roman"</TT> will be mapped to the
   basic SVG font <TT>"serif"</TT>. This can be overridden by setting
@@ -731,7 +731,7 @@ This field indicates which graph component uses the attribute.
 <DT><A NAME=d:fontpath HREF=#a:fontpath><STRONG>fontpath</STRONG></A>
 <DD>  Directory list used by libgd to search for bitmap fonts if Graphviz
   was not built with the fontconfig library.
-  If <B>fontpath</B> is not set, the environment 
+  If <B>fontpath</B> is not set, the environment
   variable <TT>DOTFONTPATH</TT> is checked.
   If that is not set, <TT>GDFONTPATH</TT> is checked.
   If not set, libgd uses its compiled-in font path.
@@ -747,7 +747,7 @@ This field indicates which graph component uses the attribute.
 
 <DT><A NAME=d:headURL HREF=#a:headURL><STRONG>headURL</STRONG></A>
 <DD>  If <B>headURL</B> is defined, it is
-  output as part of the head label of the edge. 
+  output as part of the head label of the edge.
   Also, this value is used near the head node, overriding any
   <A HREF=#d:URL>URL</A> value.
   See <A HREF=#h:undir_note>limitation</A>.
@@ -771,10 +771,10 @@ This field indicates which graph component uses the attribute.
   See <A HREF=#h:undir_note>limitation</A>.
 
 <DT><A NAME=d:headtarget HREF=#a:headtarget><STRONG>headtarget</STRONG></A>
-<DD>  If the edge has a <A HREF=#d:headURL>headURL</A>, 
-  this attribute determines which window of the 
+<DD>  If the edge has a <A HREF=#d:headURL>headURL</A>,
+  this attribute determines which window of the
   browser is used
-  for the URL. Setting it to "_graphviz" will open a new window if it 
+  for the URL. Setting it to "_graphviz" will open a new window if it
   doesn't already exist, or reuse it if it does.
   If undefined, the value of the <A HREF=#d:target>target</A> is used.
 
@@ -795,11 +795,11 @@ This field indicates which graph component uses the attribute.
 
 <DT><A NAME=d:image HREF=#a:image><STRONG>image</STRONG></A>
 <DD>  Gives the name of a file containing an image to be displayed inside
-  a node. The image file must be in one of the recognized formats, 
+  a node. The image file must be in one of the recognized formats,
   typically JPEG, PNG, GIF or Postscript, and be able to be converted
-  into the desired output format.  
+  into the desired output format.
   <P>
-  Unlike with the <A HREF=#d:shapefile>shapefile</A> attribute, 
+  Unlike with the <A HREF=#d:shapefile>shapefile</A> attribute,
   the image is treated as node
   content rather than the entire node. In particular, an image can
   be contained in a node of any shape, not just a rectangle.
@@ -809,17 +809,17 @@ This field indicates which graph component uses the attribute.
   containing node. In general, the image is given its natural size,
   (cf. <A HREF=#d:dpi>dpi</A>),
   and the node size is made large enough to contain its image, its
-  label, its margin, and its peripheries. 
+  label, its margin, and its peripheries.
   Its width and height will also be at least as large as its
-  minimum <A HREF=#d:width>width</A> and <A HREF=#d:height>height</A>. 
+  minimum <A HREF=#d:width>width</A> and <A HREF=#d:height>height</A>.
   If, however, <TT>fixedsize=true</TT>,
-  the width and height attributes specify the exact size of the node. 
+  the width and height attributes specify the exact size of the node.
   <P>
   During rendering, in the default case (<TT>imagescale=false</TT>),
   the image retains its natural size.
   If <TT>imagescale=true</TT>,
   the image is uniformly scaled (i.e., its aspect ration is
-  preserved) to fit inside the node. 
+  preserved) to fit inside the node.
   At least one dimension of the image will be as large as possible
   given the size of the node.
   When <TT>imagescale=width</TT>,
@@ -837,7 +837,7 @@ This field indicates which graph component uses the attribute.
 <DT><A NAME=d:label HREF=#a:label><STRONG>label</STRONG></A>
 <DD>  Text label attached to objects.
   If a node's <A HREF=#d:shape>shape</A> is record, then the label can
-  have a <A HREF=shapes.html#record>special format</A> 
+  have a <A HREF=shapes.html#record>special format</A>
   which describes the record layout.
 
 <DT><A NAME=d:labelURL HREF=#a:labelURL><STRONG>labelURL</STRONG></A>
@@ -846,20 +846,20 @@ This field indicates which graph component uses the attribute.
   defined for the edge.
 
 <DT><A NAME=d:labelangle HREF=#a:labelangle><STRONG>labelangle</STRONG></A>
-<DD>  This, along with <A HREF=#d:labeldistance>labeldistance</A>, determine 
+<DD>  This, along with <A HREF=#d:labeldistance>labeldistance</A>, determine
   where the
   headlabel (taillabel) are placed with respect to the head (tail)
   in polar coordinates. The origin in the coordinate system is
   the point where the edge touches the node. The ray of 0 degrees
   goes from the origin back along the edge, parallel to the edge
-  at the origin. 
-  <P> 
+  at the origin.
+  <P>
   The angle, in degrees, specifies the rotation from the 0 degree ray,
   with positive angles moving counterclockwise and negative angles
   moving clockwise.
 
 <DT><A NAME=d:labeldistance HREF=#a:labeldistance><STRONG>labeldistance</STRONG></A>
-<DD>  Multiplicative scaling factor adjusting the distance that 
+<DD>  Multiplicative scaling factor adjusting the distance that
   the headlabel(taillabel) is from the head(tail) node.
   The default distance is 10 points. See <A HREF=#d:labelangle>labelangle</A>
   for more details.
@@ -873,7 +873,7 @@ This field indicates which graph component uses the attribute.
   If not set, defaults to edge's fontcolor.
 
 <DT><A NAME=d:labelfontname HREF=#a:labelfontname><STRONG>labelfontname</STRONG></A>
-<DD>  Font used for headlabel and taillabel. 
+<DD>  Font used for headlabel and taillabel.
   If not set, defaults to edge's fontname.
 
 <DT><A NAME=d:labelfontsize HREF=#a:labelfontsize><STRONG>labelfontsize</STRONG></A>
@@ -892,7 +892,7 @@ This field indicates which graph component uses the attribute.
   this value.
 
 <DT><A NAME=d:labelloc HREF=#a:labelloc><STRONG>labelloc</STRONG></A>
-<DD>  Top/bottom placement of graph and cluster labels. 
+<DD>  Top/bottom placement of graph and cluster labels.
   If the attribute is "t", place label at the top;
   if the attribute is "b", place label at the bottom.
   By default, root
@@ -903,21 +903,21 @@ This field indicates which graph component uses the attribute.
 
 <DT><A NAME=d:labeltarget HREF=#a:labeltarget><STRONG>labeltarget</STRONG></A>
 <DD>  If the edge has a <A HREF=#d:URL>URL</A> or <A HREF=#d:labelURL>labelURL</A>
-  attribute, this attribute determines which window of the 
+  attribute, this attribute determines which window of the
   browser is used
   for the URL attached to the label.
-  Setting it to "_graphviz" will open a new window if it 
+  Setting it to "_graphviz" will open a new window if it
   doesn't already exist, or reuse it if it does.
   If undefined, the value of the <A HREF=#d:target>target</A> is used.
 
 <DT><A NAME=d:labeltooltip HREF=#a:labeltooltip><STRONG>labeltooltip</STRONG></A>
-<DD>  Tooltip annotation attached to label of an edge. 
-  This is used only if the edge has a <A HREF=#d:URL>URL</A> 
+<DD>  Tooltip annotation attached to label of an edge.
+  This is used only if the edge has a <A HREF=#d:URL>URL</A>
   or <A HREF=#d:labelURL>labelURL</A> attribute.
 
 <DT><A NAME=d:landscape HREF=#a:landscape><STRONG>landscape</STRONG></A>
 <DD>  If true, the graph is rendered in landscape mode. Synonymous with
-  <A HREF=#d:rotate><TT>rotate=90</TT></A> or 
+  <A HREF=#d:rotate><TT>rotate=90</TT></A> or
   <A HREF=#d:orientation><TT>orientation=landscape</TT></A>.
 
 <DT><A NAME=d:layer HREF=#a:layer><STRONG>layer</STRONG></A>
@@ -925,12 +925,12 @@ This field indicates which graph component uses the attribute.
 
 <DT><A NAME=d:layers HREF=#a:layers><STRONG>layers</STRONG></A>
 <DD>  Specifies a linearly ordered list of layer names attached to the graph
-  The graph is then output in separate layers. Only those components 
+  The graph is then output in separate layers. Only those components
   belonging to the current output layer appear. For more information,
   see the page <A HREF="http://www.graphviz.org/Documentation/html/layers/">How to use drawing layers (overlays)</A>.
 
 <DT><A NAME=d:layersep HREF=#a:layersep><STRONG>layersep</STRONG></A>
-<DD>  Specifies the separator characters used to split the 
+<DD>  Specifies the separator characters used to split the
   <A HREF=#d:layers>layers </A>attribute into a list of layer names.
 
 <DT><A NAME=d:len HREF=#a:len><STRONG>len</STRONG></A>
@@ -939,13 +939,13 @@ This field indicates which graph component uses the attribute.
 <DT><A NAME=d:levelsgap HREF=#a:levelsgap><STRONG>levelsgap</STRONG></A>
 <DD>  Specifies strictness of level constraints in neato
   when <TT><A HREF=#d:mode>mode</A>="ipsep" or "hier"</TT>.
-  Larger positive values mean stricter constraints, which demand more 
-  separation between levels. On the other hand, negative values will relax 
+  Larger positive values mean stricter constraints, which demand more
+  separation between levels. On the other hand, negative values will relax
   the constraints by allowing some overlap between the levels.
 
 <DT><A NAME=d:lhead HREF=#a:lhead><STRONG>lhead</STRONG></A>
 <DD>  Logical head of an edge. When <A HREF=#d:compound><B>compound</B></A> is true,
-  if <B>lhead</B> is defined and is the name of a cluster containing 
+  if <B>lhead</B> is defined and is the name of a cluster containing
   the real head,
   the edge is clipped to the boundary of the cluster.
   See <A HREF=#h:undir_note>limitation</A>.
@@ -956,7 +956,7 @@ This field indicates which graph component uses the attribute.
 
 <DT><A NAME=d:ltail HREF=#a:ltail><STRONG>ltail</STRONG></A>
 <DD>  Logical tail of an edge. When <A HREF=#d:compound><B>compound</B></A> is true,
-  if <B>ltail</B> is defined and is the name of a cluster 
+  if <B>ltail</B> is defined and is the name of a cluster
   containing the real tail,
   the edge is clipped to the boundary of the cluster.
   See <A HREF=#h:undir_note>limitation</A>.
@@ -965,8 +965,8 @@ This field indicates which graph component uses the attribute.
 <DD>  For graphs, this sets x and y margins of canvas, in inches. If the margin
   is a single double, both margins are set equal to the given value.
   <P>
-  Note that the margin is not part of the drawing but just empty space 
-  left around the drawing. It basically corresponds to a translation of 
+  Note that the margin is not part of the drawing but just empty space
+  left around the drawing. It basically corresponds to a translation of
   drawing, as would be necessary to center a drawing on a page. Nothing
   is actually drawn in the margin. To actually extend the background of
   a drawing, see the <A HREF=#d:pad>pad</A> attribute.
@@ -980,7 +980,7 @@ This field indicates which graph component uses the attribute.
 <DT><A NAME=d:mclimit HREF=#a:mclimit><STRONG>mclimit</STRONG></A>
 <DD>  Multiplicative scale factor used to alter the MinQuit (default = 8)
   and MaxIter (default = 24) parameters used during crossing
-  minimization. These correspond to the 
+  minimization. These correspond to the
   number of tries without improvement before quitting and the
   maximum number of iterations in each pass.
 
@@ -999,7 +999,7 @@ This field indicates which graph component uses the attribute.
   it may cycle.
   <P>
   There are two new, experimental modes in neato, "hier", which adds a top-down
-  directionality similar to the layout used in dot, and "ipsep", which 
+  directionality similar to the layout used in dot, and "ipsep", which
   allows the graph to specify minimum vertical and horizontal distances
   between nodes. (See the <A HREF=#d:sep>sep</A> attribute.)
 
@@ -1010,15 +1010,15 @@ This field indicates which graph component uses the attribute.
   these distances. By default, it uses the length of the shortest path,
   where the length of each edge is given by its <A HREF=#d:len>len</A>
   attribute. If <B>model</B> is <TT>"circuit"</TT>, neato uses the
-  circuit resistance 
+  circuit resistance
   model to compute the distances. This tends to emphasize clusters. If
   <B>model</B> is <TT>"subset"</TT>, neato uses the subset model. This sets the
   edge length to be the number of nodes that are neighbors of exactly one
   of the end points, and then calculates the shortest paths. This helps
-  to separate nodes with high degree. 
+  to separate nodes with high degree.
 
 <DT><A NAME=d:mosek HREF=#a:mosek><STRONG>mosek</STRONG></A>
-<DD>  If Graphviz is built with MOSEK defined, mode=ipsep and mosek=true, 
+<DD>  If Graphviz is built with MOSEK defined, mode=ipsep and mosek=true,
   the Mosek software (www.mosek.com) is use to solve the ipsep constraints.
 
 <DT><A NAME=d:nodesep HREF=#a:nodesep><STRONG>nodesep</STRONG></A>
@@ -1031,8 +1031,8 @@ This field indicates which graph component uses the attribute.
   (shifted by the prescribed <A HREF=#d:margin>margin</A>).
   In record nodes, left-justified
   line will line up with the left side of the enclosing column of fields.
-  If <B>nojustify</B> is <TT>"true"</TT>, multi-line labels will be justified 
-  in the context of itself. For example, if the attribute is set, 
+  If <B>nojustify</B> is <TT>"true"</TT>, multi-line labels will be justified
+  in the context of itself. For example, if the attribute is set,
   the first label line is long, and the second is shorter and left-justified,
   the second will align with the left-most character in the first line,
   regardless of  how large the node might be.
@@ -1069,13 +1069,13 @@ This field indicates which graph component uses the attribute.
 
 <DT><A NAME=d:overlap HREF=#a:overlap><STRONG>overlap</STRONG></A>
 <DD>  Determines if and how node overlaps should be removed. Nodes are first
-  enlarged using the <A HREF=#d:sep><B>sep</B></A> attribute. 
+  enlarged using the <A HREF=#d:sep><B>sep</B></A> attribute.
   If "true" , overlaps are retained.
   If the value is "scale", overlaps are removed by uniformly scaling in x and y.
-  If the value converts to "false", node overlaps are removed by a 
-  Voronoi-based technique. 
+  If the value converts to "false", node overlaps are removed by a
+  Voronoi-based technique.
   If the value is "scalexy", x and y are separately
-  scaled to remove overlaps. 
+  scaled to remove overlaps.
   If the value is "orthoxy" or "orthoyx", overlaps
   are moved by optimizing two constraint problems, one for the x axis and
   one for the y. The suffix indicates which axis is processed first.
@@ -1094,14 +1094,14 @@ This field indicates which graph component uses the attribute.
   If the value is "vpsc", overlap removal is similarly to "ortho", except
   quadratic optimization is used to minimize node displacement.
   <P>
-  If the value is "ipsep", 
-  If the layout is done by neato with <A HREF=#d:mode>mode</A>="ipsep", 
+  If the value is "ipsep",
+  If the layout is done by neato with <A HREF=#d:mode>mode</A>="ipsep",
   then one can use <TT>overlap=ipsep</TT>.
   In this case, the overlap removal constraints are
   incorporated into the layout algorithm itself.
   N.B. At present, this only supports one level of clustering.
   <P>
-  Except for fdp, the layouts assume <TT>overlap="true"</TT> as the default. 
+  Except for fdp, the layouts assume <TT>overlap="true"</TT> as the default.
   Fdp first uses a number of passes using built-in, force-directed technique
   to remove overlaps. Thus, fdp accepts <B>overlap</B> with an integer
   prefix followed by a colon, specifying the number of tries. If there is
@@ -1125,8 +1125,8 @@ This field indicates which graph component uses the attribute.
 
 <DT><A NAME=d:pack HREF=#a:pack><STRONG>pack</STRONG></A>
 <DD>  This is true if the value of pack is "true" (case-insensitive) or a
-  non-negative integer. If true, each connected component of the graph is 
-  laid out separately, and then the graphs are packed tightly. 
+  non-negative integer. If true, each connected component of the graph is
+  laid out separately, and then the graphs are packed tightly.
   If pack has an integral value, this is used as the size,
   in <A HREF=#points>points</A>, of
   a margin around each part; otherwise, a default margin of 8 is used.
@@ -1144,11 +1144,11 @@ This field indicates which graph component uses the attribute.
   set <B>pack=true</B>.
 
 <DT><A NAME=d:pad HREF=#a:pad><STRONG>pad</STRONG></A>
-<DD>  The pad attribute specifies how much, in inches, to extend the 
+<DD>  The pad attribute specifies how much, in inches, to extend the
   drawing area around the minimal area needed to draw the graph.
-  If the pad is a single double, both the x and y pad values are set 
+  If the pad is a single double, both the x and y pad values are set
   equal to the given value. This area is part of the
-  drawing and will be filled with the background color, if appropriate. 
+  drawing and will be filled with the background color, if appropriate.
   <P>
   Normally, a small pad is used for aesthetic reasons, especially when
   a background color is used, to avoid having nodes and edges abutting
@@ -1174,7 +1174,7 @@ This field indicates which graph component uses the attribute.
 
 <DT><A NAME=d:pencolor HREF=#a:pencolor><STRONG>pencolor</STRONG></A>
 <DD>  Color used to draw the bounding box around a cluster.
-  If <B>pencolor</B> is not defined, <A HREF=#d:color><B>color</B></A> is 
+  If <B>pencolor</B> is not defined, <A HREF=#d:color><B>color</B></A> is
   used. If this is not defined, <A HREF=#d:bgcolor>bgcolor</A> is used.
   If this is not defined, the default is used.
   <P>
@@ -1186,9 +1186,9 @@ This field indicates which graph component uses the attribute.
 <DD>  Specifies the width of the pen, in points, used to draw lines and curves,
   including the boundaries of edges and clusters. The value is inherited
   by subclusters.
-  It has no effect on text. 
+  It has no effect on text.
   <P>
-  Previous to 31 January 2008, the effect of <TT>penwidth=<I>W</I></TT> 
+  Previous to 31 January 2008, the effect of <TT>penwidth=<I>W</I></TT>
   was achieved by including <TT>setlinewidth(<I>W</I>)</TT>
   as part of a <A HREF=#d:style><TT>style</TT></A> specification.
   If both are used, <TT>penwidth</TT> will be used.
@@ -1196,7 +1196,7 @@ This field indicates which graph component uses the attribute.
 <DT><A NAME=d:peripheries HREF=#a:peripheries><STRONG>peripheries</STRONG></A>
 <DD>  Set number of peripheries used in polygonal shapes and cluster
   boundaries. Note that
-  <A HREF=shapes.html#epsf>user-defined shapes</A> are treated as a 
+  <A HREF=shapes.html#epsf>user-defined shapes</A> are treated as a
   form of box shape, so the default
   peripheries value is 1 and the user-defined shape will be drawn in
   a bounding rectangle. Setting <TT>peripheries=0</TT> will turn this off.
@@ -1208,11 +1208,11 @@ This field indicates which graph component uses the attribute.
   in the pos attribute itself (cf. the <A HREF=#d:point>point</A> type).
   <P>
   <B>Note:</B> Due to an artifact of the implementation, final coordinates
-  are translated to the origin. Thus, if you look at the output coordinates 
-  given in the (x)dot or plain format, pinned nodes will not have the same  
-  output coordinates as were given on input. If this is important, a 
+  are translated to the origin. Thus, if you look at the output coordinates
+  given in the (x)dot or plain format, pinned nodes will not have the same
+  output coordinates as were given on input. If this is important, a
   simple workaround is to maintain the coordinates of a pinned node. The vector
-  difference between the old and new coordinates will give the translation, 
+  difference between the old and new coordinates will give the translation,
   which can then be subtracted from all of the appropriate coordinates.
 
 <DT><A NAME=d:pos HREF=#a:pos><STRONG>pos</STRONG></A>
@@ -1228,7 +1228,7 @@ This field indicates which graph component uses the attribute.
   When the <A HREF=command.html#d:n>-n</A> command line flag is used with
   neato, it is assumed the positions have been set by one of the layout
   programs, and are therefore in points. Thus, <TT>neato -n</TT> can accept
-  input correctly without requiring a <TT>-s</TT> flag and, in fact, 
+  input correctly without requiring a <TT>-s</TT> flag and, in fact,
   ignores any such flag.
 
 <DT><A NAME=d:quantum HREF=#a:quantum><STRONG>quantum</STRONG></A>
@@ -1237,18 +1237,18 @@ This field indicates which graph component uses the attribute.
 
 <DT><A NAME=d:rank HREF=#a:rank><STRONG>rank</STRONG></A>
 <DD>  Rank constraints on the nodes in a subgraph.
-  If <B>rank</B>="same", all nodes are placed on the same rank. 
-  If <B>rank</B>="min", all nodes are placed on the minimum rank. 
+  If <B>rank</B>="same", all nodes are placed on the same rank.
+  If <B>rank</B>="min", all nodes are placed on the minimum rank.
   If <B>rank</B>="source", all nodes are placed on the minimum rank, and
   the only nodes on the minimum rank belong to some subgraph whose
-  rank attribute is "source" or "min". 
+  rank attribute is "source" or "min".
   Analogous criteria hold for <B>rank</B>="max" and <B>rank</B>="sink".
   (Note: the
   minimum rank is topmost or leftmost, and the maximum rank is bottommost
   or rightmost.)
 
 <DT><A NAME=d:rankdir HREF=#a:rankdir><STRONG>rankdir</STRONG></A>
-<DD>  Sets direction of graph layout. For example, if <B>rankdir</B>="LR", 
+<DD>  Sets direction of graph layout. For example, if <B>rankdir</B>="LR",
   and barring cycles, an edge <CODE>T -> H;</CODE> will go
   from left to right. By default, graphs are laid out from top to bottom.
   <P>
@@ -1265,14 +1265,14 @@ This field indicates which graph component uses the attribute.
   In twopi, specifies radial separation of concentric circles.
 
 <DT><A NAME=d:ratio HREF=#a:ratio><STRONG>ratio</STRONG></A>
-<DD>  Sets the aspect ratio (drawing height/drawing width) for the drawing. 
+<DD>  Sets the aspect ratio (drawing height/drawing width) for the drawing.
   Note that this is adjusted before
   the <A HREF=#d:size><B>size</B></A> attribute constraints are enforced.
   <P>
   If <B>ratio</B> is numeric, it is taken as the desired aspect ratio.
-  Then, if the actual aspect ratio is less than the desired ratio, 
+  Then, if the actual aspect ratio is less than the desired ratio,
   the drawing height is scaled up to achieve the
-  desired ratio; if the actual ratio is greater than that desired ratio, 
+  desired ratio; if the actual ratio is greater than that desired ratio,
   the drawing width is scaled up.
   <P>
   If <B>ratio</B> = "fill" and the <A HREF=#d:size><B>size</B></A>
@@ -1280,13 +1280,13 @@ This field indicates which graph component uses the attribute.
   and y, so that the final drawing exactly fills the specified size.
   <P>
   If <B>ratio</B> = "compress" and the <A HREF=#d:size><B>size</B></A>
-  attribute is set, dot attempts to compress the initial layout to fit 
-  in the given size. This achieves a tighter packing of nodes but 
+  attribute is set, dot attempts to compress the initial layout to fit
+  in the given size. This achieves a tighter packing of nodes but
   reduces the balance and symmetry. This feature only works in dot.
   <P>
   If <B>ratio</B> = "expand", the <A HREF=#d:size><B>size</B></A>
   attribute is set, and both the width and the height of the graph are
-  less than the value in  <A HREF=#d:size><B>size</B></A>, node positions are scaled 
+  less than the value in  <A HREF=#d:size><B>size</B></A>, node positions are scaled
   uniformly until at least
   one dimension fits <A HREF=#d:size><B>size</B></A> exactly.
   Note that this is distinct from using <A HREF=#d:size><B>size</B></A> as the
@@ -1315,7 +1315,7 @@ This field indicates which graph component uses the attribute.
 <DD>  This is a synonym for the <A HREF=#d:dpi>dpi</A> attribute.
 
 <DT><A NAME=d:root HREF=#a:root><STRONG>root</STRONG></A>
-<DD>  This specifies nodes to be used as the center of the 
+<DD>  This specifies nodes to be used as the center of the
   layout and the root of the generated spanning tree. As a graph attribute,
   this gives the name of the node. As a node attribute (circo only), it
   specifies that the node should be used as a central node. In twopi,
@@ -1338,7 +1338,7 @@ This field indicates which graph component uses the attribute.
   See <A HREF=#h:undir_note>limitation</A>.
 
 <DT><A NAME=d:samplepoints HREF=#a:samplepoints><STRONG>samplepoints</STRONG></A>
-<DD>  If the input graph defines the <A HREF=#d:vertices><B>vertices</B></A> 
+<DD>  If the input graph defines the <A HREF=#d:vertices><B>vertices</B></A>
   attribute, and output is dot or xdot, this gives
   the number of points used for a node whose shape is a circle or ellipse.
   It plays the same role in neato, when adjusting the layout to avoid
@@ -1354,7 +1354,7 @@ This field indicates which graph component uses the attribute.
   a minimal non-zero distance between nodes.
   If unset but <A HREF=#d:esep>esep</A> is defined, <tt>sep</tt> will be
   set to <tt>esep/0.8</tt>. If <tt>esep</tt> is unset, the default value
-  is used. 
+  is used.
   <P>
   When <A HREF=#d:overlap>overlap</A>="ipsep" or "vpsc",
   <tt>sep</tt> gives a minimum distance, in inches, to be left between nodes.
@@ -1365,17 +1365,17 @@ This field indicates which graph component uses the attribute.
 <DD>  Set the shape of a node.
 
 <DT><A NAME=d:shapefile HREF=#a:shapefile><STRONG>shapefile</STRONG></A>
-<DD>  (Deprecated) If defined, shapefile specifies a file containing user-supplied node content. 
-  The <A HREF=#d:shape><B>shape</B></A> of the node is set to box. 
+<DD>  (Deprecated) If defined, shapefile specifies a file containing user-supplied node content.
+  The <A HREF=#d:shape><B>shape</B></A> of the node is set to box.
   The image in the shapefile must be
-  rectangular. The image formats supported as well as the precise semantics of 
+  rectangular. The image formats supported as well as the precise semantics of
   how the file is used depends on the
   <A HREF="http://www.graphviz.org/doc/info/output.html">output format</A>.  For further details, see
   <A HREF=http://www.graphviz.org/Documentation/html/shapehowto.html#ext_image>External PostScript files</A>.
   <P>
-  There is one exception to this usage. 
+  There is one exception to this usage.
   If <B>shape</B> is set to "epsf", shapefile gives
-  a filename containing a definition of the node in PostScript. 
+  a filename containing a definition of the node in PostScript.
   The graphics defined must be contain all of the
   node content, including any desired boundaries.
   For further details, see
@@ -1391,10 +1391,10 @@ This field indicates which graph component uses the attribute.
 
 <DT><A NAME=d:size HREF=#a:size><STRONG>size</STRONG></A>
 <DD>  Maximum width and height of drawing, in inches.
-  If defined and the drawing is too large, the drawing is uniformly 
-  scaled down so that it fits within the given size. 
+  If defined and the drawing is too large, the drawing is uniformly
+  scaled down so that it fits within the given size.
   <P>
-  If <TT>size</TT> ends in an exclamation point (<TT>!</TT>), 
+  If <TT>size</TT> ends in an exclamation point (<TT>!</TT>),
   then it is taken to be
   the desired size. In this case, if both dimensions of the drawing are
   less than <TT>size</TT>, the drawing is scaled up uniformly until at
@@ -1462,10 +1462,10 @@ This field indicates which graph component uses the attribute.
   See <A HREF=#h:undir_note>limitation</A>.
 
 <DT><A NAME=d:tailtarget HREF=#a:tailtarget><STRONG>tailtarget</STRONG></A>
-<DD>  If the edge has a <A HREF=#d:tailURL>tailURL</A>, 
-  this attribute determines which window of the 
+<DD>  If the edge has a <A HREF=#d:tailURL>tailURL</A>,
+  this attribute determines which window of the
   browser is used
-  for the URL. Setting it to "_graphviz" will open a new window if it 
+  for the URL. Setting it to "_graphviz" will open a new window if it
   doesn't already exist, or reuse it if it does.
   If undefined, the value of the <A HREF=#d:target>target</A> is used.
 
@@ -1474,7 +1474,7 @@ This field indicates which graph component uses the attribute.
   if the edge has a <A HREF=#d:tailURL>tailURL</A> attribute.
 
 <DT><A NAME=d:target HREF=#a:target><STRONG>target</STRONG></A>
-<DD>  If the object has a URL, this attribute determines which window 
+<DD>  If the object has a URL, this attribute determines which window
   of the browser is used for the URL.
   See <A HREF="http://www.w3.org/TR/html401/present/frames.html#adef-target">W3C documentation</A>.
 
@@ -1490,9 +1490,9 @@ This field indicates which graph component uses the attribute.
 <DD>  If set explicitly to true or false, the value determines whether or not
   internal bitmap rendering relies on a truecolor color model or uses
   a color palette.
-  If the attribute is unset, truecolor is not used 
+  If the attribute is unset, truecolor is not used
   unless there is a <A HREF=#d:shapefile>shapefile</A> property
-  for some node in the graph. 
+  for some node in the graph.
   The output model will use the input model when possible.
   <P>
   Use of color palettes results in less memory usage during creation of the
@@ -1500,7 +1500,7 @@ This field indicates which graph component uses the attribute.
   <P>
   Usually, the only time it is necessary to specify the truetype model
   is if the graph uses more than 256 colors.
-  However, if one uses <A HREF=#d:bgcolor>bgcolor</A>=transparent with 
+  However, if one uses <A HREF=#d:bgcolor>bgcolor</A>=transparent with
   a color palette, font
   antialiasing can show up as a fuzzy white area around characters.
   Using <B>truecolor</B>=true avoids this problem.
@@ -1509,7 +1509,7 @@ This field indicates which graph component uses the attribute.
 <DD>  If the input graph defines this attribute, the node is polygonal,
   and output is dot or xdot, this attribute provides the
   coordinates of the vertices of the node's polygon, in inches.
-  If the node is an ellipse or circle, the 
+  If the node is an ellipse or circle, the
   <A HREF=#d:samplepoints>samplepoints</A> attribute affects
   the output.
 
@@ -1536,15 +1536,15 @@ This field indicates which graph component uses the attribute.
 
 <DT><A NAME=d:z HREF=#a:z><STRONG>z</STRONG></A>
 <DD>  Provides z coordinate value for 3D layouts and displays. If the
-  graph has <A HREF=#d:dim><B>dim</B></A> set to 3 (or more), 
+  graph has <A HREF=#d:dim><B>dim</B></A> set to 3 (or more),
   neato will use a node's <B>z</B> value
-  for the z coordinate of its initial position if 
+  for the z coordinate of its initial position if
   its <A HREF=#d:pos><B>pos</B></A> attribute is also defined.
   <P>
   Even if no <B>z</B> values are specified in the input, it is necessary to
   declare a <B>z</B> attribute for nodes, e.g, using <TT>node[z=""]</TT>
   in order to get z values on output.
-  Thus, setting <TT>dim=3</TT> but not declaring <B>z</B> will 
+  Thus, setting <TT>dim=3</TT> but not declaring <B>z</B> will
   cause <TT>neato -Tvrml</TT> to
   layout the graph in 3D but project the layout onto the xy-plane
   for the rendering. If the <B>z</B> attribute is declared, the final rendering
@@ -1562,7 +1562,7 @@ the given types.
         <TD>"inv"<TD><IMG SRC="a_inv.gif"></TR>
     <TR><TD>"dot"<TD><IMG SRC="a_dot.gif">
         <TD>"invdot"<TD><IMG SRC="a_invdot.gif"></TR>
-    <TR><TD>"odot"<TD><IMG SRC="a_odot.gif">   
+    <TR><TD>"odot"<TD><IMG SRC="a_odot.gif">
         <TD>"invodot"<TD><IMG SRC="a_invodot.gif"></TR>
     <TR><TD>"none"<TD><IMG SRC="a_none.gif">
         <TD>"tee"<TD><IMG SRC="a_tee.gif"></TR>
@@ -1577,7 +1577,7 @@ the given types.
     <TR><TD>"open"<TD><IMG SRC="a_open.gif">
         <TD>"halfopen"<TD><IMG SRC="a_halfopen.gif"></TR>
     <TR><TD>"vee"<TD><IMG SRC="a_open.gif">
-    </TABLE>
+  </TABLE>
   <P>
   These are the basic set of backward-compatible arrow shapes. In addition,
   there is a grammar of <A HREF=arrows.html>arrow shapes</A>
@@ -1609,19 +1609,19 @@ the given types.
    digits, and can be separated by whitespace. HSV colors have the form of 3
    numbers between 0 and 1, separated by whitespace or commas.
   <P>
-  String-valued color specifications are case-insensitive and interpreted 
-  in the context of the current color scheme, as specified by the 
+  String-valued color specifications are case-insensitive and interpreted
+  in the context of the current color scheme, as specified by the
   <A HREF=#d:colorscheme>colorscheme</A> attribute. If this is undefined,
   the X11 naming scheme will be used.
   An initial <TT>"/"</TT> character can be used to override the use of
   the <TT>colorscheme</TT> attribute. In particular, a single initial
   <TT>"/"</TT> will cause the string to be evaluated using the default
-  X11 naming. If the color value has the form <TT>"/ssss/yyyy"</TT>, 
+  X11 naming. If the color value has the form <TT>"/ssss/yyyy"</TT>,
   the name <TT>yyyy</TT> is interpreted using the schema <TT>ssss</TT>.
-  If the color scheme name is empty, i.e., the color has the 
+  If the color scheme name is empty, i.e., the color has the
   form <TT>"//yyyy"</TT>, the <TT>colorscheme</TT> attribute is used.
   Thus, the forms <TT>"yyyy"</TT> and <TT>"//yyyy"</TT> are
-  equivalent. 
+  equivalent.
   <P>At present, Graphviz recognizes the default color scheme <TT>X11</TT>,
   and the <A HREF="http://www.personal.psu.edu/faculty/c/a/cab38/ColorBrewer/ColorBrewer_intro.html">Brewer color schemes</A>. Please note that Brewer
   color schemes are covered by this <A HREF=colors.html#brewer_license>license</A>.
@@ -1636,15 +1636,15 @@ the given types.
       <TR><TD align=center bgcolor=#a0522d>Sienna<TD>"#a0522d"<TD>"0.051 0.718 0.627"<TD>"sienna"</TR>
     </TABLE>
   <P>
-   Note that some output formats, e.g., <A HREF="output.html#a:mif">mif</A>, 
+   Note that some output formats, e.g., <A HREF="output.html#a:mif">mif</A>,
    only support a limited number of specific colors.
   <P>
    The string value <TT>transparent</TT> can be used to indicate no color.
    This is only available in the output formats
    ps, svg, fig, vmrl, and the bitmap formats. It can be used whenever a
-   color is needed but is most useful with 
+   color is needed but is most useful with
    the <A HREF=#d:bgcolor>bgcolor</A> attribute.
-   Usually, the same effect can be achieved by setting 
+   Usually, the same effect can be achieved by setting
    <A HREF=#d:style>style</A> to <TT>invis</TT>.
 
 <DT><A NAME=k:colorList><STRONG>colorList</STRONG></A>
@@ -1660,7 +1660,7 @@ the given types.
         <TD>"none"<TD><IMG SRC="nohead.gif"></TR>
     </TABLE>
   For undirected edges <CODE>T -- H;</CODE>, one of the nodes, usually
-  the righthand one, is treated as the head for the purpose of 
+  the righthand one, is treated as the head for the purpose of
   interpreting "forward" and "back".
 
 <DT><A NAME=k:escString><STRONG>escString</STRONG></A>
@@ -1668,26 +1668,26 @@ the given types.
   to the context.
   For node attributes, the substring "\N" is replaced by the name of the node,
   and the substring "\G" by the name of the graph.
-  For graph or cluster attributes, the substring "\G" is replaced by the 
+  For graph or cluster attributes, the substring "\G" is replaced by the
   name of the graph or cluster.
   For edge attributes, the substring "\E" is replaced by the name of the edge,
   the substring "\G" is replaced by the name of the graph or cluster,
-  and the substrings "\T" and "\H" by the names of 
-  the tail and head nodes, respectively. 
+  and the substrings "\T" and "\H" by the names of
+  the tail and head nodes, respectively.
   The name of an edge is the string formed from the name of the
   tail node, the appropriate edge operator ("--" or "->") and the name of the
-  head node. 
+  head node.
   <P>
-  In addition, if the associated attribute is 
+  In addition, if the associated attribute is
   <A HREF=#a:label>label</A>,
-  <A HREF=#a:headlabel>headlabel</A> or <A HREF=#a:taillabel>taillabel</A>, 
+  <A HREF=#a:headlabel>headlabel</A> or <A HREF=#a:taillabel>taillabel</A>,
   the escape sequences "\n", "\l" and "\r"
   divide the label into lines, centered, left-justified, and right-justified,
   respectively.
 
 <DT><A NAME=k:layerList><STRONG>layerList</STRONG></A>
-<DD>list of strings separated by characters from the 
-  <A HREF=#a:layersep>layersep</A> attribute (by default, colons, 
+<DD>list of strings separated by characters from the
+  <A HREF=#a:layersep>layersep</A> attribute (by default, colons,
   tabs or spaces), defining <A HREF=#a:layer>layer</A>
   names and implicitly numbered 1,2,...
 
@@ -1699,7 +1699,7 @@ the given types.
   by the <A HREF=#a:layersep>layersep</A> attribute.
 
 <DT><A NAME=k:lblString><STRONG>lblString</STRONG></A>
-<DD>an <A HREF=#k:escString>escString</A> 
+<DD>an <A HREF=#k:escString>escString</A>
   or an <A HREF=shapes.html#html>HTML label</A>.
 
 <DT><A NAME=k:outputMode><STRONG>outputMode</STRONG></A>
@@ -1732,7 +1732,7 @@ the given types.
 
 <DT><A NAME=k:pagedir><STRONG>pagedir</STRONG></A>
 <DD>"BL", "BR", "TL", "TR", "RB", "RT", "LB", "LT".
-  These specify the 8 row or column major orders for traversing a 
+  These specify the 8 row or column major orders for traversing a
   rectangular array, the first character corresponding to the major
   order and the second to the minor order. Thus, for "BL", the
   major order is from bottom to top, and the minor order is from left
@@ -1741,8 +1741,8 @@ the given types.
   until the topmost row is traversed.
 
 <DT><A NAME=k:point><STRONG>point</STRONG></A>
-<DD>"%f,%f"('!') representing the point (x,y). The 
-  optional '!' indicates the 
+<DD>"%f,%f"('!') representing the point (x,y). The
+  optional '!' indicates the
   node position should not change (input-only).
   <P>
   If <A HREF=#d:dim>dim</A> is 3 or more, <B>point</B> may also have
@@ -1759,20 +1759,20 @@ the given types.
   It has the form <TT><I>portname</I>[:<I>compass_point</I>]</TT>
   or <TT><I>compass_point</I></TT>.
   If the first form is used, the corresponding node must either have
-  <A HREF=shapes.html#record>record</A> shape with one of its fields 
+  <A HREF=shapes.html#record>record</A> shape with one of its fields
   having the given <I>portname</I>,
-  or have an <A HREF=shapes.html#html>HTML-like label</A>, one of 
+  or have an <A HREF=shapes.html#html>HTML-like label</A>, one of
   whose components has a <TT>PORT</TT> attribute set to <I>portname</I>.
   In this case, the edge is aimed for the center of the corresponding
   field.
   <P>
-  If a compass point is used, it must have the form 
+  If a compass point is used, it must have the form
   <TT>"n","ne","e","se","s","sw","w","nw"</TT>. This modifies the edge
   placement to aim for the corresponding compass point on the port or,
   in the second form where no <I>portname</I> is supplied, on the node
-  itself. 
+  itself.
   <P>
-  This attribute can be attached to an edge using the 
+  This attribute can be attached to an edge using the
   <A HREF=#k:headport>headport</A> and
   <A HREF=#k:tailport>tailport</A> attributes, or as part of the
   edge description as in
@@ -1801,10 +1801,10 @@ the given types.
    (urx,ury).
 
 <DT><A NAME=k:shape><STRONG>shape</STRONG></A>
-<DD>A string specifying the <A HREF=shapes.html>shape</A> of a node. 
+<DD>A string specifying the <A HREF=shapes.html>shape</A> of a node.
   There are three
-  main types of shapes : 
-  <A HREF=shapes.html#polygon>polygon-based</A>, 
+  main types of shapes :
+  <A HREF=shapes.html#polygon>polygon-based</A>,
   <A HREF=shapes.html#record>record-based</A> and
   <A HREF=shapes.html#epsf>user-defined</A>.
 
@@ -1816,31 +1816,31 @@ the given types.
    <TR><TD ALIGN=right>and endp<TD>=<TD>"e,%d,%d"</TR>
    <TR><TD ALIGN=right>and startp<TD>=<TD>"s,%d,%d"</TR>
   </TABLE>
-   If a spline has points p<SUB>1</SUB> p<SUB>2</SUB> p<SUB>3</SUB> ... p<SUB>n</SUB>, (n = 1 (mod 3)), the points
+  If a spline has points p<SUB>1</SUB> p<SUB>2</SUB> p<SUB>3</SUB> ... p<SUB>n</SUB>, (n = 1 (mod 3)), the points
    correspond to the control points of a B-spline from p<SUB>1</SUB> to p<SUB>n</SUB>. If startp
    is given, it touches one node of the edge, and the arrowhead
    goes from p<SUB>1</SUB> to startp. If startp is not given, p<SUB>1</SUB> touches a node.
    Similarly for p<SUB>n</SUB>  and endp.
 
 <DT><A NAME=k:startType><STRONG>startType</STRONG></A>
-<DD>has the syntax <TT>[<I>style</I>][<I>seed</I>]</TT>. 
+<DD>has the syntax <TT>[<I>style</I>][<I>seed</I>]</TT>.
   <P>
   If <I>style</I> is present, it must be one of the strings <TT>"regular"</TT>,
-  <TT>"self"</TT>, or <TT>"random"</TT>. In the first case, the nodes are 
-  placed regularly about a circle. In the second case, 
+  <TT>"self"</TT>, or <TT>"random"</TT>. In the first case, the nodes are
+  placed regularly about a circle. In the second case,
   an abbreviated version of neato is run to obtain the initial layout.
   In the last case, the nodes are placed randomly in a unit square.
   <P>
   If <I>seed</I> is present, it specifies a seed for the random number
   generator. If <I>seed</I> is a positive number, this is used as the
-  seed. If it is anything else, 
+  seed. If it is anything else,
   the current time, and possibly the process id, is used to pick a seed,
   thereby making the choice more random. In this case, the seed value
   is stored in the graph.
   <P>
   If the value is just <TT>"random"</TT>, a time-based seed is chosen.
   <P>
-  Note that input positions, specified by a node's 
+  Note that input positions, specified by a node's
   <A HREF=#d:pos>pos</A>
   attribute, are only used when the style is <TT>"random"</TT>.
 
@@ -1854,9 +1854,9 @@ the given types.
   Note that whitespace characters are ignored, except for names which
   can contain them. A
   name cannot contain any comma, or left or right parenthesis, and it cannot
-  begin with a whitespace character. 
+  begin with a whitespace character.
   <P>
-  At present, the recognized style names are 
+  At present, the recognized style names are
   "dashed", "dotted", "solid", "invis" and "bold" for nodes and edges,
   and "filled", "diagonals" and "rounded" for nodes only.
   The styles "filled" and "rounded" are recognized for clusters.
@@ -1868,7 +1868,7 @@ the given types.
   used for more control over the width of node borders and edges than is
   allowed by <TT>bold</TT>. This style value takes an argument, specifying the
   width of the line in <A HREF=#points>points</A>. For example, <TT>style="bold"</TT> is
-  equivalent to <TT>style="setlinewidth(2)"</TT>. 
+  equivalent to <TT>style="setlinewidth(2)"</TT>.
   <B>The use of <TT>setlinewidth</TT> is deprecated; one should use the
   <A HREF=#d:penwidth><TT>penwidth</TT></A> attribute instead.</B>
 
@@ -1882,7 +1882,7 @@ the given types.
   The optional Z is the zoom factor, i.e., the image in the original layout will be
   W/Z by H/Z points in size. By default, Z is 1.
   The optional last part is either a pair (x,y) giving a position in the original layout of the
-  graph, in 
+  graph, in
   <A HREF=#points>points</A>, of the center of the viewport, or the name N
   of a node whose center should used as the focus.
   By default, the focus is the center of the graph bounding box, i.e.,
index f70a41ded84092317ddc64e2cb9188cdfdc50921..e4966f23a4b6bbec6157c4c6144404596fe58954 100644 (file)
@@ -14,13 +14,13 @@ The output format is specified with the <STRONG>-T</STRONG><I>lang</I>
 flag on the <A HREF=command.html>command line</A>, where <I>lang</I>
 is one of the parameters listed below.
 <P>
-The formats actually available in a given Graphviz system depend on 
+The formats actually available in a given Graphviz system depend on
 how the system was built and the presence of additional libraries.
 To see what formats <b>dot</b> supports, run <TT>dot -T?</TT>.
-See the <A HREF=command.html#d.T> description of the -T</A> 
+See the <A HREF=command.html#d.T> description of the -T</A>
 flag for additional information.
 <P>
-Note that the internal coordinate system has the origin 
+Note that the internal coordinate system has the origin
 in the lower left corner.
 Thus, positions in the
 <A HREF=#d:canon>canon</A>,
@@ -110,412 +110,412 @@ formats need to be interpreted in this manner.
 <H2>Format Descriptions</H2>
 <DL>
 <DT><A NAME=d:bmp HREF=#a:bmp><STRONG>bmp</STRONG></A>
-<DD>  Outputs images in the Windows <A HREF="http://en.wikipedia.org/wiki/Bitmap">BMP</A> format.
+<DD>Outputs images in the Windows <A HREF="http://en.wikipedia.org/wiki/Bitmap">BMP</A> format.
 
 <DT><A NAME=d:canon HREF=#a:canon><STRONG>canon</STRONG></A>
 ,<DT><A NAME=d:dot HREF=#a:dot><STRONG>dot</STRONG></A>
 ,<DT><A NAME=d:xdot HREF=#a:xdot><STRONG>xdot</STRONG></A>
-<DD>  These formats produce output in the 
-  <A HREF=lang.html>dot language</A>.
-  Using <B>canon</B> produces a prettyprinted version of the input, 
-  with no layout performed.
-  <P>
-  The <B>dot</B> option corresponds to attributed dot output, 
-  and is the default output format.
-  It reproduces the input, along with layout information for the graph.
-  In particular, a <A HREF=attrs.html#d:bb>bb</A> attribute is
-  attached to the graph, specifying the bounding box of the drawing.
-  If the graph has a label, its position is specified by the 
-  <A HREF=attrs.html#d:lp>lp</A> attribute.
-  <P>
-  Each node gets <A HREF=attrs.html#d:pos>pos</A>,
-  <A HREF=attrs.html#d:width>width</A> and 
-  <A HREF=attrs.html#d:height>height</A> attributes. If the node is a record,
-  the record rectangles are given in the 
-  <A HREF=attrs.html#d:rects>rects</A> attribute.
-  If the node is a polygon and the 
-  <A HREF=attrs.html#d:vertices>vertices</A> attribute is defined, this
-  attribute contains the vertices of the node. 
-  <P>
-  Every edge is
-  assigned a <A HREF=attrs.html#d:pos>pos</A> attribute, 
-  and if the edge has a label, the label position
-  is given in <A HREF=attrs.html#d:lp>lp</A>.
-  <P>
-  The <B>xdot</B> format extends the
-  <B>dot</B> format by providing much more detailed information about
-  how graph components are drawn. It relies on additional attributes
-  for nodes, edges and graphs.
-  <P>
-  The format is preliminary; comments and
-  suggestions for better representations are welcome.
-  To allow for changes in the format, Graphviz attaches the attribute
-  <TT>xdotversion</TT> to the graph.
-  <P>
-  At present, additional drawing attributes are only attached to nodes
-  and edges. There are six new attributes:
-  <SPACER TYPE=VERTICAL size=10>
-  <TABLE  border bgcolor=beige>
-  <TR><TD>_draw_<TD colspan=2>Drawing operations
-  <TR><TD>_ldraw_<TD colspan=2>Label drawing
-  <TR><TD>_hdraw_<TD>Head arrowhead<TD>Edge only
-  <TR><TD>_tdraw_<TD>Tail arrowhead<TD>Edge only
-  <TR><TD>_hldraw_<TD>Head label<TD>Edge only
-  <TR><TD>_tldraw_<TD>Tail label<TD>Edge only
-  </TABLE>
-  <P>
-  The value of these attributes consists of the concatenation of some
-  (multi-)set of the following 12 rendering or attribute operations.
-  (The number is parentheses gives the xdot version when the operation
-  was added to the format. If no version number is given, the operation
-  was in the original specification.)
-  <SPACER TYPE=VERTICAL size=10>
-  <TABLE border bgcolor=beige>
-  <TR><TD>E x<sub>0</sub> y<sub>0</sub> w h
-    <TD>Filled ellipse ((x-x<sub>0</sub>)/w)<sup>2</sup> + ((y-y<sub>0</sub>)/h)<sup>2</sup> = 1
-  <TR><TD>e x<sub>0</sub> y<sub>0</sub> w h
-    <TD>Unfilled ellipse ((x-x<sub>0</sub>)/w)<sup>2</sup> + ((y-y<sub>0</sub>)/h)<sup>2</sup> = 1
-  <TR><TD>P n x<sub>1</sub> y<sub>1</sub> ... x<sub>n</sub> y<sub>n</sub>
-    <TD>Filled polygon using the given n points
-  <TR><TD>p n x<sub>1</sub> y<sub>1</sub> ... x<sub>n</sub> y<sub>n</sub>
-    <TD>Unfilled polygon using the given n points
-  <TR><TD>L n x<sub>1</sub> y<sub>1</sub> ... x<sub>n</sub> y<sub>n</sub>
-    <TD>Polyline using the given n points
-  <TR><TD>B n x<sub>1</sub> y<sub>1</sub> ... x<sub>n</sub> y<sub>n</sub>
-    <TD>B-spline using the given n control points
-  <TR><TD>b n x<sub>1</sub> y<sub>1</sub> ... x<sub>n</sub> y<sub>n</sub>
-    <TD>Filled B-spline using the given n control points (1.1)
-  <TR><TD>T x y j w n -<I>c<sub>1</sub>c<sub>2</sub>...c<sub>n</sub><I>
-    <TD>Text drawn using the baseline point (x,y). The text consists of the
-    n characters following '-'. The text should be left-aligned (centered,
-    right-aligned) on the point if j is -1 (0, 1), respectively. The value
-    w gives the width of the text as computed by the library.
-  <TR><TD>C n -<I>c<sub>1</sub>c<sub>2</sub>...c<sub>n</sub><I>
-    <TD>Set fill color. The color value consists of the
-    n characters following '-'. (1.1)
-  <TR><TD>c n -<I>c<sub>1</sub>c<sub>2</sub>...c<sub>n</sub><I>
-    <TD>Set pen color. The color value consists of the
-    n characters following '-'. (1.1)
-  <TR><TD>F s n -<I>c<sub>1</sub>c<sub>2</sub>...c<sub>n</sub><I>
-    <TD>Set font. The font size is s points. The font name consists of the
-    n characters following '-'. (1.1)
-  <TR><TD>S n -<I>c<sub>1</sub>c<sub>2</sub>...c<sub>n</sub><I>
-    <TD>Set style attribute. The style value consists of the
-    n characters following '-'. The syntax of the value is the same as
-    specified for a <B>styleItem</B> in <A HREF=attrs.html#k:style>style</A>. (1.1)
-  <TR><TD>I x y w h n -<I>c<sub>1</sub>c<sub>2</sub>...c<sub>n</sub><I>
-    <TD>Externally-specified image drawn in the box with lower left
-    corner (x,y) and upper right corner (x+w,y+h). The name of the image
-    consists of the n characters following '-'. This is usually a bitmap 
-    image. Note that the image size, even when converted from pixels to
-    points, might be different from the required size (w,h). It is 
-    assumed the renderer will perform the necessary scaling. (1.2)
-  </TABLE>
-  <SPACER TYPE=VERTICAL size=10>
-  In handling alignment, the application may want to recompute the
-  string width using its own rendering primitives.
-  <P>
-  The text operation is only used in the label attributes. Normally,
-  the non-text operations are only used in the non-label attributes.
-  If, however, the <A HREF=attrs.html#d:decorate>decorate</A>
-  attribute is set on an edge, its label
-  attribute will also contain a polyline operation.
-  In addition, if a label is a complex, HTML-like label, it will also
-  contain non-text operations.
-  <P>
-  All coordinates and sizes are in points.
-  Note though that if
-  an edge or node is invisible, no drawing operations are attached to it.
-  <P>
-  Version info:
-  <TABLE  border >
-  <TR><TH>Xdot version</TH><TH>Graphviz version</TH></TR>
-  <TR><TD>1.0</TD><TD>1.9</TD></TR>
-  <TR><TD>1.1</TD><TD>2.8</TD></TR>
-  <TR><TD>1.2</TD><TD>2.13</TD></TR>
-  </TABLE>
+<DD>These formats produce output in the
+<A HREF=lang.html>dot language</A>.
+Using <B>canon</B> produces a prettyprinted version of the input,
+with no layout performed.
+<P>
+The <B>dot</B> option corresponds to attributed dot output,
+and is the default output format.
+It reproduces the input, along with layout information for the graph.
+In particular, a <A HREF=attrs.html#d:bb>bb</A> attribute is
+attached to the graph, specifying the bounding box of the drawing.
+If the graph has a label, its position is specified by the
+<A HREF=attrs.html#d:lp>lp</A> attribute.
+<P>
+Each node gets <A HREF=attrs.html#d:pos>pos</A>,
+<A HREF=attrs.html#d:width>width</A> and
+<A HREF=attrs.html#d:height>height</A> attributes. If the node is a record,
+the record rectangles are given in the
+<A HREF=attrs.html#d:rects>rects</A> attribute.
+If the node is a polygon and the
+<A HREF=attrs.html#d:vertices>vertices</A> attribute is defined, this
+attribute contains the vertices of the node.
+<P>
+Every edge is
+assigned a <A HREF=attrs.html#d:pos>pos</A> attribute,
+and if the edge has a label, the label position
+is given in <A HREF=attrs.html#d:lp>lp</A>.
+<P>
+The <B>xdot</B> format extends the
+<B>dot</B> format by providing much more detailed information about
+how graph components are drawn. It relies on additional attributes
+for nodes, edges and graphs.
+<P>
+The format is preliminary; comments and
+suggestions for better representations are welcome.
+To allow for changes in the format, Graphviz attaches the attribute
+<TT>xdotversion</TT> to the graph.
+<P>
+At present, additional drawing attributes are only attached to nodes
+and edges. There are six new attributes:
+<SPACER TYPE=VERTICAL size=10>
+<TABLE  border bgcolor=beige>
+<TR><TD>_draw_<TD colspan=2>Drawing operations
+<TR><TD>_ldraw_<TD colspan=2>Label drawing
+<TR><TD>_hdraw_<TD>Head arrowhead<TD>Edge only
+<TR><TD>_tdraw_<TD>Tail arrowhead<TD>Edge only
+<TR><TD>_hldraw_<TD>Head label<TD>Edge only
+<TR><TD>_tldraw_<TD>Tail label<TD>Edge only
+</TABLE>
+<P>
+The value of these attributes consists of the concatenation of some
+(multi-)set of the following 12 rendering or attribute operations.
+(The number is parentheses gives the xdot version when the operation
+was added to the format. If no version number is given, the operation
+was in the original specification.)
+<SPACER TYPE=VERTICAL size=10>
+<TABLE border bgcolor=beige>
+<TR><TD>E x<sub>0</sub> y<sub>0</sub> w h
+<TD>Filled ellipse ((x-x<sub>0</sub>)/w)<sup>2</sup> + ((y-y<sub>0</sub>)/h)<sup>2</sup> = 1
+<TR><TD>e x<sub>0</sub> y<sub>0</sub> w h
+<TD>Unfilled ellipse ((x-x<sub>0</sub>)/w)<sup>2</sup> + ((y-y<sub>0</sub>)/h)<sup>2</sup> = 1
+<TR><TD>P n x<sub>1</sub> y<sub>1</sub> ... x<sub>n</sub> y<sub>n</sub>
+<TD>Filled polygon using the given n points
+<TR><TD>p n x<sub>1</sub> y<sub>1</sub> ... x<sub>n</sub> y<sub>n</sub>
+<TD>Unfilled polygon using the given n points
+<TR><TD>L n x<sub>1</sub> y<sub>1</sub> ... x<sub>n</sub> y<sub>n</sub>
+<TD>Polyline using the given n points
+<TR><TD>B n x<sub>1</sub> y<sub>1</sub> ... x<sub>n</sub> y<sub>n</sub>
+<TD>B-spline using the given n control points
+<TR><TD>b n x<sub>1</sub> y<sub>1</sub> ... x<sub>n</sub> y<sub>n</sub>
+<TD>Filled B-spline using the given n control points (1.1)
+<TR><TD>T x y j w n -<I>c<sub>1</sub>c<sub>2</sub>...c<sub>n</sub><I>
+<TD>Text drawn using the baseline point (x,y). The text consists of the
+n characters following '-'. The text should be left-aligned (centered,
+right-aligned) on the point if j is -1 (0, 1), respectively. The value
+w gives the width of the text as computed by the library.
+<TR><TD>C n -<I>c<sub>1</sub>c<sub>2</sub>...c<sub>n</sub><I>
+<TD>Set fill color. The color value consists of the
+n characters following '-'. (1.1)
+<TR><TD>c n -<I>c<sub>1</sub>c<sub>2</sub>...c<sub>n</sub><I>
+<TD>Set pen color. The color value consists of the
+n characters following '-'. (1.1)
+<TR><TD>F s n -<I>c<sub>1</sub>c<sub>2</sub>...c<sub>n</sub><I>
+<TD>Set font. The font size is s points. The font name consists of the
+n characters following '-'. (1.1)
+<TR><TD>S n -<I>c<sub>1</sub>c<sub>2</sub>...c<sub>n</sub><I>
+<TD>Set style attribute. The style value consists of the
+n characters following '-'. The syntax of the value is the same as
+specified for a <B>styleItem</B> in <A HREF=attrs.html#k:style>style</A>. (1.1)
+<TR><TD>I x y w h n -<I>c<sub>1</sub>c<sub>2</sub>...c<sub>n</sub><I>
+<TD>Externally-specified image drawn in the box with lower left
+corner (x,y) and upper right corner (x+w,y+h). The name of the image
+consists of the n characters following '-'. This is usually a bitmap
+image. Note that the image size, even when converted from pixels to
+points, might be different from the required size (w,h). It is
+assumed the renderer will perform the necessary scaling. (1.2)
+</TABLE>
+<SPACER TYPE=VERTICAL size=10>
+In handling alignment, the application may want to recompute the
+string width using its own rendering primitives.
+<P>
+The text operation is only used in the label attributes. Normally,
+the non-text operations are only used in the non-label attributes.
+If, however, the <A HREF=attrs.html#d:decorate>decorate</A>
+attribute is set on an edge, its label
+attribute will also contain a polyline operation.
+In addition, if a label is a complex, HTML-like label, it will also
+contain non-text operations.
+<P>
+All coordinates and sizes are in points.
+Note though that if
+an edge or node is invisible, no drawing operations are attached to it.
+<P>
+Version info:
+<TABLE  border >
+<TR><TH>Xdot version</TH><TH>Graphviz version</TH></TR>
+<TR><TD>1.0</TD><TD>1.9</TD></TR>
+<TR><TD>1.1</TD><TD>2.8</TD></TR>
+<TR><TD>1.2</TD><TD>2.13</TD></TR>
+</TABLE>
 
 <DT><A NAME=d:cmap HREF=#a:cmap><STRONG>cmap</STRONG></A>
-<DD>  Produces map files for client-side image maps. The cmap format is
-  mostly identical to cmapx, but the latter is well-formed XML amenable
-  to processing by XML tools. In particular, the cmapx output is wrapped in
-  &lt;map&gt;&lt;/map&gt;.
+<DD>Produces map files for client-side image maps. The cmap format is
+mostly identical to cmapx, but the latter is well-formed XML amenable
+to processing by XML tools. In particular, the cmapx output is wrapped in
+&lt;map&gt;&lt;/map&gt;.
 
 <DT><A NAME=d:dia HREF=#a:dia><STRONG>dia</STRONG></A>
-<DD>  Produces <A HREF="http://www.gnome.org/projects/dia/">Dia</A> output.
+<DD>Produces <A HREF="http://www.gnome.org/projects/dia/">Dia</A> output.
 
 <DT><A NAME=d:fig HREF=#a:fig><STRONG>fig</STRONG></A>
-<DD>   Outputs graphs in the FIG graphics language.
+<DD>Outputs graphs in the FIG graphics language.
 
 <DT><A NAME=d:gd HREF=#a:gd><STRONG>gd</STRONG></A>
 ,<DT><A NAME=d:gd2 HREF=#a:gd2><STRONG>gd2</STRONG></A>
-<DD>  Output images in the GD and GD2 format. These are the internal
-  formats used by the gd library. The latter is compressed.
+<DD>Output images in the GD and GD2 format. These are the internal
+formats used by the gd library. The latter is compressed.
 
 <DT><A NAME=d:gif HREF=#a:gif><STRONG>gif</STRONG></A>
-<DD>  Outputs GIF bitmap images.
+<DD>Outputs GIF bitmap images.
 
 <DT><A NAME=d:gtk HREF=#a:gtk><STRONG>gtk</STRONG></A>
-<DD>  Creates a <A HREF="http://www.gtk.org/">GTK</A> window and displays the output there.
+<DD>Creates a <A HREF="http://www.gtk.org/">GTK</A> window and displays the output there.
 
 <DT><A NAME=d:hpgl HREF=#a:hpgl><STRONG>hpgl</STRONG></A>
-<DD>  Produces output in the HP-GL/2 vector graphic printer language.
+<DD>Produces output in the HP-GL/2 vector graphic printer language.
 
 <DT><A NAME=d:ico HREF=#a:ico><STRONG>ico</STRONG></A>
-<DD>  Outputs images in the Windows <A HREF="http://en.wikipedia.org/wiki/ICO_(icon_image_file_format)">ICO format</A>.
+<DD>Outputs images in the Windows <A HREF="http://en.wikipedia.org/wiki/ICO_(icon_image_file_format)">ICO format</A>.
 
 <DT><A NAME=d:imap HREF=#a:imap><STRONG>imap</STRONG></A>
 ,<DT><A NAME=d:cmapx HREF=#a:cmapx><STRONG>cmapx</STRONG></A>
-<DD>  Produces map files for server-side and client-side image maps,
-  These can be used in a web page with
-  a graphical form of the output, e.g. in JPEG or GIF format, to attach
-  links to nodes and edges. For example, to create a server-side map
-  given the dot file
-  <PRE>
-  /* x.dot */
-  digraph mainmap {
-    URL="http://www.research.att.com/base.html";
-    command [URL="http://www.research.att.com/command.html"];
-    command -> output [URL="colors.html"];
-  }
-  </PRE>
-  one would process the graph and generate two output files:
-  <PRE>
-  dot -Timap -ox.map -Tgif -ox.gif x.dot
-  </PRE>
-  and then refer to it in a web page:
-  <XMP>
-  <A HREF="x.map"><IMG SRC="x.gif" ismap="ismap" /></A>
-  </XMP>
-  For client-side maps, one again generates two output files:
-  <PRE>
-  dot -Tcmapx -ox.map -Tgif -ox.gif x.dot
-  </PRE>
-  and uses the HTML
-  <XMP>
-  <IMG SRC="x.gif" USEMAP="#mainmap" />
-  ... [content of x.map] ...
-  </XMP>
-  <A HREF=attrs.html#d:URL>URLs</A> can be attached to the root 
-  graph, nodes and edges. If a node has a URL, clicking in the node
-  will activate the link.
-  If an edge has a URL, various
-  points along the edge (but not necessarily the head or tail) 
-  will link to it. In addition, if the edge has a 
-  <A HREF=attrs.html#d:label>label</A>, that will link
-  to the URL.
-  As for the head of the edge, this is linked to the 
-  <A HREF=attrs.html#d:headURL>headURL</A>, if set.
-  Otherwise, it is linked to the edge's URL if that is defined. 
-  The analogous description holds for the tail and the
-  <A HREF=attrs.html#d:tailURL>tailURL</A>.
-  A URL associated with the graph is used as a default link.
-  <P>
-  If the URL
-  of a node contains the escape sequence "\N", it will be replaced by 
-  the node's name. 
-  If the headURL is defined and contains the escape sequence "\N", 
-  it will be replaced by
-  the <A HREF=attrs.html#d:headlabel>headlabel</A>, if defined.
-  The analogous result holds for the tailURL and the
-  <A HREF=attrs.html#d:taillabel>taillabel</A>.
+<DD>Produces map files for server-side and client-side image maps,
+These can be used in a web page with
+a graphical form of the output, e.g. in JPEG or GIF format, to attach
+links to nodes and edges. For example, to create a server-side map
+given the dot file
+<PRE>
+/* x.dot */
+digraph mainmap {
+  URL="http://www.research.att.com/base.html";
+  command [URL="http://www.research.att.com/command.html"];
+  command -> output [URL="colors.html"];
+}
+</PRE>
+one would process the graph and generate two output files:
+<PRE>
+dot -Timap -ox.map -Tgif -ox.gif x.dot
+</PRE>
+and then refer to it in a web page:
+<XMP>
+<A HREF="x.map"><IMG SRC="x.gif" ismap="ismap" /></A>
+</XMP>
+For client-side maps, one again generates two output files:
+<PRE>
+dot -Tcmapx -ox.map -Tgif -ox.gif x.dot
+</PRE>
+and uses the HTML
+<XMP>
+<IMG SRC="x.gif" USEMAP="#mainmap" />
+... [content of x.map] ...
+</XMP>
+<A HREF=attrs.html#d:URL>URLs</A> can be attached to the root
+graph, nodes and edges. If a node has a URL, clicking in the node
+will activate the link.
+If an edge has a URL, various
+points along the edge (but not necessarily the head or tail)
+will link to it. In addition, if the edge has a
+<A HREF=attrs.html#d:label>label</A>, that will link
+to the URL.
+As for the head of the edge, this is linked to the
+<A HREF=attrs.html#d:headURL>headURL</A>, if set.
+Otherwise, it is linked to the edge's URL if that is defined.
+The analogous description holds for the tail and the
+<A HREF=attrs.html#d:tailURL>tailURL</A>.
+A URL associated with the graph is used as a default link.
+<P>
+If the URL
+of a node contains the escape sequence "\N", it will be replaced by
+the node's name.
+If the headURL is defined and contains the escape sequence "\N",
+it will be replaced by
+the <A HREF=attrs.html#d:headlabel>headlabel</A>, if defined.
+The analogous result holds for the tailURL and the
+<A HREF=attrs.html#d:taillabel>taillabel</A>.
 
 <DT><A NAME=d:imap_np HREF=#a:imap_np><STRONG>imap_np</STRONG></A>
 ,<DT><A NAME=d:cmapx_np HREF=#a:cmapx_np><STRONG>cmapx_np</STRONG></A>
-<DD>  These are identical to the imap and cmapx formats, except they
-  rely solely on rectangles as active areas.
+<DD>These are identical to the imap and cmapx formats, except they
+rely solely on rectangles as active areas.
 
 <DT><A NAME=d:ismap HREF=#a:ismap><STRONG>ismap</STRONG></A>
-<DD>  Produces HTML image map files. This is a predecessor (circa 1994)
-  of the IMAP format.  Most servers now use the latter.
-  <A HREF=attrs.html#d:URL>URLs</A> can be attached to the root graph, 
-  nodes and edges. Since edge
-  links are attached to edge labels, an edge must 
-  have a <A HREF=attrs.html#d:label>label</A> for its
-  URL to be used. For both nodes and edges, if the URL has the escape
-  sequence "\N" embedded in its string, this will be replaced with the
-  node or edge name.
+<DD>Produces HTML image map files. This is a predecessor (circa 1994)
+of the IMAP format.  Most servers now use the latter.
+<A HREF=attrs.html#d:URL>URLs</A> can be attached to the root graph,
+nodes and edges. Since edge
+links are attached to edge labels, an edge must
+have a <A HREF=attrs.html#d:label>label</A> for its
+URL to be used. For both nodes and edges, if the URL has the escape
+sequence "\N" embedded in its string, this will be replaced with the
+node or edge name.
 
 <DT><A NAME=d:jpg HREF=#a:jpg><STRONG>jpg</STRONG></A>
 ,<DT><A NAME=d:jpeg HREF=#a:jpeg><STRONG>jpeg</STRONG></A>
 ,<DT><A NAME=d:jpe HREF=#a:jpe><STRONG>jpe</STRONG></A>
-<DD>  Output JPEG compressed image files.
+<DD>Output JPEG compressed image files.
 
 <DT><A NAME=d:mif HREF=#a:mif><STRONG>mif</STRONG></A>
-<DD>  Generates Frame Maker MIF files.
+<DD>Generates Frame Maker MIF files.
 
 <DT><A NAME=d:mp HREF=#a:mp><STRONG>mp</STRONG></A>
-<DD>  Produces <A HREF="http://cm.bell-labs.com/who/hobby/MetaPost.html">MetaPost</A> output.
+<DD>Produces <A HREF="http://cm.bell-labs.com/who/hobby/MetaPost.html">MetaPost</A> output.
 
 <DT><A NAME=d:pcl HREF=#a:pcl><STRONG>pcl</STRONG></A>
-<DD>  Produces output in the PCL printer language. 
-  <A HREF=#d:hpgl>HP-GL</A> is a subset of
-  PCL, so that PCL output is the same as HP-GL, wrapped with some initial
-  and final commands to set the printer to and from HP-GL mode.
+<DD>Produces output in the PCL printer language.
+<A HREF=#d:hpgl>HP-GL</A> is a subset of
+PCL, so that PCL output is the same as HP-GL, wrapped with some initial
+and final commands to set the printer to and from HP-GL mode.
 
 <DT><A NAME=d:pdf HREF=#a:pdf><STRONG>pdf</STRONG></A>
-<DD>  Produces <A HREF="http://www.adobe.com/devnet/pdf/">PDF</A> output.
-  (This option assumes Graphviz includes the Cairo renderer.)
-  Alternatively, one can use the <A HREF="#d:ps2">ps2</A> option to 
-  produce PDF-compatible PostScript, and then use a ps-to-pdf converter.
-  <P>
-  Note: At present, this option does not support anchors, etc. To get these
-  included in your PDF output, use <A HREF="#d:ps2">ps2</A>. 
+<DD>Produces <A HREF="http://www.adobe.com/devnet/pdf/">PDF</A> output.
+(This option assumes Graphviz includes the Cairo renderer.)
+Alternatively, one can use the <A HREF="#d:ps2">ps2</A> option to
+produce PDF-compatible PostScript, and then use a ps-to-pdf converter.
+<P>
+Note: At present, this option does not support anchors, etc. To get these
+included in your PDF output, use <A HREF="#d:ps2">ps2</A>.
 
 <DT><A NAME=d:pic HREF=#a:pic><STRONG>pic</STRONG></A>
-<DD>  Outputs in PIC, the picture description language in the troff-family
+<DD>Outputs in PIC, the picture description language in the troff-family
 
 <DT><A NAME=d:plain HREF=#a:plain><STRONG>plain</STRONG></A>
 ,<DT><A NAME=d:plain-ext HREF=#a:plain-ext><STRONG>plain-ext</STRONG></A>
-<DD>  The plain and plain-ext formats produce output using
-  a simple, line-based language.
-  The latter format differs in that, on edges, it provides port names 
-  on head and tail nodes when applicable.
-  <P>
-  There are four types of statements.
-  <PRE>
  <STRONG>graph</STRONG> <I>scale</I> <I>width</I> <I>height</I>
  <STRONG>node</STRONG> <I>name</I> <I>x</I> <I>y</I> <I>width</I> <I>height</I> <I>label</I> <I>style</I> <I>shape</I> <I>color</I> <I>fillcolor</I>
  <STRONG>edge</STRONG> <I>tail</I> <I>head</I> <I>n</I> <I>x<sub>1</sub></I> <I>y<sub>1</sub></I> .. <I>x<sub>n</sub></I> <I>y<sub>n</sub></I> [<I>label</I> <I>xl</I> <I>yl</I>] <I>style</I> <I>color</I>
  <STRONG>stop</STRONG>
-  </PRE>
-  <DL>
-  <DT><STRONG>graph</STRONG>
-  <DD>The <I>width</I> and <I>height</I> values give the width and height
-  of the drawing. The lower left corner of the drawing is at the origin.
-  The <I>scale</I> value indicates how the drawing should be scaled
-  if a <A HREF=attrs.html#d:size>size</A> attribute was given and the drawing
-  needs to be scaled to conform to that size. If no scaling is necessary,
-  it will be set to 1.0. Note that all graph, node and edge 
-  coordinates and lengths are given unscaled.
-  <DT><STRONG>node</STRONG>
-  <DD>The <I>name</I> value is the name of the node, and <I>x</I> and <I>y</I>
-  give the node's position. The <I>width</I> and <I>height</I> are the
-  width and height of the node.
-  The <I>label</I>, 
-  <I>style</I>, <I>shape</I>, <I>color</I> and <I>fillcolor</I> give the
-  node's <A HREF=attrs.html#d:label>label</A>, 
-  <A HREF=attrs.html#d:style>style</A>, <A HREF=attrs.html#d:shape>shape</A>, 
-  <A HREF=attrs.html#d:color>color</A> and 
-  <A HREF=attrs.html#d:fillcolor>fillcolor</A>,
-  respectively, using attribute default values where necessary. If the
-  node does not have a style attribute, "solid" is used.
-  <DT><STRONG>edge</STRONG>
-  <DD>The <I>tail</I> and <I>head</I> values give the names of the head and
-  tail nodes. In plain-ext format, the head or tail name will be appended
-  with a colon and a portname if the edge connects to the node at a port.
-  <I>n</I> is the number of control points defining the
-  B-spline forming the edge. This is followed by 2*<I>n</I> numbers giving
-  the x and y coordinates of the control points in order from tail to head.
-  If the edge has a <A HREF=attrs.html#d:label>label</A>, this comes next
-  followed by the x and y coordinates of the label's position.
-  The edge description is completed by the edge's 
-  <A HREF=attrs.html#d:style>style</A> and <A HREF=attrs.html#d:color>color</A>.
-  As with nodes, if a style is not defined, "solid" is used.
-  <P>
-  <B>Note:</B> The control points given in an edge statement define the
-  body of the edge. In particular, if the edge has an arrowhead to the
-  head or tail node,
-  there will be a gap between the last or first control points and the
-  boundary of the associated node. There are at least 3 possible ways
-  of handling this gap:
-  <UL>
-  <LI> Arrange that the input graph uses <TT>dir=none</TT>, 
-  <TT>arrowhead=none</TT>, or <TT>arrowtail=none</TT> for all edges.
-  In this case, the terminating control points will always touch the node.
-  <LI> Consider the line segment joining the control point and the center
-  of the node, and determine the point where the segment intersects the
-  node's boundary. Then use the control point and the intersection point
-  as the main axis of an arrowhead. The problem with this approach is 
-  that, if the edge has a port, the edge will not be pointing to the
-  center of the node. In this case, rather than use the control point
-  and center point, one can use the control point and its tangent.
-  <LI> Arrange that the input graph uses <TT>headclip=false</TT> or
-  <TT>tailclip=false</TT>. In this case, the edge will terminate at
-  the node's center rather than its boundary. If arrowheads are used,
-  there will still be a gap, but normally this will occur within the
-  node. The application will still need to clip the spline to the node
-  boundary. Also, as with the previous item, if the edge points to
-  a node port, this technique will fail. 
-  </UL>
-  </DL>
-  The output consists of one <STRONG>graph</STRONG> line, a sequence of
-  <STRONG>node</STRONG> lines, one per node, a sequence of 
-  <STRONG>edge</STRONG> lines, one per edge, and a final <STRONG>stop</STRONG>
-  line. All units are in inches, represented by a floating point number.
-  <P>
-  Note that the plain formats provide minimal information, really giving not
-  much more than node positions and sizes, and edge spline control points.
-  These formats are usually most useful to applications wanting just this
-  geometric information, and willing to fill in all of the graphical details.
-  The only real advantages to these formats is their terseness and their
-  ease of parsing. In general, the <A HREF=#d:dot>dot</A> and
-  <A HREF=#d:xdot>xdot</A> are preferable in terms of the quantity of
-  information provided.
+<DD>The plain and plain-ext formats produce output using
+a simple, line-based language.
+The latter format differs in that, on edges, it provides port names
+on head and tail nodes when applicable.
+<P>
+There are four types of statements.
+<PRE>
+ <STRONG>graph</STRONG> <I>scale</I> <I>width</I> <I>height</I>
+ <STRONG>node</STRONG> <I>name</I> <I>x</I> <I>y</I> <I>width</I> <I>height</I> <I>label</I> <I>style</I> <I>shape</I> <I>color</I> <I>fillcolor</I>
+ <STRONG>edge</STRONG> <I>tail</I> <I>head</I> <I>n</I> <I>x<sub>1</sub></I> <I>y<sub>1</sub></I> .. <I>x<sub>n</sub></I> <I>y<sub>n</sub></I> [<I>label</I> <I>xl</I> <I>yl</I>] <I>style</I> <I>color</I>
+ <STRONG>stop</STRONG>
+</PRE>
+<DL>
+<DT><STRONG>graph</STRONG>
+<DD>The <I>width</I> and <I>height</I> values give the width and height
+of the drawing. The lower left corner of the drawing is at the origin.
+The <I>scale</I> value indicates how the drawing should be scaled
+if a <A HREF=attrs.html#d:size>size</A> attribute was given and the drawing
+needs to be scaled to conform to that size. If no scaling is necessary,
+it will be set to 1.0. Note that all graph, node and edge
+coordinates and lengths are given unscaled.
+<DT><STRONG>node</STRONG>
+<DD>The <I>name</I> value is the name of the node, and <I>x</I> and <I>y</I>
+give the node's position. The <I>width</I> and <I>height</I> are the
+width and height of the node.
+The <I>label</I>,
+<I>style</I>, <I>shape</I>, <I>color</I> and <I>fillcolor</I> give the
+node's <A HREF=attrs.html#d:label>label</A>,
+<A HREF=attrs.html#d:style>style</A>, <A HREF=attrs.html#d:shape>shape</A>,
+<A HREF=attrs.html#d:color>color</A> and
+<A HREF=attrs.html#d:fillcolor>fillcolor</A>,
+respectively, using attribute default values where necessary. If the
+node does not have a style attribute, "solid" is used.
+<DT><STRONG>edge</STRONG>
+<DD>The <I>tail</I> and <I>head</I> values give the names of the head and
+tail nodes. In plain-ext format, the head or tail name will be appended
+with a colon and a portname if the edge connects to the node at a port.
+<I>n</I> is the number of control points defining the
+B-spline forming the edge. This is followed by 2*<I>n</I> numbers giving
+the x and y coordinates of the control points in order from tail to head.
+If the edge has a <A HREF=attrs.html#d:label>label</A>, this comes next
+followed by the x and y coordinates of the label's position.
+The edge description is completed by the edge's
+<A HREF=attrs.html#d:style>style</A> and <A HREF=attrs.html#d:color>color</A>.
+As with nodes, if a style is not defined, "solid" is used.
+<P>
+<B>Note:</B> The control points given in an edge statement define the
+body of the edge. In particular, if the edge has an arrowhead to the
+head or tail node,
+there will be a gap between the last or first control points and the
+boundary of the associated node. There are at least 3 possible ways
+of handling this gap:
+<UL>
+<LI> Arrange that the input graph uses <TT>dir=none</TT>,
+<TT>arrowhead=none</TT>, or <TT>arrowtail=none</TT> for all edges.
+In this case, the terminating control points will always touch the node.
+<LI> Consider the line segment joining the control point and the center
+of the node, and determine the point where the segment intersects the
+node's boundary. Then use the control point and the intersection point
+as the main axis of an arrowhead. The problem with this approach is
+that, if the edge has a port, the edge will not be pointing to the
+center of the node. In this case, rather than use the control point
+and center point, one can use the control point and its tangent.
+<LI> Arrange that the input graph uses <TT>headclip=false</TT> or
+<TT>tailclip=false</TT>. In this case, the edge will terminate at
+the node's center rather than its boundary. If arrowheads are used,
+there will still be a gap, but normally this will occur within the
+node. The application will still need to clip the spline to the node
+boundary. Also, as with the previous item, if the edge points to
+a node port, this technique will fail.
+</UL>
+</DL>
+The output consists of one <STRONG>graph</STRONG> line, a sequence of
+<STRONG>node</STRONG> lines, one per node, a sequence of
+<STRONG>edge</STRONG> lines, one per edge, and a final <STRONG>stop</STRONG>
+line. All units are in inches, represented by a floating point number.
+<P>
+Note that the plain formats provide minimal information, really giving not
+much more than node positions and sizes, and edge spline control points.
+These formats are usually most useful to applications wanting just this
+geometric information, and willing to fill in all of the graphical details.
+The only real advantages to these formats is their terseness and their
+ease of parsing. In general, the <A HREF=#d:dot>dot</A> and
+<A HREF=#d:xdot>xdot</A> are preferable in terms of the quantity of
+information provided.
 
 <DT><A NAME=d:png HREF=#a:png><STRONG>png</STRONG></A>
-<DD>   Produces output in the PNG (Portable Network Graphics) format.
+<DD>Produces output in the PNG (Portable Network Graphics) format.
 
 <DT><A NAME=d:ps HREF=#a:ps><STRONG>ps</STRONG></A>
-<DD>  Produces PostScript output.
-  <P>
-  Note: The default PostScript renderer can only handle the Latin-1
-  character set. To get non-Latin-1 characters into PostScript output,
-  use <TT>-Tps:cairo</TT>, assuming your version was built with the
-  Cairo renderer.
+<DD>Produces PostScript output.
+<P>
+Note: The default PostScript renderer can only handle the Latin-1
+character set. To get non-Latin-1 characters into PostScript output,
+use <TT>-Tps:cairo</TT>, assuming your version was built with the
+Cairo renderer.
 
 <DT><A NAME=d:ps2 HREF=#a:ps2><STRONG>ps2</STRONG></A>
-<DD>  Produces PostScript output with PDF notations. It is assumed the output
-  will be directly converted into PDF format. The notations include PDF
-  bounding box information, so that the resulting PDF file can be correctly
-  used with pdf tools, such as <STRONG>pdflatex</STRONG>. 
-  In addition, if a node has a URL
-  attribute, this gets translated into PDF code such that the node, 
-  when viewed in a PDF-viewer, e.g.,
-  <STRONG>acroread</STRONG>,
-  is a link to the given URL. If a URL is attached to the graph, this serves
-  as a base, such that relative URLs on nodes are derived from it.
+<DD>Produces PostScript output with PDF notations. It is assumed the output
+will be directly converted into PDF format. The notations include PDF
+bounding box information, so that the resulting PDF file can be correctly
+used with pdf tools, such as <STRONG>pdflatex</STRONG>.
+In addition, if a node has a URL
+attribute, this gets translated into PDF code such that the node,
+when viewed in a PDF-viewer, e.g.,
+<STRONG>acroread</STRONG>,
+is a link to the given URL. If a URL is attached to the graph, this serves
+as a base, such that relative URLs on nodes are derived from it.
 
 <DT><A NAME=d:svg HREF=#a:svg><STRONG>svg</STRONG></A>
 ,<DT><A NAME=d:svgz HREF=#a:svgz><STRONG>svgz</STRONG></A>
-<DD>  Produce <A HREF="http://www.adobe.com/svg/">SVG</A> output, 
-  the latter in compressed format.
+<DD>Produce <A HREF="http://www.adobe.com/svg/">SVG</A> output,
+the latter in compressed format.
 
 <DT><A NAME=d:tga HREF=#a:tga><STRONG>tga</STRONG></A>
-<DD>  Produces <A HREF="http://en.wikipedia.org/wiki/Truevision_TGA">Targa</A> output.
+<DD>Produces <A HREF="http://en.wikipedia.org/wiki/Truevision_TGA">Targa</A> output.
 
 <DT><A NAME=d:tif HREF=#a:tif><STRONG>tif</STRONG></A>
 ,<DT><A NAME=d:tiff HREF=#a:tiff><STRONG>tiff</STRONG></A>
-<DD>  Produces <A HREF="http://www.libtiff.org/">TIFF</A> output.
+<DD>Produces <A HREF="http://www.libtiff.org/">TIFF</A> output.
 
 <DT><A NAME=d:vml HREF=#a:vml><STRONG>vml</STRONG></A>
 ,<DT><A NAME=d:vmlz HREF=#a:vmlz><STRONG>vmlz</STRONG></A>
-<DD>  Produces <A HREF="http://www.w3.org/TR/NOTE-VML">VML</A> output,
-  the latter in compressed format.
+<DD>Produces <A HREF="http://www.w3.org/TR/NOTE-VML">VML</A> output,
+the latter in compressed format.
 
 <DT><A NAME=d:vrml HREF=#a:vrml><STRONG>vrml</STRONG></A>
-<DD>  Outputs graphs in the <A HREF="http://www.vrml.org/">VRML</A> format.
-  To get a 3D embedding, nodes must have a <A HREF=attrs.html#d:z>z</A>
-  attribute. These can either be supplied as part of the input graph, or
-  be generated by neato provided <A HREF=attrs.html#d:dim>dim</A><TT>=3</TT>
-  and at least one node has a <B>z</B> value.
-  <P>
-  Line segments are drawn as cylinders.
-  In general, VRML output relies on having the PNG library to produce images
-  used to texture-fill the node shapes. However, if
-  <A HREF=attrs.html#d:shape>shape</A><TT>=point</TT>, 
-  a node is drawn as a 3D sphere.
+<DD>Outputs graphs in the <A HREF="http://www.vrml.org/">VRML</A> format.
+To get a 3D embedding, nodes must have a <A HREF=attrs.html#d:z>z</A>
+attribute. These can either be supplied as part of the input graph, or
+be generated by neato provided <A HREF=attrs.html#d:dim>dim</A><TT>=3</TT>
+and at least one node has a <B>z</B> value.
+<P>
+Line segments are drawn as cylinders.
+In general, VRML output relies on having the PNG library to produce images
+used to texture-fill the node shapes. However, if
+<A HREF=attrs.html#d:shape>shape</A><TT>=point</TT>,
+a node is drawn as a 3D sphere.
 
 <DT><A NAME=d:vtx HREF=#a:vtx><STRONG>vtx</STRONG></A>
-<DD>   Generates graph diagrams in the format for 
-   <A HREF="http://www.bombshellstudios.com/samples/co/vt.html">Confluents's Visual Thought</A>.
+<DD>Generates graph diagrams in the format for
+<A HREF="http://www.bombshellstudios.com/samples/co/vt.html">Confluents's Visual Thought</A>.
 
 <DT><A NAME=d:wbmp HREF=#a:wbmp><STRONG>wbmp</STRONG></A>
-<DD>  Produces output in the Wireless BitMap (WBMP) format, optimized for
-  mobile computing.
+<DD>Produces output in the Wireless BitMap (WBMP) format, optimized for
+mobile computing.
 
 <DT><A NAME=d:xlib HREF=#a:xlib><STRONG>xlib</STRONG></A>
-<DD>  Creates an <A HREF="http://en.wikipedia.org/wiki/Xlib">Xlib</A> window and displays the output there.
+<DD>Creates an <A HREF="http://en.wikipedia.org/wiki/Xlib">Xlib</A> window and displays the output there.
 
 </DL>
 <HR>