comparison toolboxes/graph_visualisation/share/graphviz/doc/html/info/attrs.html @ 0:e9a9cd732c1e tip

first hg version after svn
author wolffd
date Tue, 10 Feb 2015 15:05:51 +0000
parents
children
comparison
equal deleted inserted replaced
-1:000000000000 0:e9a9cd732c1e
1 <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
2 <!--
3 This is a generated document. Do not edit.
4 -->
5 <HTML VERSION="2.0">
6 <HEAD>
7 <TITLE>Node, Edge and Graph Attributes</TITLE>
8 </HEAD>
9 <BODY BGCOLOR=white>
10 <A NAME="top"></A>
11 <H1 align=CENTER>Node, Edge and Graph Attributes</H1>
12 <HR>
13 The table below describes the attributes used by various Graphviz tools.
14 The table gives the name of the attribute, the graph components (node,
15 edge, etc.) which use the attribute and the type of the attribute
16 (strings representing legal values of that type). Where applicable, the table
17 also gives a default value for the attribute, a minimum allowed setting
18 for numeric attributes, and certain restrictions on the use of the attribute.
19 <P>
20 All Graphviz attributes are specified by name-value pairs. Thus, to
21 set the fillcolor of a node <TT>abc</TT>, one would use
22 <TABLE>
23 <TR><TD><TT>abc [fillcolor = red]</TT></TR>
24 </TABLE>
25 Similarly, to set the arrowhead style of an edge <TT>abc -> def</TT>,
26 one would use
27 <TABLE>
28 <TR><TD><TT>abc -> def [arrowhead = diamond]</TT></TR>
29 </TABLE>
30 Further details concerning the setting of attributes can be found
31 in the description of the
32 <A HREF="http://www.graphviz.org/doc/info/lang.html">DOT language.</A>
33 <P>
34 At present, most device-independent units are either inches or
35 <A NAME="points"></A>
36 <A HREF="http://en.wikipedia.org/wiki/Point_(typography)">points</A>,
37 which we take as 72 points per inch.
38 <P>
39 <A NAME=h:undir_note><STRONG>Note:</STRONG></A> Some attributes, such as
40 <A HREF=#d:dir>dir</A> or <A HREF=#d:arrowtail>arrowtail</A>, are
41 ambiguous when used in
42 <A HREF="http://www.graphviz.org/doc/info/lang.html">DOT</A>
43 with an undirected graph since the head and tail of an edge are meaningless.
44 As a convention, the first time an undirected edge appears, the
45 <A HREF="http://www.graphviz.org/doc/info/lang.html">DOT</A>
46 parser will assign the left node as the tail node and the right node as
47 the head. For example, the edge <TT>A -- B</TT> will have tail <TT>A</TT>
48 and head <TT>B</TT>. It is the user's responsibility to handle such
49 edges consistently. If the edge appears later, in the format
50 <TABLE>
51 <TR><TD><TT>B -- A [taillabel = "tail"]</TT></TR>
52 </TABLE>
53 the drawing will attach the tail label to node <TT>A</TT>.
54 To avoid possible confusion when such attributes are required, the user
55 is encouraged to use a directed graph.
56 If it is important to make the graph appear undirected, this can be
57 done using the <A HREF=#d:dir>dir</A>, <A HREF=#d:arrowtail>arrowtail</A>
58 or <A HREF=#d:arrowhead>arrowhead</A> attributes.
59 <P>
60 The tools accept standard C representations for <EM>int</EM> and
61 <EM>double</EM> types.
62 For the <A NAME=k:bool><EM>bool</EM></A> type, TRUE values are
63 represented by "true" (case-insensitive)
64 and any non-zero integer, and FALSE values by "false" (case-insensitive)
65 and zero.
66 In addition, there are a variety of specialized types such as
67 <EM>arrowType</EM>, <EM>color</EM>,
68 <EM>pointf</EM> and <EM>rankdir</EM>. Legal values for these types are given
69 at the end.
70 <P>
71 In the <A NAME=h:uses><STRONG>Used By</STRONG></A> field, the
72 characters E, N, G, S and C
73 represent edges, nodes, the root graph, subgraphs
74 and cluster subgraphs, respectively.
75 This field indicates which graph component uses the attribute.
76 <HR ALIGN=CENTER WIDTH="70%" SIZE=3>
77 <TABLE ALIGN=CENTER>
78 <TR><TH>Name</TH><TH><A HREF=#h:uses>Used By</A></TH><TH>Type</TH><TH>Default</TH><TH>Minimum</TH><TH>Notes</TH></TR>
79 <TR><TD><A NAME=a:Damping HREF=#d:Damping>Damping</A>
80 </TD><TD>G</TD><TD>double</TD><TD ALIGN="CENTER">0.99</TD><TD>0.0</TD><TD>neato only</TD> </TR>
81 <TR><TD><A NAME=a:K HREF=#d:K>K</A>
82 </TD><TD>GC</TD><TD>double</TD><TD ALIGN="CENTER">0.3</TD><TD>0</TD><TD>sfdp, fdp only</TD> </TR>
83 <TR><TD><A NAME=a:URL HREF=#d:URL>URL</A>
84 </TD><TD>ENGC</TD><TD><A HREF=#k:escString>escString</A>
85 </TD><TD ALIGN="CENTER">&#60;none&#62;</TD><TD></TD><TD>svg, postscript, map only</TD> </TR>
86 <TR><TD><A NAME=a:arrowhead HREF=#d:arrowhead>arrowhead</A>
87 </TD><TD>E</TD><TD><A HREF=#k:arrowType>arrowType</A>
88 </TD><TD ALIGN="CENTER">normal</TD><TD></TD><TD></TD> </TR>
89 <TR><TD><A NAME=a:arrowsize HREF=#d:arrowsize>arrowsize</A>
90 </TD><TD>E</TD><TD>double</TD><TD ALIGN="CENTER">1.0</TD><TD>0.0</TD><TD></TD> </TR>
91 <TR><TD><A NAME=a:arrowtail HREF=#d:arrowtail>arrowtail</A>
92 </TD><TD>E</TD><TD><A HREF=#k:arrowType>arrowType</A>
93 </TD><TD ALIGN="CENTER">normal</TD><TD></TD><TD></TD> </TR>
94 <TR><TD><A NAME=a:aspect HREF=#d:aspect>aspect</A>
95 </TD><TD>G</TD><TD><A HREF=#k:aspectType>aspectType</A>
96 </TD><TD ALIGN="CENTER"></TD><TD></TD><TD>dot only</TD> </TR>
97 <TR><TD><A NAME=a:bb HREF=#d:bb>bb</A>
98 </TD><TD>G</TD><TD><A HREF=#k:rect>rect</A>
99 </TD><TD ALIGN="CENTER"></TD><TD></TD><TD>write only</TD> </TR>
100 <TR><TD><A NAME=a:bgcolor HREF=#d:bgcolor>bgcolor</A>
101 </TD><TD>GC</TD><TD><A HREF=#k:color>color</A>
102 </TD><TD ALIGN="CENTER">&#60;none&#62;</TD><TD></TD><TD></TD> </TR>
103 <TR><TD><A NAME=a:center HREF=#d:center>center</A>
104 </TD><TD>G</TD><TD><A HREF=#k:bool>bool</A>
105 </TD><TD ALIGN="CENTER">false</TD><TD></TD><TD></TD> </TR>
106 <TR><TD><A NAME=a:charset HREF=#d:charset>charset</A>
107 </TD><TD>G</TD><TD>string</TD><TD ALIGN="CENTER">"UTF-8"</TD><TD></TD><TD></TD> </TR>
108 <TR><TD><A NAME=a:clusterrank HREF=#d:clusterrank>clusterrank</A>
109 </TD><TD>G</TD><TD><A HREF=#k:clusterMode>clusterMode</A>
110 </TD><TD ALIGN="CENTER">local</TD><TD></TD><TD>dot only</TD> </TR>
111 <TR><TD><A NAME=a:color HREF=#d:color>color</A>
112 </TD><TD>ENC</TD><TD><A HREF=#k:color>color</A>
113 <BR><A HREF=#k:colorList>colorList</A>
114 </TD><TD ALIGN="CENTER">black</TD><TD></TD><TD></TD> </TR>
115 <TR><TD><A NAME=a:colorscheme HREF=#d:colorscheme>colorscheme</A>
116 </TD><TD>ENCG</TD><TD>string</TD><TD ALIGN="CENTER">""</TD><TD></TD><TD></TD> </TR>
117 <TR><TD><A NAME=a:comment HREF=#d:comment>comment</A>
118 </TD><TD>ENG</TD><TD>string</TD><TD ALIGN="CENTER">""</TD><TD></TD><TD></TD> </TR>
119 <TR><TD><A NAME=a:compound HREF=#d:compound>compound</A>
120 </TD><TD>G</TD><TD><A HREF=#k:bool>bool</A>
121 </TD><TD ALIGN="CENTER">false</TD><TD></TD><TD>dot only</TD> </TR>
122 <TR><TD><A NAME=a:concentrate HREF=#d:concentrate>concentrate</A>
123 </TD><TD>G</TD><TD><A HREF=#k:bool>bool</A>
124 </TD><TD ALIGN="CENTER">false</TD><TD></TD><TD></TD> </TR>
125 <TR><TD><A NAME=a:constraint HREF=#d:constraint>constraint</A>
126 </TD><TD>E</TD><TD><A HREF=#k:bool>bool</A>
127 </TD><TD ALIGN="CENTER">true</TD><TD></TD><TD>dot only</TD> </TR>
128 <TR><TD><A NAME=a:decorate HREF=#d:decorate>decorate</A>
129 </TD><TD>E</TD><TD><A HREF=#k:bool>bool</A>
130 </TD><TD ALIGN="CENTER">false</TD><TD></TD><TD></TD> </TR>
131 <TR><TD><A NAME=a:defaultdist HREF=#d:defaultdist>defaultdist</A>
132 </TD><TD>G</TD><TD>double</TD><TD ALIGN="CENTER">1+(avg. len)*sqrt(|V|)</TD><TD>epsilon</TD><TD>neato only</TD> </TR>
133 <TR><TD><A NAME=a:dim HREF=#d:dim>dim</A>
134 </TD><TD>G</TD><TD>int</TD><TD ALIGN="CENTER">2</TD><TD>2</TD><TD>sfdp, fdp, neato only</TD> </TR>
135 <TR><TD><A NAME=a:dimen HREF=#d:dimen>dimen</A>
136 </TD><TD>G</TD><TD>int</TD><TD ALIGN="CENTER">2</TD><TD>2</TD><TD>sfdp, fdp, neato only</TD> </TR>
137 <TR><TD><A NAME=a:dir HREF=#d:dir>dir</A>
138 </TD><TD>E</TD><TD><A HREF=#k:dirType>dirType</A>
139 </TD><TD ALIGN="CENTER">forward(directed)<BR>none(undirected)</TD><TD></TD><TD></TD> </TR>
140 <TR><TD><A NAME=a:diredgeconstraints HREF=#d:diredgeconstraints>diredgeconstraints</A>
141 </TD><TD>G</TD><TD>string<BR><A HREF=#k:bool>bool</A>
142 </TD><TD ALIGN="CENTER">false</TD><TD></TD><TD>neato only</TD> </TR>
143 <TR><TD><A NAME=a:distortion HREF=#d:distortion>distortion</A>
144 </TD><TD>N</TD><TD>double</TD><TD ALIGN="CENTER">0.0</TD><TD>-100.0</TD><TD></TD> </TR>
145 <TR><TD><A NAME=a:dpi HREF=#d:dpi>dpi</A>
146 </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>
147 <TR><TD><A NAME=a:edgeURL HREF=#d:edgeURL>edgeURL</A>
148 </TD><TD>E</TD><TD><A HREF=#k:escString>escString</A>
149 </TD><TD ALIGN="CENTER">""</TD><TD></TD><TD>svg, map only</TD> </TR>
150 <TR><TD><A NAME=a:edgehref HREF=#d:edgehref>edgehref</A>
151 </TD><TD>E</TD><TD><A HREF=#k:escString>escString</A>
152 </TD><TD ALIGN="CENTER">""</TD><TD></TD><TD>svg, map only</TD> </TR>
153 <TR><TD><A NAME=a:edgetarget HREF=#d:edgetarget>edgetarget</A>
154 </TD><TD>E</TD><TD><A HREF=#k:escString>escString</A>
155 </TD><TD ALIGN="CENTER">&#60;none&#62;</TD><TD></TD><TD>svg, map only</TD> </TR>
156 <TR><TD><A NAME=a:edgetooltip HREF=#d:edgetooltip>edgetooltip</A>
157 </TD><TD>E</TD><TD><A HREF=#k:escString>escString</A>
158 </TD><TD ALIGN="CENTER">""</TD><TD></TD><TD>svg, cmap only</TD> </TR>
159 <TR><TD><A NAME=a:epsilon HREF=#d:epsilon>epsilon</A>
160 </TD><TD>G</TD><TD>double</TD><TD ALIGN="CENTER">.0001 * # nodes(mode == KK)<BR>.0001(mode == major)</TD><TD></TD><TD>neato only</TD> </TR>
161 <TR><TD><A NAME=a:esep HREF=#d:esep>esep</A>
162 </TD><TD>G</TD><TD>double<BR><A HREF=#k:pointf>pointf</A>
163 </TD><TD ALIGN="CENTER">+3</TD><TD></TD><TD>not dot</TD> </TR>
164 <TR><TD><A NAME=a:fillcolor HREF=#d:fillcolor>fillcolor</A>
165 </TD><TD>NC</TD><TD><A HREF=#k:color>color</A>
166 </TD><TD ALIGN="CENTER">lightgrey(nodes)<BR>black(clusters)</TD><TD></TD><TD></TD> </TR>
167 <TR><TD><A NAME=a:fixedsize HREF=#d:fixedsize>fixedsize</A>
168 </TD><TD>N</TD><TD><A HREF=#k:bool>bool</A>
169 </TD><TD ALIGN="CENTER">false</TD><TD></TD><TD></TD> </TR>
170 <TR><TD><A NAME=a:fontcolor HREF=#d:fontcolor>fontcolor</A>
171 </TD><TD>ENGC</TD><TD><A HREF=#k:color>color</A>
172 </TD><TD ALIGN="CENTER">black</TD><TD></TD><TD></TD> </TR>
173 <TR><TD><A NAME=a:fontname HREF=#d:fontname>fontname</A>
174 </TD><TD>ENGC</TD><TD>string</TD><TD ALIGN="CENTER">"Times-Roman"</TD><TD></TD><TD></TD> </TR>
175 <TR><TD><A NAME=a:fontnames HREF=#d:fontnames>fontnames</A>
176 </TD><TD>G</TD><TD>string</TD><TD ALIGN="CENTER">""</TD><TD></TD><TD>svg only</TD> </TR>
177 <TR><TD><A NAME=a:fontpath HREF=#d:fontpath>fontpath</A>
178 </TD><TD>G</TD><TD>string</TD><TD ALIGN="CENTER">system-dependent</TD><TD></TD><TD></TD> </TR>
179 <TR><TD><A NAME=a:fontsize HREF=#d:fontsize>fontsize</A>
180 </TD><TD>ENGC</TD><TD>double</TD><TD ALIGN="CENTER">14.0</TD><TD>1.0</TD><TD></TD> </TR>
181 <TR><TD><A NAME=a:group HREF=#d:group>group</A>
182 </TD><TD>N</TD><TD>string</TD><TD ALIGN="CENTER">""</TD><TD></TD><TD>dot only</TD> </TR>
183 <TR><TD><A NAME=a:headURL HREF=#d:headURL>headURL</A>
184 </TD><TD>E</TD><TD><A HREF=#k:escString>escString</A>
185 </TD><TD ALIGN="CENTER">""</TD><TD></TD><TD>svg, map only</TD> </TR>
186 <TR><TD><A NAME=a:headclip HREF=#d:headclip>headclip</A>
187 </TD><TD>E</TD><TD><A HREF=#k:bool>bool</A>
188 </TD><TD ALIGN="CENTER">true</TD><TD></TD><TD></TD> </TR>
189 <TR><TD><A NAME=a:headhref HREF=#d:headhref>headhref</A>
190 </TD><TD>E</TD><TD><A HREF=#k:escString>escString</A>
191 </TD><TD ALIGN="CENTER">""</TD><TD></TD><TD>svg, map only</TD> </TR>
192 <TR><TD><A NAME=a:headlabel HREF=#d:headlabel>headlabel</A>
193 </TD><TD>E</TD><TD><A HREF=#k:lblString>lblString</A>
194 </TD><TD ALIGN="CENTER">""</TD><TD></TD><TD></TD> </TR>
195 <TR><TD><A NAME=a:headport HREF=#d:headport>headport</A>
196 </TD><TD>E</TD><TD><A HREF=#k:portPos>portPos</A>
197 </TD><TD ALIGN="CENTER">center</TD><TD></TD><TD></TD> </TR>
198 <TR><TD><A NAME=a:headtarget HREF=#d:headtarget>headtarget</A>
199 </TD><TD>E</TD><TD><A HREF=#k:escString>escString</A>
200 </TD><TD ALIGN="CENTER">&#60;none&#62;</TD><TD></TD><TD>svg, map only</TD> </TR>
201 <TR><TD><A NAME=a:headtooltip HREF=#d:headtooltip>headtooltip</A>
202 </TD><TD>E</TD><TD><A HREF=#k:escString>escString</A>
203 </TD><TD ALIGN="CENTER">""</TD><TD></TD><TD>svg, cmap only</TD> </TR>
204 <TR><TD><A NAME=a:height HREF=#d:height>height</A>
205 </TD><TD>N</TD><TD>double</TD><TD ALIGN="CENTER">0.5</TD><TD>0.02</TD><TD></TD> </TR>
206 <TR><TD><A NAME=a:href HREF=#d:href>href</A>
207 </TD><TD>E</TD><TD><A HREF=#k:escString>escString</A>
208 </TD><TD ALIGN="CENTER">""</TD><TD></TD><TD>svg, postscript, map only</TD> </TR>
209 <TR><TD><A NAME=a:id HREF=#d:id>id</A>
210 </TD><TD>GNE</TD><TD><A HREF=#k:lblString>lblString</A>
211 </TD><TD ALIGN="CENTER">""</TD><TD></TD><TD>svg, postscript, map only</TD> </TR>
212 <TR><TD><A NAME=a:image HREF=#d:image>image</A>
213 </TD><TD>N</TD><TD>string</TD><TD ALIGN="CENTER">""</TD><TD></TD><TD></TD> </TR>
214 <TR><TD><A NAME=a:imagescale HREF=#d:imagescale>imagescale</A>
215 </TD><TD>N</TD><TD><A HREF=#k:bool>bool</A>
216 <BR>string</TD><TD ALIGN="CENTER">false</TD><TD></TD><TD></TD> </TR>
217 <TR><TD><A NAME=a:label HREF=#d:label>label</A>
218 </TD><TD>ENGC</TD><TD><A HREF=#k:lblString>lblString</A>
219 </TD><TD ALIGN="CENTER">"\N" (nodes)<BR>"" (otherwise)</TD><TD></TD><TD></TD> </TR>
220 <TR><TD><A NAME=a:labelURL HREF=#d:labelURL>labelURL</A>
221 </TD><TD>E</TD><TD><A HREF=#k:escString>escString</A>
222 </TD><TD ALIGN="CENTER">""</TD><TD></TD><TD>svg, map only</TD> </TR>
223 <TR><TD><A NAME=a:labelangle HREF=#d:labelangle>labelangle</A>
224 </TD><TD>E</TD><TD>double</TD><TD ALIGN="CENTER">-25.0</TD><TD>-180.0</TD><TD></TD> </TR>
225 <TR><TD><A NAME=a:labeldistance HREF=#d:labeldistance>labeldistance</A>
226 </TD><TD>E</TD><TD>double</TD><TD ALIGN="CENTER">1.0</TD><TD>0.0</TD><TD></TD> </TR>
227 <TR><TD><A NAME=a:labelfloat HREF=#d:labelfloat>labelfloat</A>
228 </TD><TD>E</TD><TD><A HREF=#k:bool>bool</A>
229 </TD><TD ALIGN="CENTER">false</TD><TD></TD><TD></TD> </TR>
230 <TR><TD><A NAME=a:labelfontcolor HREF=#d:labelfontcolor>labelfontcolor</A>
231 </TD><TD>E</TD><TD><A HREF=#k:color>color</A>
232 </TD><TD ALIGN="CENTER">black</TD><TD></TD><TD></TD> </TR>
233 <TR><TD><A NAME=a:labelfontname HREF=#d:labelfontname>labelfontname</A>
234 </TD><TD>E</TD><TD>string</TD><TD ALIGN="CENTER">"Times-Roman"</TD><TD></TD><TD></TD> </TR>
235 <TR><TD><A NAME=a:labelfontsize HREF=#d:labelfontsize>labelfontsize</A>
236 </TD><TD>E</TD><TD>double</TD><TD ALIGN="CENTER">14.0</TD><TD>1.0</TD><TD></TD> </TR>
237 <TR><TD><A NAME=a:labelhref HREF=#d:labelhref>labelhref</A>
238 </TD><TD>E</TD><TD><A HREF=#k:escString>escString</A>
239 </TD><TD ALIGN="CENTER">""</TD><TD></TD><TD>svg, map only</TD> </TR>
240 <TR><TD><A NAME=a:labeljust HREF=#d:labeljust>labeljust</A>
241 </TD><TD>GC</TD><TD>string</TD><TD ALIGN="CENTER">"c"</TD><TD></TD><TD></TD> </TR>
242 <TR><TD><A NAME=a:labelloc HREF=#d:labelloc>labelloc</A>
243 </TD><TD>GC</TD><TD>string</TD><TD ALIGN="CENTER">"t"(clusters)<BR>"b"(root graphs)</TD><TD></TD><TD></TD> </TR>
244 <TR><TD><A NAME=aa:labelloc HREF=#dd:labelloc>labelloc</A>
245 </TD><TD>N</TD><TD>string</TD><TD ALIGN="CENTER">"c"(clusters)</TD><TD></TD><TD></TD> </TR>
246 <TR><TD><A NAME=a:labeltarget HREF=#d:labeltarget>labeltarget</A>
247 </TD><TD>E</TD><TD><A HREF=#k:escString>escString</A>
248 </TD><TD ALIGN="CENTER">&#60;none&#62;</TD><TD></TD><TD>svg, map only</TD> </TR>
249 <TR><TD><A NAME=a:labeltooltip HREF=#d:labeltooltip>labeltooltip</A>
250 </TD><TD>E</TD><TD><A HREF=#k:escString>escString</A>
251 </TD><TD ALIGN="CENTER">""</TD><TD></TD><TD>svg, cmap only</TD> </TR>
252 <TR><TD><A NAME=a:landscape HREF=#d:landscape>landscape</A>
253 </TD><TD>G</TD><TD><A HREF=#k:bool>bool</A>
254 </TD><TD ALIGN="CENTER">false</TD><TD></TD><TD></TD> </TR>
255 <TR><TD><A NAME=a:layer HREF=#d:layer>layer</A>
256 </TD><TD>EN</TD><TD><A HREF=#k:layerRange>layerRange</A>
257 </TD><TD ALIGN="CENTER">""</TD><TD></TD><TD></TD> </TR>
258 <TR><TD><A NAME=a:layers HREF=#d:layers>layers</A>
259 </TD><TD>G</TD><TD><A HREF=#k:layerList>layerList</A>
260 </TD><TD ALIGN="CENTER">""</TD><TD></TD><TD></TD> </TR>
261 <TR><TD><A NAME=a:layersep HREF=#d:layersep>layersep</A>
262 </TD><TD>G</TD><TD>string</TD><TD ALIGN="CENTER">" :\t"</TD><TD></TD><TD></TD> </TR>
263 <TR><TD><A NAME=a:layout HREF=#d:layout>layout</A>
264 </TD><TD>G</TD><TD>string</TD><TD ALIGN="CENTER">""</TD><TD></TD><TD></TD> </TR>
265 <TR><TD><A NAME=a:len HREF=#d:len>len</A>
266 </TD><TD>E</TD><TD>double</TD><TD ALIGN="CENTER">1.0(neato)<BR>0.3(fdp)</TD><TD></TD><TD>fdp, neato only</TD> </TR>
267 <TR><TD><A NAME=a:levels HREF=#d:levels>levels</A>
268 </TD><TD>G</TD><TD>int</TD><TD ALIGN="CENTER">MAXINT</TD><TD>0.0</TD><TD>sfdp only</TD> </TR>
269 <TR><TD><A NAME=a:levelsgap HREF=#d:levelsgap>levelsgap</A>
270 </TD><TD>G</TD><TD>double</TD><TD ALIGN="CENTER">0.0</TD><TD></TD><TD>neato only</TD> </TR>
271 <TR><TD><A NAME=a:lhead HREF=#d:lhead>lhead</A>
272 </TD><TD>E</TD><TD>string</TD><TD ALIGN="CENTER">""</TD><TD></TD><TD>dot only</TD> </TR>
273 <TR><TD><A NAME=a:lp HREF=#d:lp>lp</A>
274 </TD><TD>EGC</TD><TD><A HREF=#k:point>point</A>
275 </TD><TD ALIGN="CENTER"></TD><TD></TD><TD>write only</TD> </TR>
276 <TR><TD><A NAME=a:ltail HREF=#d:ltail>ltail</A>
277 </TD><TD>E</TD><TD>string</TD><TD ALIGN="CENTER">""</TD><TD></TD><TD>dot only</TD> </TR>
278 <TR><TD><A NAME=a:margin HREF=#d:margin>margin</A>
279 </TD><TD>NG</TD><TD>double<BR><A HREF=#k:pointf>pointf</A>
280 </TD><TD ALIGN="CENTER">&#60;device-dependent&#62;</TD><TD></TD><TD></TD> </TR>
281 <TR><TD><A NAME=a:maxiter HREF=#d:maxiter>maxiter</A>
282 </TD><TD>G</TD><TD>int</TD><TD ALIGN="CENTER">100 * # nodes(mode == KK)<BR>200(mode == major)<BR>600(fdp)</TD><TD></TD><TD>fdp, neato only</TD> </TR>
283 <TR><TD><A NAME=a:mclimit HREF=#d:mclimit>mclimit</A>
284 </TD><TD>G</TD><TD>double</TD><TD ALIGN="CENTER">1.0</TD><TD></TD><TD>dot only</TD> </TR>
285 <TR><TD><A NAME=a:mindist HREF=#d:mindist>mindist</A>
286 </TD><TD>G</TD><TD>double</TD><TD ALIGN="CENTER">1.0</TD><TD>0.0</TD><TD>circo only</TD> </TR>
287 <TR><TD><A NAME=a:minlen HREF=#d:minlen>minlen</A>
288 </TD><TD>E</TD><TD>int</TD><TD ALIGN="CENTER">1</TD><TD>0</TD><TD>dot only</TD> </TR>
289 <TR><TD><A NAME=a:mode HREF=#d:mode>mode</A>
290 </TD><TD>G</TD><TD>string</TD><TD ALIGN="CENTER">"major"</TD><TD></TD><TD>neato only</TD> </TR>
291 <TR><TD><A NAME=a:model HREF=#d:model>model</A>
292 </TD><TD>G</TD><TD>string</TD><TD ALIGN="CENTER">"shortpath"</TD><TD></TD><TD>neato only</TD> </TR>
293 <TR><TD><A NAME=a:mosek HREF=#d:mosek>mosek</A>
294 </TD><TD>G</TD><TD><A HREF=#k:bool>bool</A>
295 </TD><TD ALIGN="CENTER">false</TD><TD></TD><TD>neato only</TD> </TR>
296 <TR><TD><A NAME=a:nodesep HREF=#d:nodesep>nodesep</A>
297 </TD><TD>G</TD><TD>double</TD><TD ALIGN="CENTER">0.25</TD><TD>0.02</TD><TD>dot only</TD> </TR>
298 <TR><TD><A NAME=a:nojustify HREF=#d:nojustify>nojustify</A>
299 </TD><TD>GCNE</TD><TD><A HREF=#k:bool>bool</A>
300 </TD><TD ALIGN="CENTER">false</TD><TD></TD><TD></TD> </TR>
301 <TR><TD><A NAME=a:normalize HREF=#d:normalize>normalize</A>
302 </TD><TD>G</TD><TD><A HREF=#k:bool>bool</A>
303 </TD><TD ALIGN="CENTER">false</TD><TD></TD><TD>not dot</TD> </TR>
304 <TR><TD><A NAME=a:nslimit HREF=#d:nslimit>nslimit</A>
305 <BR><A NAME=a:nslimit1 HREF=#d:nslimit1>nslimit1</A>
306 </TD><TD>G</TD><TD>double</TD><TD ALIGN="CENTER"></TD><TD></TD><TD>dot only</TD> </TR>
307 <TR><TD><A NAME=a:ordering HREF=#d:ordering>ordering</A>
308 </TD><TD>G</TD><TD>string</TD><TD ALIGN="CENTER">""</TD><TD></TD><TD>dot only</TD> </TR>
309 <TR><TD><A NAME=a:orientation HREF=#d:orientation>orientation</A>
310 </TD><TD>N</TD><TD>double</TD><TD ALIGN="CENTER">0.0</TD><TD>360.0</TD><TD></TD> </TR>
311 <TR><TD><A NAME=aa:orientation HREF=#dd:orientation>orientation</A>
312 </TD><TD>G</TD><TD>string</TD><TD ALIGN="CENTER">""</TD><TD></TD><TD></TD> </TR>
313 <TR><TD><A NAME=a:outputorder HREF=#d:outputorder>outputorder</A>
314 </TD><TD>G</TD><TD><A HREF=#k:outputMode>outputMode</A>
315 </TD><TD ALIGN="CENTER">breadthfirst</TD><TD></TD><TD></TD> </TR>
316 <TR><TD><A NAME=a:overlap HREF=#d:overlap>overlap</A>
317 </TD><TD>G</TD><TD>string<BR><A HREF=#k:bool>bool</A>
318 </TD><TD ALIGN="CENTER">true</TD><TD></TD><TD>not dot</TD> </TR>
319 <TR><TD><A NAME=a:overlap_scaling HREF=#d:overlap_scaling>overlap_scaling</A>
320 </TD><TD>G</TD><TD>double</TD><TD ALIGN="CENTER">-4</TD><TD>-1.0e10</TD><TD>prism only</TD> </TR>
321 <TR><TD><A NAME=a:pack HREF=#d:pack>pack</A>
322 </TD><TD>G</TD><TD><A HREF=#k:bool>bool</A>
323 <BR>int</TD><TD ALIGN="CENTER">false</TD><TD></TD><TD>not dot</TD> </TR>
324 <TR><TD><A NAME=a:packmode HREF=#d:packmode>packmode</A>
325 </TD><TD>G</TD><TD><A HREF=#k:packMode>packMode</A>
326 </TD><TD ALIGN="CENTER">node</TD><TD></TD><TD>not dot</TD> </TR>
327 <TR><TD><A NAME=a:pad HREF=#d:pad>pad</A>
328 </TD><TD>G</TD><TD>double<BR><A HREF=#k:pointf>pointf</A>
329 </TD><TD ALIGN="CENTER">0.0555 (4 points)</TD><TD></TD><TD></TD> </TR>
330 <TR><TD><A NAME=a:page HREF=#d:page>page</A>
331 </TD><TD>G</TD><TD><A HREF=#k:pointf>pointf</A>
332 </TD><TD ALIGN="CENTER"></TD><TD></TD><TD></TD> </TR>
333 <TR><TD><A NAME=a:pagedir HREF=#d:pagedir>pagedir</A>
334 </TD><TD>G</TD><TD><A HREF=#k:pagedir>pagedir</A>
335 </TD><TD ALIGN="CENTER">BL</TD><TD></TD><TD></TD> </TR>
336 <TR><TD><A NAME=a:pencolor HREF=#d:pencolor>pencolor</A>
337 </TD><TD>C</TD><TD><A HREF=#k:color>color</A>
338 </TD><TD ALIGN="CENTER">black</TD><TD></TD><TD></TD> </TR>
339 <TR><TD><A NAME=a:penwidth HREF=#d:penwidth>penwidth</A>
340 </TD><TD>CNE</TD><TD>double</TD><TD ALIGN="CENTER">1.0</TD><TD>0.0</TD><TD></TD> </TR>
341 <TR><TD><A NAME=a:peripheries HREF=#d:peripheries>peripheries</A>
342 </TD><TD>NC</TD><TD>int</TD><TD ALIGN="CENTER">shape default(nodes)<BR>1(clusters)</TD><TD>0</TD><TD></TD> </TR>
343 <TR><TD><A NAME=a:pin HREF=#d:pin>pin</A>
344 </TD><TD>N</TD><TD><A HREF=#k:bool>bool</A>
345 </TD><TD ALIGN="CENTER">false</TD><TD></TD><TD>fdp, neato only</TD> </TR>
346 <TR><TD><A NAME=a:pos HREF=#d:pos>pos</A>
347 </TD><TD>EN</TD><TD><A HREF=#k:point>point</A>
348 <BR><A HREF=#k:splineType>splineType</A>
349 </TD><TD ALIGN="CENTER"></TD><TD></TD><TD></TD> </TR>
350 <TR><TD><A NAME=a:quadtree HREF=#d:quadtree>quadtree</A>
351 </TD><TD>G</TD><TD><A HREF=#k:quadType>quadType</A>
352 <BR><A HREF=#k:bool>bool</A>
353 </TD><TD ALIGN="CENTER">"normal"</TD><TD></TD><TD>sfdp only</TD> </TR>
354 <TR><TD><A NAME=a:quantum HREF=#d:quantum>quantum</A>
355 </TD><TD>G</TD><TD>double</TD><TD ALIGN="CENTER">0.0</TD><TD>0.0</TD><TD></TD> </TR>
356 <TR><TD><A NAME=a:rank HREF=#d:rank>rank</A>
357 </TD><TD>S</TD><TD><A HREF=#k:rankType>rankType</A>
358 </TD><TD ALIGN="CENTER"></TD><TD></TD><TD>dot only</TD> </TR>
359 <TR><TD><A NAME=a:rankdir HREF=#d:rankdir>rankdir</A>
360 </TD><TD>G</TD><TD><A HREF=#k:rankdir>rankdir</A>
361 </TD><TD ALIGN="CENTER">TB</TD><TD></TD><TD>dot only</TD> </TR>
362 <TR><TD><A NAME=a:ranksep HREF=#d:ranksep>ranksep</A>
363 </TD><TD>G</TD><TD>double</TD><TD ALIGN="CENTER">0.5(dot)<BR>1.0(twopi)</TD><TD>0.02</TD><TD>twopi, dot only</TD> </TR>
364 <TR><TD><A NAME=a:ratio HREF=#d:ratio>ratio</A>
365 </TD><TD>G</TD><TD>double<BR>string</TD><TD ALIGN="CENTER"></TD><TD></TD><TD></TD> </TR>
366 <TR><TD><A NAME=a:rects HREF=#d:rects>rects</A>
367 </TD><TD>N</TD><TD><A HREF=#k:rect>rect</A>
368 </TD><TD ALIGN="CENTER"></TD><TD></TD><TD>write only</TD> </TR>
369 <TR><TD><A NAME=a:regular HREF=#d:regular>regular</A>
370 </TD><TD>N</TD><TD><A HREF=#k:bool>bool</A>
371 </TD><TD ALIGN="CENTER">false</TD><TD></TD><TD></TD> </TR>
372 <TR><TD><A NAME=a:remincross HREF=#d:remincross>remincross</A>
373 </TD><TD>G</TD><TD><A HREF=#k:bool>bool</A>
374 </TD><TD ALIGN="CENTER">false</TD><TD></TD><TD>dot only</TD> </TR>
375 <TR><TD><A NAME=a:repulsiveforce HREF=#d:repulsiveforce>repulsiveforce</A>
376 </TD><TD>G</TD><TD>double</TD><TD ALIGN="CENTER">1.0</TD><TD>0.0</TD><TD>sfdp only</TD> </TR>
377 <TR><TD><A NAME=a:resolution HREF=#d:resolution>resolution</A>
378 </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>
379 <TR><TD><A NAME=a:root HREF=#d:root>root</A>
380 </TD><TD>GN</TD><TD>string<BR><A HREF=#k:bool>bool</A>
381 </TD><TD ALIGN="CENTER">""(graphs)<BR>false(nodes)</TD><TD></TD><TD>circo, twopi only</TD> </TR>
382 <TR><TD><A NAME=a:rotate HREF=#d:rotate>rotate</A>
383 </TD><TD>G</TD><TD>int</TD><TD ALIGN="CENTER">0</TD><TD></TD><TD></TD> </TR>
384 <TR><TD><A NAME=a:samehead HREF=#d:samehead>samehead</A>
385 </TD><TD>E</TD><TD>string</TD><TD ALIGN="CENTER">""</TD><TD></TD><TD>dot only</TD> </TR>
386 <TR><TD><A NAME=a:sametail HREF=#d:sametail>sametail</A>
387 </TD><TD>E</TD><TD>string</TD><TD ALIGN="CENTER">""</TD><TD></TD><TD>dot only</TD> </TR>
388 <TR><TD><A NAME=a:samplepoints HREF=#d:samplepoints>samplepoints</A>
389 </TD><TD>N</TD><TD>int</TD><TD ALIGN="CENTER">8(output)<BR>20(overlap and image maps)</TD><TD></TD><TD></TD> </TR>
390 <TR><TD><A NAME=a:searchsize HREF=#d:searchsize>searchsize</A>
391 </TD><TD>G</TD><TD>int</TD><TD ALIGN="CENTER">30</TD><TD></TD><TD>dot only</TD> </TR>
392 <TR><TD><A NAME=a:sep HREF=#d:sep>sep</A>
393 </TD><TD>G</TD><TD>double<BR><A HREF=#k:pointf>pointf</A>
394 </TD><TD ALIGN="CENTER">+4</TD><TD></TD><TD>not dot</TD> </TR>
395 <TR><TD><A NAME=a:shape HREF=#d:shape>shape</A>
396 </TD><TD>N</TD><TD><A HREF=#k:shape>shape</A>
397 </TD><TD ALIGN="CENTER">ellipse</TD><TD></TD><TD></TD> </TR>
398 <TR><TD><A NAME=a:shapefile HREF=#d:shapefile>shapefile</A>
399 </TD><TD>N</TD><TD>string</TD><TD ALIGN="CENTER">""</TD><TD></TD><TD></TD> </TR>
400 <TR><TD><A NAME=a:showboxes HREF=#d:showboxes>showboxes</A>
401 </TD><TD>ENG</TD><TD>int</TD><TD ALIGN="CENTER">0</TD><TD>0</TD><TD>dot only</TD> </TR>
402 <TR><TD><A NAME=a:sides HREF=#d:sides>sides</A>
403 </TD><TD>N</TD><TD>int</TD><TD ALIGN="CENTER">4</TD><TD>0</TD><TD></TD> </TR>
404 <TR><TD><A NAME=a:size HREF=#d:size>size</A>
405 </TD><TD>G</TD><TD><A HREF=#k:pointf>pointf</A>
406 </TD><TD ALIGN="CENTER"></TD><TD></TD><TD></TD> </TR>
407 <TR><TD><A NAME=a:skew HREF=#d:skew>skew</A>
408 </TD><TD>N</TD><TD>double</TD><TD ALIGN="CENTER">0.0</TD><TD>-100.0</TD><TD></TD> </TR>
409 <TR><TD><A NAME=a:smoothing HREF=#d:smoothing>smoothing</A>
410 </TD><TD>G</TD><TD><A HREF=#k:smoothType>smoothType</A>
411 </TD><TD ALIGN="CENTER">"none"</TD><TD></TD><TD>sfdp only</TD> </TR>
412 <TR><TD><A NAME=a:sortv HREF=#d:sortv>sortv</A>
413 </TD><TD>GCN</TD><TD>int</TD><TD ALIGN="CENTER">0</TD><TD>0</TD><TD></TD> </TR>
414 <TR><TD><A NAME=a:splines HREF=#d:splines>splines</A>
415 </TD><TD>G</TD><TD><A HREF=#k:bool>bool</A>
416 <BR>string</TD><TD ALIGN="CENTER"></TD><TD></TD><TD></TD> </TR>
417 <TR><TD><A NAME=a:start HREF=#d:start>start</A>
418 </TD><TD>G</TD><TD><A HREF=#k:startType>startType</A>
419 </TD><TD ALIGN="CENTER">""</TD><TD></TD><TD>fdp, neato only</TD> </TR>
420 <TR><TD><A NAME=a:style HREF=#d:style>style</A>
421 </TD><TD>ENC</TD><TD><A HREF=#k:style>style</A>
422 </TD><TD ALIGN="CENTER"></TD><TD></TD><TD></TD> </TR>
423 <TR><TD><A NAME=a:stylesheet HREF=#d:stylesheet>stylesheet</A>
424 </TD><TD>G</TD><TD>string</TD><TD ALIGN="CENTER">""</TD><TD></TD><TD>svg only</TD> </TR>
425 <TR><TD><A NAME=a:tailURL HREF=#d:tailURL>tailURL</A>
426 </TD><TD>E</TD><TD><A HREF=#k:escString>escString</A>
427 </TD><TD ALIGN="CENTER">""</TD><TD></TD><TD>svg, map only</TD> </TR>
428 <TR><TD><A NAME=a:tailclip HREF=#d:tailclip>tailclip</A>
429 </TD><TD>E</TD><TD><A HREF=#k:bool>bool</A>
430 </TD><TD ALIGN="CENTER">true</TD><TD></TD><TD></TD> </TR>
431 <TR><TD><A NAME=a:tailhref HREF=#d:tailhref>tailhref</A>
432 </TD><TD>E</TD><TD><A HREF=#k:escString>escString</A>
433 </TD><TD ALIGN="CENTER">""</TD><TD></TD><TD>svg, map only</TD> </TR>
434 <TR><TD><A NAME=a:taillabel HREF=#d:taillabel>taillabel</A>
435 </TD><TD>E</TD><TD><A HREF=#k:lblString>lblString</A>
436 </TD><TD ALIGN="CENTER">""</TD><TD></TD><TD></TD> </TR>
437 <TR><TD><A NAME=a:tailport HREF=#d:tailport>tailport</A>
438 </TD><TD>E</TD><TD><A HREF=#k:portPos>portPos</A>
439 </TD><TD ALIGN="CENTER">center</TD><TD></TD><TD></TD> </TR>
440 <TR><TD><A NAME=a:tailtarget HREF=#d:tailtarget>tailtarget</A>
441 </TD><TD>E</TD><TD><A HREF=#k:escString>escString</A>
442 </TD><TD ALIGN="CENTER">&#60;none&#62;</TD><TD></TD><TD>svg, map only</TD> </TR>
443 <TR><TD><A NAME=a:tailtooltip HREF=#d:tailtooltip>tailtooltip</A>
444 </TD><TD>E</TD><TD><A HREF=#k:escString>escString</A>
445 </TD><TD ALIGN="CENTER">""</TD><TD></TD><TD>svg, cmap only</TD> </TR>
446 <TR><TD><A NAME=a:target HREF=#d:target>target</A>
447 </TD><TD>ENGC</TD><TD><A HREF=#k:escString>escString</A>
448 <BR>string</TD><TD ALIGN="CENTER">&#60;none&#62;</TD><TD></TD><TD>svg, map only</TD> </TR>
449 <TR><TD><A NAME=a:tooltip HREF=#d:tooltip>tooltip</A>
450 </TD><TD>NEC</TD><TD><A HREF=#k:escString>escString</A>
451 </TD><TD ALIGN="CENTER">""</TD><TD></TD><TD>svg, cmap only</TD> </TR>
452 <TR><TD><A NAME=a:truecolor HREF=#d:truecolor>truecolor</A>
453 </TD><TD>G</TD><TD><A HREF=#k:bool>bool</A>
454 </TD><TD ALIGN="CENTER"></TD><TD></TD><TD>bitmap output only</TD> </TR>
455 <TR><TD><A NAME=a:vertices HREF=#d:vertices>vertices</A>
456 </TD><TD>N</TD><TD><A HREF=#k:pointfList>pointfList</A>
457 </TD><TD ALIGN="CENTER"></TD><TD></TD><TD>write only</TD> </TR>
458 <TR><TD><A NAME=a:viewport HREF=#d:viewport>viewport</A>
459 </TD><TD>G</TD><TD><A HREF=#k:viewPort>viewPort</A>
460 </TD><TD ALIGN="CENTER">""</TD><TD></TD><TD></TD> </TR>
461 <TR><TD><A NAME=a:voro_margin HREF=#d:voro_margin>voro_margin</A>
462 </TD><TD>G</TD><TD>double</TD><TD ALIGN="CENTER">0.05</TD><TD>0.0</TD><TD>not dot</TD> </TR>
463 <TR><TD><A NAME=a:weight HREF=#d:weight>weight</A>
464 </TD><TD>E</TD><TD>double</TD><TD ALIGN="CENTER">1.0</TD><TD>0(dot)<BR>1(neato,fdp,sfdp)</TD><TD></TD> </TR>
465 <TR><TD><A NAME=a:width HREF=#d:width>width</A>
466 </TD><TD>N</TD><TD>double</TD><TD ALIGN="CENTER">0.75</TD><TD>0.01</TD><TD></TD> </TR>
467 <TR><TD><A NAME=a:z HREF=#d:z>z</A>
468 </TD><TD>N</TD><TD>double</TD><TD ALIGN="CENTER">0.0</TD><TD>-MAXFLOAT<BR>-1000</TD><TD></TD> </TR>
469 </TABLE>
470 <HR>
471 <H1>Attribute Descriptions</H1>
472 <DL>
473 <DT><A NAME=d:Damping HREF=#a:Damping><STRONG>Damping</STRONG></A>
474 <DD> Factor damping force motions. On each iteration, a nodes movement
475 is limited to this factor of its potential motion. By being less than
476 1.0, the system tends to ``cool'', thereby preventing cycling.
477
478 <DT><A NAME=d:K HREF=#a:K><STRONG>K</STRONG></A>
479 <DD> Spring constant used in virtual physical model. It roughly corresponds
480 to an ideal edge length (in inches), in that increasing K tends to
481 increase the distance between nodes.
482 Note that the edge attribute <A HREF=#d:len>len</A> can be used to
483 override this value for adjacent nodes.
484
485 <DT><A NAME=d:URL HREF=#a:URL><STRONG>URL</STRONG></A>
486 <DD> Hyperlinks incorporated into device-dependent output.
487 At present, used in ps2, cmap, i*map and svg formats.
488 For all these formats, URLs can be attached to nodes, edges and
489 clusters. URL attributes can also be attached to the root graph in ps2,
490 cmap and i*map formats. This serves as the base URL for relative URLs in the
491 former, and as the default image map file in the latter.
492 <P>
493 For svg, cmapx and imap output, the active area for a node is its
494 visible image.
495 For example, an unfilled
496 node with no drawn boundary will only be active on its label.
497 For other output, the active area is its bounding box.
498 The active area for a cluster is its bounding box.
499 For edges, the active areas are small circles where the edge contacts its head
500 and tail nodes. In addition, for svg, cmapx and imap, the active area
501 includes a thin polygon approximating the edge. The circles may
502 overlap the related node, and the edge URL dominates.
503 If the edge has a label, this will also be active.
504 Finally, if the edge has a head or tail label, this will also be active.
505 <P>
506 Note that, for edges, the attributes <A HREF=#d:headURL>headURL</A>,
507 <A HREF=#d:tailURL>tailURL</A>, <A HREF=#d:labelURL>labelURL</A> and
508 <A HREF=#d:edgeURL>edgeURL</A> allow control of various parts of an
509 edge.
510 Also note that, if active areas of two edges overlap, it is unspecified
511 which area dominates.
512
513 <DT><A NAME=d:arrowhead HREF=#a:arrowhead><STRONG>arrowhead</STRONG></A>
514 <DD> Style of arrowhead on the head node of an edge.
515 See also the <A HREF=#d:dir>dir</A> attribute,
516 and a <A HREF=#h:undir_note>limitation</A>.
517
518 <DT><A NAME=d:arrowsize HREF=#a:arrowsize><STRONG>arrowsize</STRONG></A>
519 <DD> Multiplicative scale factor for arrowheads.
520
521 <DT><A NAME=d:arrowtail HREF=#a:arrowtail><STRONG>arrowtail</STRONG></A>
522 <DD> Style of arrowhead on the tail node of an edge.
523 See also the <A HREF=#d:dir>dir</A> attribute,
524 and a <A HREF=#h:undir_note>limitation</A>.
525
526 <DT><A NAME=d:aspect HREF=#a:aspect><STRONG>aspect</STRONG></A>
527 <DD> Target aspect ratio (width of the layout divided by the height)
528 of the graph drawing. If unset, dot minimizes the total edge length.
529 For certain graphs, like those with large fan-in or fan-out, this can
530 lead to very wide layouts. Setting <TT>aspect</TT> will cause dot to try
531 to adjust the layout to get an aspect ratio close to that specified
532 by <TT>aspect</TT>.
533 <P>
534 By default, dot will do 5 passes attempting to achieve the desired
535 aspect ratio. For certain graphs, more passes will be needed to get
536 close enough. The <TT>aspect</TT> attribute can also be used to
537 specify the maximum number of passes to try.
538 <P>
539 At present, there is no mechanism for widening a very tall layout.
540 Also, the algorithm doesn't handle clusters, nor disconnected graphs.
541 For the latter case, one can split the pipeline<BR>
542 <TT>ccomps -x | dot | gvpack | neato -n2</TT>
543 to get a similar effect.
544
545 <DT><A NAME=d:bb HREF=#a:bb><STRONG>bb</STRONG></A>
546 <DD> Bounding box of drawing in points.
547
548 <DT><A NAME=d:bgcolor HREF=#a:bgcolor><STRONG>bgcolor</STRONG></A>
549 <DD> When attached to the root graph, this color is used as the background for
550 entire canvas. When a cluster attribute, it is used as the initial
551 background for the cluster. If a cluster has a filled
552 <A HREF=#d:style>style</A>, the
553 cluster's <A HREF=#d:fillcolor>fillcolor</A> will overlay the
554 background color.
555 <P>
556 If no background color is specified for the root graph, no graphics
557 operation are performed on the background. This works fine for
558 PostScript but for bitmap output, all bits are initialized to something.
559 This means that when the bitmap output is included in some other
560 document, all of the bits within the bitmap's bounding box will be
561 set, overwriting whatever color or graphics where already on the page.
562 If this effect is not desired, and you only want to set bits explicitly
563 assigned in drawing the graph, set <B>bgcolor</B>="transparent".
564
565 <DT><A NAME=d:center HREF=#a:center><STRONG>center</STRONG></A>
566 <DD> If true, the drawing is centered in the output canvas.
567
568 <DT><A NAME=d:charset HREF=#a:charset><STRONG>charset</STRONG></A>
569 <DD> Specifies the character encoding used when interpreting string input
570 as a text label. The default value is <TT>"UTF-8"</TT>.
571 The other legal value is <TT>"iso-8859-1"</TT> or,
572 equivalently,
573 <TT>"Latin1"</TT>. The <B>charset</B> attribute is case-insensitive.
574 Note that if the character encoding used in the input does not
575 match the <B>charset</B> value, the resulting output may be very strange.
576
577 <DT><A NAME=d:clusterrank HREF=#a:clusterrank><STRONG>clusterrank</STRONG></A>
578 <DD> Mode used for handling clusters. If <B>clusterrank</B> is "local", a
579 subgraph whose name begins with "cluster" is given special treatment.
580 The subgraph is laid out separately, and then integrated as a unit into
581 its parent graph, with a bounding rectangle drawn about it.
582 If the cluster has a <A HREF=#d:label>label</A> parameter, this label
583 is displayed within the rectangle.
584 Note also that there can be clusters within clusters.
585 At present, the modes "global" and "none"
586 appear to be identical, both turning off the special cluster processing.
587
588 <DT><A NAME=d:color HREF=#a:color><STRONG>color</STRONG></A>
589 <DD> Basic drawing color for graphics, not text. For the latter, use the
590 <A HREF=#d.fontcolor>fontcolor</A> attribute.
591 <P>
592 For edges, the value
593 can either be a single color or a <A HREF=#k:colorList>colorList</A>.
594 In the latter case, the edge is drawn using parallel splines or lines,
595 one for each color in the list, in the order given.
596 The head arrow, if any, is drawn using the first color in the list,
597 and the tail arrow, if any, the second color. This supports the common
598 case of drawing opposing edges, but using parallel splines instead of
599 separately routed multiedges. For example, the graph
600 <PRE>
601 digraph G {
602 a -> b [dir=both color="red:blue"]
603 }
604 </PRE>
605 yields<BR>
606 <IMG SRC="colorlist.gif">
607
608 <DT><A NAME=d:colorscheme HREF=#a:colorscheme><STRONG>colorscheme</STRONG></A>
609 <DD> This attribute specifies a color scheme namespace. If defined, it specifies
610 the context for interpreting color names. In particular, if a
611 <A HREF=#k:color>color</A> value has form <TT>"xxx"</TT> or <TT>"//xxx"</TT>,
612 then the
613 color <TT>xxx</TT> will be evaluated according to the current color scheme.
614 If no color scheme is set, the standard X11 naming is used.
615 For example, if <TT>colorscheme=bugn9</TT>, then <TT>color=7</TT>
616 is interpreted as <TT>"/bugn9/7"</TT>.
617
618 <DT><A NAME=d:comment HREF=#a:comment><STRONG>comment</STRONG></A>
619 <DD> Comments are inserted into output. Device-dependent
620
621 <DT><A NAME=d:compound HREF=#a:compound><STRONG>compound</STRONG></A>
622 <DD> If true, allow edges between clusters. (See <A HREF=#d:lhead>lhead</A>
623 and <A HREF=#d:ltail>ltail</A> below.)
624
625 <DT><A NAME=d:concentrate HREF=#a:concentrate><STRONG>concentrate</STRONG></A>
626 <DD> If true, use edge concentrators.
627 This merges multiedges into a single edge and causes partially parallel
628 edges to share part of their paths. The latter feature is not yet available
629 outside of dot.
630
631 <DT><A NAME=d:constraint HREF=#a:constraint><STRONG>constraint</STRONG></A>
632 <DD> If false, the edge is not used in ranking the nodes. For example,
633 in the graph
634 <PRE>
635 digraph G {
636 a -> c;
637 a -> b;
638 b -> c [constraint=false];
639 }
640 </PRE>
641 the edge <CODE>b -> c</CODE> does not add a constraint during rank
642 assignment, so the only constraints are that a be above b and c,
643 yielding the graph:<BR>
644 <IMG SRC="constraint.gif">
645
646 <DT><A NAME=d:decorate HREF=#a:decorate><STRONG>decorate</STRONG></A>
647 <DD> If true, attach edge label to edge by a 2-segment
648 polyline, underlining the label, then going to the closest point of spline.
649
650 <DT><A NAME=d:defaultdist HREF=#a:defaultdist><STRONG>defaultdist</STRONG></A>
651 <DD> This specifies the distance between nodes in separate connected
652 components. If set too small, connected components may overlap.
653 Only applicable if <A HREF=#d:pack>pack</A>=false.
654
655 <DT><A NAME=d:dim HREF=#a:dim><STRONG>dim</STRONG></A>
656 <DD> Set the number of dimensions used for the layout. The maximum value
657 allowed is 10.
658
659 <DT><A NAME=d:dimen HREF=#a:dimen><STRONG>dimen</STRONG></A>
660 <DD> Set the number of dimensions used for rendering.
661 The maximum value allowed is 10.
662 If both <TT>dimen</TT> and <TT>dim</TT> are set, the latter specifies
663 the dimension used for layout, and the former for rendering.
664 If only <TT>dimen</TT> is set, this is used for both layout and rendering
665 dimensions.
666
667 <DT><A NAME=d:dir HREF=#a:dir><STRONG>dir</STRONG></A>
668 <DD> Set edge type for drawing arrowheads. This indicates which ends of the
669 edge should be decorated with an arrowhead. The actual style of the
670 arrowhead can be specified using the <A HREF=#d:arrowhead>arrowhead</A>
671 and <A HREF=#d:arrowtail>arrowtail</A> attributes.
672 See <A HREF=#h:undir_note>limitation</A>.
673
674 <DT><A NAME=d:diredgeconstraints HREF=#a:diredgeconstraints><STRONG>diredgeconstraints</STRONG></A>
675 <DD> Only valid when <A HREF=#d:mode>mode</A>="ipsep".
676 If true, constraints are generated for each edge in the largest (heuristic)
677 directed acyclic subgraph such that the edge must point downwards.
678 If "hier", generates level constraints similar to those used with
679 <A HREF=#d:mode>mode</A>="hier". The main difference is that, in the latter
680 case, only these constraints are involved, so a faster solver can be used.
681
682 <DT><A NAME=d:distortion HREF=#a:distortion><STRONG>distortion</STRONG></A>
683 <DD> Distortion factor for <A HREF=#d:shape><B>shape</B></A>=polygon.
684 Positive values cause top part to
685 be larger than bottom; negative values do the opposite.
686
687 <DT><A NAME=d:dpi HREF=#a:dpi><STRONG>dpi</STRONG></A>
688 <DD> This specifies the expected number of pixels per inch on a display device.
689 For bitmap output, this guarantees that text rendering will be
690 done more accurately, both in size and in placement. For SVG output,
691 it is used to guarantee that the dimensions in the output correspond to
692 the correct number of points or inches.
693
694 <DT><A NAME=d:edgeURL HREF=#a:edgeURL><STRONG>edgeURL</STRONG></A>
695 <DD> If <B>edgeURL</B> is defined, this is the link used for the non-label
696 parts of an edge. This value overrides any <A HREF=#d:URL>URL</A>
697 defined for the edge.
698 Also, this value is used near the head or tail node unless overridden
699 by a <A HREF=#d:headURL>headURL</A> or <A HREF=#d:tailURL>tailURL</A> value,
700 respectively.
701 See <A HREF=#h:undir_note>limitation</A>.
702
703 <DT><A NAME=d:edgehref HREF=#a:edgehref><STRONG>edgehref</STRONG></A>
704 <DD> Synonym for <A HREF=#d:edgeURL>edgeURL</A>.
705
706 <DT><A NAME=d:edgetarget HREF=#a:edgetarget><STRONG>edgetarget</STRONG></A>
707 <DD> If the edge has a <A HREF=#d:URL>URL</A> or <A HREF=#d:edgeURL>edgeURL</A>
708 attribute, this attribute determines which window of the
709 browser is used
710 for the URL attached to the non-label part of the edge.
711 Setting it to "_graphviz" will open a new window if it
712 doesn't already exist, or reuse it if it does.
713 If undefined, the value of the <A HREF=#d:target>target</A> is used.
714
715 <DT><A NAME=d:edgetooltip HREF=#a:edgetooltip><STRONG>edgetooltip</STRONG></A>
716 <DD> Tooltip annotation attached to the non-label part of an edge.
717 This is used only if the edge has a <A HREF=#d:URL>URL</A>
718 or <A HREF=#d:edgeURL>edgeURL</A> attribute.
719
720 <DT><A NAME=d:epsilon HREF=#a:epsilon><STRONG>epsilon</STRONG></A>
721 <DD> Terminating condition. If the length squared of all energy gradients are
722 < <B>epsilon</B>, the algorithm stops.
723
724 <DT><A NAME=d:esep HREF=#a:esep><STRONG>esep</STRONG></A>
725 <DD> Margin used around polygons for purposes of spline edge routing.
726 The interpretation is the same as given for <A HREF=#d:sep>sep</A>.
727 This should normally be strictly less than <A HREF=#d:sep>sep</A>.
728
729 <DT><A NAME=d:fillcolor HREF=#a:fillcolor><STRONG>fillcolor</STRONG></A>
730 <DD> Color used to fill the background of a node or cluster
731 assuming <A HREF=#d:style>style</A>=filled.
732 If <B>fillcolor</B> is not defined, <A HREF=#d:color>color</A> is
733 used. (For clusters, if <B>color</B> is not defined,
734 <A HREF=#d:bgcolor>bgcolor</A> is used.) If this is not defined,
735 the default is used, except for
736 <A HREF=#d:shape><B>shape</B></A>=point or when the output
737 format is MIF,
738 which use black by default.
739 <P>
740 Note that a cluster inherits the root graph's attributes if defined.
741 Thus, if the root graph has defined a <B>fillcolor</B>, this will override a
742 <B>color</B> or <B>bgcolor</B> attribute set for the cluster.
743
744 <DT><A NAME=d:fixedsize HREF=#a:fixedsize><STRONG>fixedsize</STRONG></A>
745 <DD> If true, the node size is specified by the values of the
746 <A HREF=#d:width><B>width</B></A>
747 and <A HREF=#d:height><B>height</B></A> attributes only
748 and is not expanded to contain the text label.
749
750 <DT><A NAME=d:fontcolor HREF=#a:fontcolor><STRONG>fontcolor</STRONG></A>
751 <DD> Color used for text.
752
753 <DT><A NAME=d:fontname HREF=#a:fontname><STRONG>fontname</STRONG></A>
754 <DD> Font used for text. This very much depends on the output format and, for
755 non-bitmap output such as PostScript or SVG, the availability of the font
756 when the graph is displayed or printed. As such, it is best to rely on
757 font faces that are generally available, such as Times-Roman, Helvetica or
758 Courier.
759 <P>
760 If Graphviz was built using the
761 <A HREF=http://pdx.freedesktop.org/~fontconfig/fontconfig-user.html>fontconfig library</A>, the latter library
762 will be used to search for the font. However, if the <TT>fontname</TT> string
763 contains a slash character "/", it is treated as a pathname for the font
764 file, though font lookup will append the usual font suffixes.
765 <P>
766 If Graphviz does not use fontconfig, <TT>fontname</TT> will be
767 considered the name of a Type 1 or True Type font file.
768 If you specify <TT>fontname=schlbk</TT>, the tool will look for a
769 file named <TT>schlbk.ttf</TT> or <TT>schlbk.pfa</TT> or <TT>schlbk.pfb</TT>
770 in one of the directories specified by
771 the <A HREF=#d:fontpath>fontpath</A> attribute.
772 The lookup does support various aliases for the common fonts.
773
774 <DT><A NAME=d:fontnames HREF=#a:fontnames><STRONG>fontnames</STRONG></A>
775 <DD> Allows user control of how basic fontnames are represented in SVG output.
776 If <TT>fontnames</TT> is undefined or <TT>"svg"</TT>,
777 the output will try to use known SVG fontnames. For example, the
778 default font <TT>"Times-Roman"</TT> will be mapped to the
779 basic SVG font <TT>"serif"</TT>. This can be overridden by setting
780 <TT>fontnames</TT> to <TT>"ps"</TT> or <TT>"gd"</TT>.
781 In the former case, known PostScript font names such as
782 <TT>"Times-Roman"</TT> will be used in the output.
783 In the latter case, the fontconfig font conventions
784 are used. Thus, <TT>"Times-Roman"</TT> would be treated as
785 <TT>"Nimbus Roman No9 L"</TT>. These last two options are useful
786 with SVG viewers that support these richer fontname spaces.
787
788 <DT><A NAME=d:fontpath HREF=#a:fontpath><STRONG>fontpath</STRONG></A>
789 <DD> Directory list used by libgd to search for bitmap fonts if Graphviz
790 was not built with the fontconfig library.
791 If <B>fontpath</B> is not set, the environment
792 variable <TT>DOTFONTPATH</TT> is checked.
793 If that is not set, <TT>GDFONTPATH</TT> is checked.
794 If not set, libgd uses its compiled-in font path.
795 Note that fontpath is an attribute of the root graph.
796
797 <DT><A NAME=d:fontsize HREF=#a:fontsize><STRONG>fontsize</STRONG></A>
798 <DD> Font size, <A HREF=#points>in points</A>, used for text.
799
800 <DT><A NAME=d:group HREF=#a:group><STRONG>group</STRONG></A>
801 <DD> If the end points of an edge belong to the same group, i.e., have the
802 same group attribute, parameters are set to avoid crossings and keep
803 the edges straight.
804
805 <DT><A NAME=d:headURL HREF=#a:headURL><STRONG>headURL</STRONG></A>
806 <DD> If <B>headURL</B> is defined, it is
807 output as part of the head label of the edge.
808 Also, this value is used near the head node, overriding any
809 <A HREF=#d:URL>URL</A> value.
810 See <A HREF=#h:undir_note>limitation</A>.
811
812 <DT><A NAME=d:headclip HREF=#a:headclip><STRONG>headclip</STRONG></A>
813 <DD> If true, the head of an edge is clipped to the boundary of the head node;
814 otherwise, the end of the edge goes to the center of the node, or the
815 center of a port, if applicable.
816
817 <DT><A NAME=d:headhref HREF=#a:headhref><STRONG>headhref</STRONG></A>
818 <DD> Synonym for <A HREF=#d:headURL>headURL</A>.
819
820 <DT><A NAME=d:headlabel HREF=#a:headlabel><STRONG>headlabel</STRONG></A>
821 <DD> Text label to be placed near head of edge.
822 See <A HREF=#h:undir_note>limitation</A>.
823
824 <DT><A NAME=d:headport HREF=#a:headport><STRONG>headport</STRONG></A>
825 <DD> Indicates where on the head node to attach the head of the edge.
826 In the default case, the edge is aimed towards the center of the node,
827 and then clipped at the node boundary.
828 See <A HREF=#h:undir_note>limitation</A>.
829
830 <DT><A NAME=d:headtarget HREF=#a:headtarget><STRONG>headtarget</STRONG></A>
831 <DD> If the edge has a <A HREF=#d:headURL>headURL</A>,
832 this attribute determines which window of the
833 browser is used
834 for the URL. Setting it to "_graphviz" will open a new window if it
835 doesn't already exist, or reuse it if it does.
836 If undefined, the value of the <A HREF=#d:target>target</A> is used.
837
838 <DT><A NAME=d:headtooltip HREF=#a:headtooltip><STRONG>headtooltip</STRONG></A>
839 <DD> Tooltip annotation attached to the head of an edge. This is used only
840 if the edge has a <A HREF=#d:headURL>headURL</A> attribute.
841
842 <DT><A NAME=d:height HREF=#a:height><STRONG>height</STRONG></A>
843 <DD> Height of node, in inches. This is taken as the initial, minimum height
844 of the node. If <A HREF=#d:fixedsize><B>fixedsize</B></A> is true, this
845 will be the final height of the node. Otherwise, if the node label
846 requires more height to fit, the node's height will be increased to
847 contain the label. Note also that, if the output format is dot, the
848 value given to <B>height</B> will be the final value.
849
850 <DT><A NAME=d:href HREF=#a:href><STRONG>href</STRONG></A>
851 <DD> Synonym for <A HREF=#d:URL>URL</A>.
852
853 <DT><A NAME=d:id HREF=#a:id><STRONG>id</STRONG></A>
854 <DD> Allows the graph author to provide an id for graph objects which is to be included in the output.
855 Normal "N", "E", "G" substitutions are applied.
856 If provided, it is the reponsiblity of the provider to keep
857 its values sufficiently unique for its intended downstream use.
858 Note, in particular, that "E" does not provide a unique id for multi-edges.
859 If no id attribute is provided, then a unique internal id is used, however this value is unpredictable by the graph writer.
860 An externally provided id is not used internally.
861
862 <DT><A NAME=d:image HREF=#a:image><STRONG>image</STRONG></A>
863 <DD> Gives the name of a file containing an image to be displayed inside
864 a node. The image file must be in one of the recognized
865 <A HREF=output.html#d:image_fmts>formats</A>,
866 typically JPEG, PNG, GIF or Postscript, and be able to be converted
867 into the desired output format.
868 <P>
869 Unlike with the <A HREF=#d:shapefile>shapefile</A> attribute,
870 the image is treated as node
871 content rather than the entire node. In particular, an image can
872 be contained in a node of any shape, not just a rectangle.
873
874 <DT><A NAME=d:imagescale HREF=#a:imagescale><STRONG>imagescale</STRONG></A>
875 <DD> Attribute controlling how an image fills its
876 containing node. In general, the image is given its natural size,
877 (cf. <A HREF=#d:dpi>dpi</A>),
878 and the node size is made large enough to contain its image, its
879 label, its margin, and its peripheries.
880 Its width and height will also be at least as large as its
881 minimum <A HREF=#d:width>width</A> and <A HREF=#d:height>height</A>.
882 If, however, <TT>fixedsize=true</TT>,
883 the width and height attributes specify the exact size of the node.
884 <P>
885 During rendering, in the default case (<TT>imagescale=false</TT>),
886 the image retains its natural size.
887 If <TT>imagescale=true</TT>,
888 the image is uniformly scaled (i.e., its aspect ratio is
889 preserved) to fit inside the node.
890 At least one dimension of the image will be as large as possible
891 given the size of the node.
892 When <TT>imagescale=width</TT>,
893 the width of the image is scaled to fill the node width.
894 The corresponding property holds when <TT>imagescale=height</TT>.
895 When <TT>imagescale=both</TT>,
896 both the height and the width are scaled separately to fill the node.
897 <P>
898 In all cases, if a dimension of the image is larger than the
899 corresponding dimension of the node, that dimension of the
900 image is scaled down to fit the node. As with the case of
901 expansion, if <TT>imagescale=true</TT>, width and height are
902 scaled uniformly.
903
904 <DT><A NAME=d:label HREF=#a:label><STRONG>label</STRONG></A>
905 <DD> Text label attached to objects.
906 If a node's <A HREF=#d:shape>shape</A> is record, then the label can
907 have a <A HREF=shapes.html#record>special format</A>
908 which describes the record layout.
909
910 <DT><A NAME=d:labelURL HREF=#a:labelURL><STRONG>labelURL</STRONG></A>
911 <DD> If <B>labelURL</B> is defined, this is the link used for the label
912 of an edge. This value overrides any <A HREF=#d:URL>URL</A>
913 defined for the edge.
914
915 <DT><A NAME=d:labelangle HREF=#a:labelangle><STRONG>labelangle</STRONG></A>
916 <DD> This, along with <A HREF=#d:labeldistance>labeldistance</A>, determine
917 where the
918 headlabel (taillabel) are placed with respect to the head (tail)
919 in polar coordinates. The origin in the coordinate system is
920 the point where the edge touches the node. The ray of 0 degrees
921 goes from the origin back along the edge, parallel to the edge
922 at the origin.
923 <P>
924 The angle, in degrees, specifies the rotation from the 0 degree ray,
925 with positive angles moving counterclockwise and negative angles
926 moving clockwise.
927
928 <DT><A NAME=d:labeldistance HREF=#a:labeldistance><STRONG>labeldistance</STRONG></A>
929 <DD> Multiplicative scaling factor adjusting the distance that
930 the headlabel(taillabel) is from the head(tail) node.
931 The default distance is 10 points. See <A HREF=#d:labelangle>labelangle</A>
932 for more details.
933
934 <DT><A NAME=d:labelfloat HREF=#a:labelfloat><STRONG>labelfloat</STRONG></A>
935 <DD> If true, allows edge labels to be less constrained in position.
936 In particular, it may appear on top of other edges.
937
938 <DT><A NAME=d:labelfontcolor HREF=#a:labelfontcolor><STRONG>labelfontcolor</STRONG></A>
939 <DD> Color used for headlabel and taillabel.
940 If not set, defaults to edge's fontcolor.
941
942 <DT><A NAME=d:labelfontname HREF=#a:labelfontname><STRONG>labelfontname</STRONG></A>
943 <DD> Font used for headlabel and taillabel.
944 If not set, defaults to edge's fontname.
945
946 <DT><A NAME=d:labelfontsize HREF=#a:labelfontsize><STRONG>labelfontsize</STRONG></A>
947 <DD> Font size, <A HREF=#points>in points</A>, used for headlabel and taillabel.
948 If not set, defaults to edge's fontsize.
949
950 <DT><A NAME=d:labelhref HREF=#a:labelhref><STRONG>labelhref</STRONG></A>
951 <DD> Synonym for <A HREF=#d:labelURL>labelURL</A>.
952
953 <DT><A NAME=d:labeljust HREF=#a:labeljust><STRONG>labeljust</STRONG></A>
954 <DD> Justification for cluster labels. If "r", the label
955 is right-justified within bounding rectangle; if "l", left-justified;
956 else the label is centered.
957 Note that a subgraph inherits attributes from its parent. Thus, if
958 the root graph sets <B>labeljust</B> to "l", the subgraph inherits
959 this value.
960
961 <DT><A NAME=d:labelloc HREF=#a:labelloc><STRONG>labelloc</STRONG></A>
962 <DD> Top/bottom placement of graph and cluster labels.
963 If the attribute is "t", place label at the top;
964 if the attribute is "b", place label at the bottom.
965 By default, root
966 graph labels go on the bottom and cluster labels go on the top.
967 Note that a subgraph inherits attributes from its parent. Thus, if
968 the root graph sets <B>labelloc</B> to "b", the subgraph inherits
969 this value.
970
971 <DT><A NAME=dd:labelloc HREF=#aa:labelloc><STRONG>labelloc</STRONG></A>
972 <DD> Vertical placement of node label. By default, if the height of a node
973 is larger than the height of its label, the label is vertically centered.
974 If <TT>labelloc</TT> is set to "t", "c", or "b", the label is aligned
975 with the top, centered, or aligned with the bottom of the node, respectively.
976
977 <DT><A NAME=d:labeltarget HREF=#a:labeltarget><STRONG>labeltarget</STRONG></A>
978 <DD> If the edge has a <A HREF=#d:URL>URL</A> or <A HREF=#d:labelURL>labelURL</A>
979 attribute, this attribute determines which window of the
980 browser is used
981 for the URL attached to the label.
982 Setting it to "_graphviz" will open a new window if it
983 doesn't already exist, or reuse it if it does.
984 If undefined, the value of the <A HREF=#d:target>target</A> is used.
985
986 <DT><A NAME=d:labeltooltip HREF=#a:labeltooltip><STRONG>labeltooltip</STRONG></A>
987 <DD> Tooltip annotation attached to label of an edge.
988 This is used only if the edge has a <A HREF=#d:URL>URL</A>
989 or <A HREF=#d:labelURL>labelURL</A> attribute.
990
991 <DT><A NAME=d:landscape HREF=#a:landscape><STRONG>landscape</STRONG></A>
992 <DD> If true, the graph is rendered in landscape mode. Synonymous with
993 <A HREF=#d:rotate><TT>rotate=90</TT></A> or
994 <A HREF=#d:orientation><TT>orientation=landscape</TT></A>.
995
996 <DT><A NAME=d:layer HREF=#a:layer><STRONG>layer</STRONG></A>
997 <DD> Specifies layers in which the node or edge is present.
998
999 <DT><A NAME=d:layers HREF=#a:layers><STRONG>layers</STRONG></A>
1000 <DD> Specifies a linearly ordered list of layer names attached to the graph
1001 The graph is then output in separate layers. Only those components
1002 belonging to the current output layer appear. For more information,
1003 see the page <A HREF="http://www.graphviz.org/Documentation/html/layers/">How to use drawing layers (overlays)</A>.
1004
1005 <DT><A NAME=d:layersep HREF=#a:layersep><STRONG>layersep</STRONG></A>
1006 <DD> Specifies the separator characters used to split the
1007 <A HREF=#d:layers>layers </A>attribute into a list of layer names.
1008
1009 <DT><A NAME=d:layout HREF=#a:layout><STRONG>layout</STRONG></A>
1010 <DD> Specifies the name of the layout algorithm to use, such as "dot"
1011 or "neato". Normally, graphs should be kept independent of a type of
1012 layout. In some cases, however, it can be convenient to embed the type
1013 of layout desired within the graph. For example, a graph containing
1014 position information from a layout might want to record what the
1015 associated layout algorithm was.
1016 <P>
1017 This attribute takes precedence over
1018 the <A HREF=command.html#minusK>-K flag</A>
1019 or the actual command name used.
1020
1021 <DT><A NAME=d:len HREF=#a:len><STRONG>len</STRONG></A>
1022 <DD> Preferred edge length, in inches.
1023
1024 <DT><A NAME=d:levels HREF=#a:levels><STRONG>levels</STRONG></A>
1025 <DD> Number of levels allowed in the multilevel scheme.
1026
1027 <DT><A NAME=d:levelsgap HREF=#a:levelsgap><STRONG>levelsgap</STRONG></A>
1028 <DD> Specifies strictness of level constraints in neato
1029 when <TT><A HREF=#d:mode>mode</A>="ipsep" or "hier"</TT>.
1030 Larger positive values mean stricter constraints, which demand more
1031 separation between levels. On the other hand, negative values will relax
1032 the constraints by allowing some overlap between the levels.
1033
1034 <DT><A NAME=d:lhead HREF=#a:lhead><STRONG>lhead</STRONG></A>
1035 <DD> Logical head of an edge. When <A HREF=#d:compound><B>compound</B></A> is true,
1036 if <B>lhead</B> is defined and is the name of a cluster containing
1037 the real head,
1038 the edge is clipped to the boundary of the cluster.
1039 See <A HREF=#h:undir_note>limitation</A>.
1040
1041 <DT><A NAME=d:lp HREF=#a:lp><STRONG>lp</STRONG></A>
1042 <DD> Label position, <A HREF=#points>in points</A>.
1043 The position indicates the center of the label.
1044
1045 <DT><A NAME=d:ltail HREF=#a:ltail><STRONG>ltail</STRONG></A>
1046 <DD> Logical tail of an edge. When <A HREF=#d:compound><B>compound</B></A> is true,
1047 if <B>ltail</B> is defined and is the name of a cluster
1048 containing the real tail,
1049 the edge is clipped to the boundary of the cluster.
1050 See <A HREF=#h:undir_note>limitation</A>.
1051
1052 <DT><A NAME=d:margin HREF=#a:margin><STRONG>margin</STRONG></A>
1053 <DD> For graphs, this sets x and y margins of canvas, in inches. If the margin
1054 is a single double, both margins are set equal to the given value.
1055 <P>
1056 Note that the margin is not part of the drawing but just empty space
1057 left around the drawing. It basically corresponds to a translation of
1058 drawing, as would be necessary to center a drawing on a page. Nothing
1059 is actually drawn in the margin. To actually extend the background of
1060 a drawing, see the <A HREF=#d:pad>pad</A> attribute.
1061 <P>
1062 For nodes, this attribute specifies space left around the node's label.
1063 By default, the value is <TT>0.11,0.055</TT>.
1064
1065 <DT><A NAME=d:maxiter HREF=#a:maxiter><STRONG>maxiter</STRONG></A>
1066 <DD> Sets the number of iterations used.
1067
1068 <DT><A NAME=d:mclimit HREF=#a:mclimit><STRONG>mclimit</STRONG></A>
1069 <DD> Multiplicative scale factor used to alter the MinQuit (default = 8)
1070 and MaxIter (default = 24) parameters used during crossing
1071 minimization. These correspond to the
1072 number of tries without improvement before quitting and the
1073 maximum number of iterations in each pass.
1074
1075 <DT><A NAME=d:mindist HREF=#a:mindist><STRONG>mindist</STRONG></A>
1076 <DD> Specifies the minimum separation between all nodes.
1077
1078 <DT><A NAME=d:minlen HREF=#a:minlen><STRONG>minlen</STRONG></A>
1079 <DD> Minimum edge length (rank difference between head and tail).
1080
1081 <DT><A NAME=d:mode HREF=#a:mode><STRONG>mode</STRONG></A>
1082 <DD> Technique for optimizing the layout. If <B>mode</B> is <TT>"major"</TT>,
1083 neato uses stress majorization. If <B>mode</B> is <TT>"KK"</TT>,
1084 neato uses a version of the gradient descent method. The only advantage
1085 to the latter technique is that it is sometimes appreciably faster for
1086 small (number of nodes < 100) graphs. A significant disadvantage is that
1087 it may cycle.
1088 <P>
1089 There are two new, experimental modes in neato, "hier", which adds a top-down
1090 directionality similar to the layout used in dot, and "ipsep", which
1091 allows the graph to specify minimum vertical and horizontal distances
1092 between nodes. (See the <A HREF=#d:sep>sep</A> attribute.)
1093
1094 <DT><A NAME=d:model HREF=#a:model><STRONG>model</STRONG></A>
1095 <DD> This value specifies how the distance matrix is computed for the input
1096 graph. The distance matrix specifies the ideal distance between every
1097 pair of nodes. neato attemps to find a layout which best achieves
1098 these distances. By default, it uses the length of the shortest path,
1099 where the length of each edge is given by its <A HREF=#d:len>len</A>
1100 attribute. If <B>model</B> is <TT>"circuit"</TT>, neato uses the
1101 circuit resistance
1102 model to compute the distances. This tends to emphasize clusters. If
1103 <B>model</B> is <TT>"subset"</TT>, neato uses the subset model. This sets the
1104 edge length to be the number of nodes that are neighbors of exactly one
1105 of the end points, and then calculates the shortest paths. This helps
1106 to separate nodes with high degree.
1107
1108 <DT><A NAME=d:mosek HREF=#a:mosek><STRONG>mosek</STRONG></A>
1109 <DD> If Graphviz is built with MOSEK defined, mode=ipsep and mosek=true,
1110 the Mosek software (www.mosek.com) is use to solve the ipsep constraints.
1111
1112 <DT><A NAME=d:nodesep HREF=#a:nodesep><STRONG>nodesep</STRONG></A>
1113 <DD> Minimum space between two adjacent nodes in the same rank, in inches.
1114
1115 <DT><A NAME=d:nojustify HREF=#a:nojustify><STRONG>nojustify</STRONG></A>
1116 <DD> By default, the justification of multi-line labels is done within the
1117 largest context that makes sense. Thus, in the label of a polygonal
1118 node, a left-justified line will align with the left side of the node
1119 (shifted by the prescribed <A HREF=#d:margin>margin</A>).
1120 In record nodes, left-justified
1121 line will line up with the left side of the enclosing column of fields.
1122 If <B>nojustify</B> is <TT>"true"</TT>, multi-line labels will be justified
1123 in the context of itself. For example, if the attribute is set,
1124 the first label line is long, and the second is shorter and left-justified,
1125 the second will align with the left-most character in the first line,
1126 regardless of how large the node might be.
1127
1128 <DT><A NAME=d:normalize HREF=#a:normalize><STRONG>normalize</STRONG></A>
1129 <DD> If set, normalize coordinates of final
1130 layout so that the first point is at the origin, and then rotate the
1131 layout so that the first edge is horizontal.
1132
1133 <DT><A NAME=d:nslimit HREF=#a:nslimit><STRONG>nslimit</STRONG></A>
1134 ,<DT><A NAME=d:nslimit1 HREF=#a:nslimit1><STRONG>nslimit1</STRONG></A>
1135 <DD> Used to set number of iterations in
1136 network simplex applications. <B>nslimit</B> is used in
1137 computing node x coordinates, <B>nslimit1</B> for ranking nodes.
1138 If defined, # iterations = <B>nslimit(1)</B> * # nodes;
1139 otherwise, # iterations = MAXINT.
1140
1141 <DT><A NAME=d:ordering HREF=#a:ordering><STRONG>ordering</STRONG></A>
1142 <DD> If "out" for a graph G, and n is a node in G, then edges n->* appear
1143 left-to-right in the same order in which they are defined.
1144 If "in", the edges *->n appear
1145 left-to-right in the same order in which they are defined for all
1146 nodes n.
1147
1148 <DT><A NAME=d:orientation HREF=#a:orientation><STRONG>orientation</STRONG></A>
1149 <DD> Angle, in degrees, used to rotate polygon node shapes. For any number of polygon sides, 0 degrees rotation results in a flat base.
1150
1151 <DT><A NAME=dd:orientation HREF=#aa:orientation><STRONG>orientation</STRONG></A>
1152 <DD> If "[lL]*", set graph orientation to landscape
1153 Used only if <A HREF=#d:rotate><B>rotate</B></A> is not defined.
1154
1155 <DT><A NAME=d:outputorder HREF=#a:outputorder><STRONG>outputorder</STRONG></A>
1156 <DD> Specify order in which nodes and edges are drawn.
1157
1158 <DT><A NAME=d:overlap HREF=#a:overlap><STRONG>overlap</STRONG></A>
1159 <DD> Determines if and how node overlaps should be removed. Nodes are first
1160 enlarged using the <A HREF=#d:sep><B>sep</B></A> attribute.
1161 If "true" , overlaps are retained.
1162 If the value is "scale", overlaps are removed by uniformly scaling in x and y.
1163 If the value converts to "false", node overlaps are removed by a
1164 Voronoi-based technique.
1165 If the value is "scalexy", x and y are separately
1166 scaled to remove overlaps.
1167 <P>
1168 If sfdp is available, one can set overlap to "prism" to use a
1169 proximity graph-based algorithm for overlap removal.
1170 This is the preferred technique,
1171 though "scale" and "false" can work well with small graphs.
1172 This technique starts with a
1173 small scaling up, controlled by the
1174 <A HREF="#d:overlap_scaling"><TT>overlap_scaling</TT></A> attribute,
1175 which can remove a significant portion of the overlap.
1176 The prism option also accepts an optional non-negative integer suffix.
1177 This can be used to control the number of attempts made at overlap
1178 removal. By default, <TT>overlap="prism"</TT> is equivalent to
1179 <TT>overlap="prism1000"</TT>. Setting <TT>overlap="prism0"</TT>
1180 causes only the scaling phase to be run.
1181 <P>
1182 If the value is "compress", the layout will be scaled down as much as
1183 possible without introducing any overlaps, obviously assuming there are
1184 none to begin with.
1185 <P>
1186 <B>N.B.</B>The remaining allowed values of <TT>overlap</TT>
1187 correspond to algorithms which, at present, can produce bad aspect ratios.
1188 In addition, we deprecate the use of the "ortho*" and "portho*".
1189 <P>
1190 If the value is "vpsc", overlap removal is done as a
1191 quadratic optimization to minimize node displacement while removing
1192 node overlaps.
1193 <P>
1194 If the value is "orthoxy" or "orthoyx", overlaps
1195 are moved by optimizing two constraint problems, one for the x axis and
1196 one for the y. The suffix indicates which axis is processed first.
1197 If the value is "ortho", the technique is similar to "orthoxy" except a
1198 heuristic is used to reduce the bias between the two passes.
1199 If the value is "ortho_yx", the technique is the same as "ortho", except
1200 the roles of x and y are reversed.
1201 The values "portho", "porthoxy", "porthoxy", and "portho_yx" are similar
1202 to the previous four, except only pseudo-orthogonal ordering is
1203 enforced.
1204 <P>
1205 If the layout is done by neato with <A HREF=#d:mode>mode</A>="ipsep",
1206 then one can use <TT>overlap=ipsep</TT>.
1207 In this case, the overlap removal constraints are
1208 incorporated into the layout algorithm itself.
1209 N.B. At present, this only supports one level of clustering.
1210 <P>
1211 Except for fdp and sfdp, the layouts assume <TT>overlap="true"</TT> as the default.
1212 Fdp first uses a number of passes using built-in, force-directed technique
1213 to remove overlaps. Thus, fdp accepts <B>overlap</B> with an integer
1214 prefix followed by a colon, specifying the number of tries. If there is
1215 no prefix, no initial tries will be performed. If there is nothing following
1216 a colon, none of the above methods will be attempted. By default, fdp
1217 uses <TT>overlap="9:portho"</TT>. Note that <TT>overlap="true"</TT>,
1218 <TT>overlap="0:true"</TT> and <TT>overlap="0:"</TT> all turn off all overlap
1219 removal.
1220 <P>
1221 By default, sfdp uses <TT>overlap="prism0"</TT>.
1222 <P>
1223 Except for the Voronoi and prism methods, all of these transforms preserve the
1224 orthogonal ordering of the original layout. That is, if the x coordinates
1225 of two nodes are originally the same, they will remain the same, and if
1226 the x coordinate of one node is originally less than the x coordinate of
1227 another, this relation will still hold in the transformed layout. The
1228 similar properties hold for the y coordinates.
1229 This is not quite true for the "porth*" cases. For these, orthogonal
1230 ordering is only preserved among nodes related by an edge.
1231
1232 <DT><A NAME=d:overlap_scaling HREF=#a:overlap_scaling><STRONG>overlap_scaling</STRONG></A>
1233 <DD> When <TT>overlap=prism</TT>, the layout is scaled by this factor, thereby
1234 removing a fair amount of node overlap, and making node overlap removal
1235 faster and better able to retain the graph's shape.
1236 <P>
1237 If <TT>overlap_scaling</TT> is negative, the layout is scaled by
1238 <TT>-1*overlap_scaling</TT> times the average label size.
1239 If <TT>overlap_scaling</TT> is positive, the layout is scaled by
1240 <TT>overlap_scaling</TT>.
1241 If <TT>overlap_scaling</TT> is zero, no scaling is done.
1242
1243 <DT><A NAME=d:pack HREF=#a:pack><STRONG>pack</STRONG></A>
1244 <DD> This is true if the value of pack is "true" (case-insensitive) or a
1245 non-negative integer. If true, each connected component of the graph is
1246 laid out separately, and then the graphs are packed together.
1247 If pack has an integral value, this is used as the size,
1248 in <A HREF=#points>points</A>, of
1249 a margin around each part; otherwise, a default margin of 8 is used.
1250 If pack is interpreted as false, the entire graph is laid out together.
1251 The granularity and method of packing is influenced by the
1252 <A HREF=#d:packmode>packmode</A> attribute.
1253 <P>
1254 For layouts which always do packing, such a twopi, the <B>pack</B>
1255 attribute is just used to set the margin.
1256
1257 <DT><A NAME=d:packmode HREF=#a:packmode><STRONG>packmode</STRONG></A>
1258 <DD> This indicates how connected components should be packed
1259 (cf. <A HREF=#k:packMode>packMode</A>). Note that defining
1260 <B>packmode</B> will automatically turn on packing as though one had
1261 set <B>pack=true</B>.
1262
1263 <DT><A NAME=d:pad HREF=#a:pad><STRONG>pad</STRONG></A>
1264 <DD> The pad attribute specifies how much, in inches, to extend the
1265 drawing area around the minimal area needed to draw the graph.
1266 If the pad is a single double, both the x and y pad values are set
1267 equal to the given value. This area is part of the
1268 drawing and will be filled with the background color, if appropriate.
1269 <P>
1270 Normally, a small pad is used for aesthetic reasons, especially when
1271 a background color is used, to avoid having nodes and edges abutting
1272 the boundary of the drawn region.
1273
1274 <DT><A NAME=d:page HREF=#a:page><STRONG>page</STRONG></A>
1275 <DD> Width and height of output pages, in inches. If this is set and is
1276 smaller than the size of the layout, a rectangular array of pages of
1277 the specified page size is overlaid on the layout, with origins
1278 aligned in the lower-left corner, thereby partitioning the layout
1279 into pages. The pages are then produced one at a time, in
1280 <A HREF=#d:pagedir>pagedir</A> order.
1281 <P>
1282 At present, this only works for PostScript output. For other types of
1283 output, one should use another tool to split the output into multiple
1284 output files. Or use the <A HREF=#d:viewport>viewport</A> to generate
1285 multiple files.
1286
1287 <DT><A NAME=d:pagedir HREF=#a:pagedir><STRONG>pagedir</STRONG></A>
1288 <DD> If the <A HREF=#d:page>page</A> attribute is set and applicable,
1289 this attribute specifies the order in which the pages are emitted.
1290 This is limited to one of the 8 row or column major orders.
1291
1292 <DT><A NAME=d:pencolor HREF=#a:pencolor><STRONG>pencolor</STRONG></A>
1293 <DD> Color used to draw the bounding box around a cluster.
1294 If <B>pencolor</B> is not defined, <A HREF=#d:color><B>color</B></A> is
1295 used. If this is not defined, <A HREF=#d:bgcolor>bgcolor</A> is used.
1296 If this is not defined, the default is used.
1297 <P>
1298 Note that a cluster inherits the root graph's attributes if defined.
1299 Thus, if the root graph has defined a <B>pencolor</B>, this will override a
1300 <B>color</B> or <B>bgcolor</B> attribute set for the cluster.
1301
1302 <DT><A NAME=d:penwidth HREF=#a:penwidth><STRONG>penwidth</STRONG></A>
1303 <DD> Specifies the width of the pen, in points, used to draw lines and curves,
1304 including the boundaries of edges and clusters. The value is inherited
1305 by subclusters.
1306 It has no effect on text.
1307 <P>
1308 Previous to 31 January 2008, the effect of <TT>penwidth=<I>W</I></TT>
1309 was achieved by including <TT>setlinewidth(<I>W</I>)</TT>
1310 as part of a <A HREF=#d:style><TT>style</TT></A> specification.
1311 If both are used, <TT>penwidth</TT> will be used.
1312
1313 <DT><A NAME=d:peripheries HREF=#a:peripheries><STRONG>peripheries</STRONG></A>
1314 <DD> Set number of peripheries used in polygonal shapes and cluster
1315 boundaries. Note that
1316 <A HREF=shapes.html#epsf>user-defined shapes</A> are treated as a
1317 form of box shape, so the default
1318 peripheries value is 1 and the user-defined shape will be drawn in
1319 a bounding rectangle. Setting <TT>peripheries=0</TT> will turn this off.
1320 Also, 1 is the maximum peripheries value for clusters.
1321
1322 <DT><A NAME=d:pin HREF=#a:pin><STRONG>pin</STRONG></A>
1323 <DD> If true and the node has a pos attribute on input, neato or fdp prevents the
1324 node from moving from the input position. This property can also be specified
1325 in the pos attribute itself (cf. the <A HREF=#d:point>point</A> type).
1326 <P>
1327 <B>Note:</B> Due to an artifact of the implementation, final coordinates
1328 are translated to the origin. Thus, if you look at the output coordinates
1329 given in the (x)dot or plain format, pinned nodes will not have the same
1330 output coordinates as were given on input. If this is important, a
1331 simple workaround is to maintain the coordinates of a pinned node. The vector
1332 difference between the old and new coordinates will give the translation,
1333 which can then be subtracted from all of the appropriate coordinates.
1334
1335 <DT><A NAME=d:pos HREF=#a:pos><STRONG>pos</STRONG></A>
1336 <DD> Position of node, or spline control points.
1337 For nodes, the position indicates the center of the node.
1338 On output, the coordinates are in <A HREF=#points>points</A>.
1339 <P>
1340 In neato and fdp, pos can be used to set the initial position of a node.
1341 By default, the coordinates are assumed to be in inches. However, the
1342 <A HREF=command.html#d:s>-s</A> command line flag can be used to specify
1343 different units. As the output coordinates are in points,
1344 feeding the output of a graph laid out by a Graphviz program into
1345 neato or fdp will almost always require the -s flag.
1346 <P>
1347 When the <A HREF=command.html#d:n>-n</A> command line flag is used with
1348 neato, it is assumed the positions have been set by one of the layout
1349 programs, and are therefore in points. Thus, <TT>neato -n</TT> can accept
1350 input correctly without requiring a <TT>-s</TT> flag and, in fact,
1351 ignores any such flag.
1352
1353 <DT><A NAME=d:quadtree HREF=#a:quadtree><STRONG>quadtree</STRONG></A>
1354 <DD> Quadtree scheme to use.
1355 <P>
1356 A TRUE bool value corresponds to "normal";
1357 a FALSE bool value corresponds to "none".
1358 As a slight exception to the normal interpretation of bool,
1359 a value of "2" corresponds to "fast".
1360
1361 <DT><A NAME=d:quantum HREF=#a:quantum><STRONG>quantum</STRONG></A>
1362 <DD> If <B>quantum</B> > 0.0, node label dimensions
1363 will be rounded to integral multiples of the quantum.
1364
1365 <DT><A NAME=d:rank HREF=#a:rank><STRONG>rank</STRONG></A>
1366 <DD> Rank constraints on the nodes in a subgraph.
1367 If <B>rank</B>="same", all nodes are placed on the same rank.
1368 If <B>rank</B>="min", all nodes are placed on the minimum rank.
1369 If <B>rank</B>="source", all nodes are placed on the minimum rank, and
1370 the only nodes on the minimum rank belong to some subgraph whose
1371 rank attribute is "source" or "min".
1372 Analogous criteria hold for <B>rank</B>="max" and <B>rank</B>="sink".
1373 (Note: the
1374 minimum rank is topmost or leftmost, and the maximum rank is bottommost
1375 or rightmost.)
1376
1377 <DT><A NAME=d:rankdir HREF=#a:rankdir><STRONG>rankdir</STRONG></A>
1378 <DD> Sets direction of graph layout. For example, if <B>rankdir</B>="LR",
1379 and barring cycles, an edge <CODE>T -> H;</CODE> will go
1380 from left to right. By default, graphs are laid out from top to bottom.
1381 <P>
1382 This attribute also has a side-effect in determining how record nodes
1383 are interpreted. See <A HREF="shapes.html#record">record shapes</A>.
1384
1385 <DT><A NAME=d:ranksep HREF=#a:ranksep><STRONG>ranksep</STRONG></A>
1386 <DD> In dot, this gives the desired rank separation, in inches. This is
1387 the minimum vertical distance between the bottom of the nodes in one
1388 rank and the tops of nodes in the next. If the value
1389 contains "equally", the centers of all ranks are spaced equally apart.
1390 Note that both
1391 settings are possible, e.g., ranksep = "1.2 equally".
1392 In twopi, specifies radial separation of concentric circles.
1393
1394 <DT><A NAME=d:ratio HREF=#a:ratio><STRONG>ratio</STRONG></A>
1395 <DD> Sets the aspect ratio (drawing height/drawing width) for the drawing.
1396 Note that this is adjusted before
1397 the <A HREF=#d:size><B>size</B></A> attribute constraints are enforced.
1398 <P>
1399 If <B>ratio</B> is numeric, it is taken as the desired aspect ratio.
1400 Then, if the actual aspect ratio is less than the desired ratio,
1401 the drawing height is scaled up to achieve the
1402 desired ratio; if the actual ratio is greater than that desired ratio,
1403 the drawing width is scaled up.
1404 <P>
1405 If <B>ratio</B> = "fill" and the <A HREF=#d:size><B>size</B></A>
1406 attribute is set, node positions are scaled, separately in both x
1407 and y, so that the final drawing exactly fills the specified size.
1408 <P>
1409 If <B>ratio</B> = "compress" and the <A HREF=#d:size><B>size</B></A>
1410 attribute is set, dot attempts to compress the initial layout to fit
1411 in the given size. This achieves a tighter packing of nodes but
1412 reduces the balance and symmetry. This feature only works in dot.
1413 <P>
1414 If <B>ratio</B> = "expand", the <A HREF=#d:size><B>size</B></A>
1415 attribute is set, and both the width and the height of the graph are
1416 less than the value in <A HREF=#d:size><B>size</B></A>, node positions are scaled
1417 uniformly until at least
1418 one dimension fits <A HREF=#d:size><B>size</B></A> exactly.
1419 Note that this is distinct from using <A HREF=#d:size><B>size</B></A> as the
1420 desired size, as here the drawing is expanded before edges are generated and
1421 all node and text sizes remain unchanged.
1422 <P>
1423 If <B>ratio</B> = "auto", the <A HREF=#d:page><B>page</B></A>
1424 attribute is set and the graph cannot be drawn on a single page,
1425 then <A HREF=#d:size><B>size</B></A> is set to an ``ideal'' value.
1426 In particular, the size in a given dimension will be the smallest integral
1427 multiple of the page size in that dimension which is at least half the
1428 current size. The two dimensions are then scaled independently to the
1429 new size. This feature only works in dot.
1430
1431 <DT><A NAME=d:rects HREF=#a:rects><STRONG>rects</STRONG></A>
1432 <DD> Rectangles for fields of records, <A HREF=#points>in points</A>.
1433
1434 <DT><A NAME=d:regular HREF=#a:regular><STRONG>regular</STRONG></A>
1435 <DD> If true, force polygon to be regular.
1436
1437 <DT><A NAME=d:remincross HREF=#a:remincross><STRONG>remincross</STRONG></A>
1438 <DD> If true and there are multiple clusters, run cross
1439 minimization a second time.
1440
1441 <DT><A NAME=d:repulsiveforce HREF=#a:repulsiveforce><STRONG>repulsiveforce</STRONG></A>
1442 <DD> The power of the repulsive force used in an extended Fruchterman-Reingold
1443 force directed model. Values larger than 1 tend to reduce
1444 the warping effect at the expense of less clustering.
1445
1446 <DT><A NAME=d:resolution HREF=#a:resolution><STRONG>resolution</STRONG></A>
1447 <DD> This is a synonym for the <A HREF=#d:dpi>dpi</A> attribute.
1448
1449 <DT><A NAME=d:root HREF=#a:root><STRONG>root</STRONG></A>
1450 <DD> This specifies nodes to be used as the center of the
1451 layout and the root of the generated spanning tree. As a graph attribute,
1452 this gives the name of the node. As a node attribute (circo only), it
1453 specifies that the node should be used as a central node. In twopi,
1454 this will actually be the central node. In circo, the block containing
1455 the node will be central in the drawing of its connected component.
1456 If not defined,
1457 twopi will pick a most central node, and circo will pick a random node.
1458
1459 <DT><A NAME=d:rotate HREF=#a:rotate><STRONG>rotate</STRONG></A>
1460 <DD> If 90, set drawing orientation to landscape.
1461
1462 <DT><A NAME=d:samehead HREF=#a:samehead><STRONG>samehead</STRONG></A>
1463 <DD> Edges with the same head and the same <B>samehead</B> value are aimed
1464 at the same point on the head.
1465 See <A HREF=#h:undir_note>limitation</A>.
1466
1467 <DT><A NAME=d:sametail HREF=#a:sametail><STRONG>sametail</STRONG></A>
1468 <DD> Edges with the same tail and the same <B>sametail</B> value are aimed
1469 at the same point on the tail.
1470 See <A HREF=#h:undir_note>limitation</A>.
1471
1472 <DT><A NAME=d:samplepoints HREF=#a:samplepoints><STRONG>samplepoints</STRONG></A>
1473 <DD> If the input graph defines the <A HREF=#d:vertices><B>vertices</B></A>
1474 attribute, and output is dot or xdot, this gives
1475 the number of points used for a node whose shape is a circle or ellipse.
1476 It plays the same role in neato, when adjusting the layout to avoid
1477 overlapping nodes, and in image maps.
1478
1479 <DT><A NAME=d:searchsize HREF=#a:searchsize><STRONG>searchsize</STRONG></A>
1480 <DD> During network simplex, maximum number of edges with negative cut values
1481 to search when looking for one with minimum cut value.
1482
1483 <DT><A NAME=d:sep HREF=#a:sep><STRONG>sep</STRONG></A>
1484 <DD> Specifies margin to leave around nodes when removing node overlap.
1485 This guarantees a minimal non-zero distance between nodes.
1486 <P>
1487 If the attribute begins with a plus sign '+', an additive margin is
1488 specified. That is, "+w,h" causes the node's bounding box to be increased
1489 by w
1490 points on the left and right sides, and by h points on the top and bottom.
1491 Without a plus sign, the node is scaled by 1 + w in the x coordinate
1492 and 1 + h in the y coordinate.
1493 <P>
1494 If only a single number is given, this is used for both dimensions.
1495 <P>
1496 If unset but <A HREF=#d:esep>esep</A> is defined, the <tt>sep</tt> values
1497 will be set to the <tt>esep</tt> values divided by <tt>0.8</tt>.
1498 If <tt>esep</tt> is unset, the default value is used.
1499
1500 <DT><A NAME=d:shape HREF=#a:shape><STRONG>shape</STRONG></A>
1501 <DD> Set the shape of a node.
1502
1503 <DT><A NAME=d:shapefile HREF=#a:shapefile><STRONG>shapefile</STRONG></A>
1504 <DD> (Deprecated) If defined, shapefile specifies a file containing user-supplied node content.
1505 The <A HREF=#d:shape><B>shape</B></A> of the node is set to box.
1506 The image in the shapefile must be
1507 rectangular. The image formats supported as well as the precise semantics of
1508 how the file is used depends on the
1509 <A HREF="http://www.graphviz.org/doc/info/output.html">output format</A>. For further details, see
1510 <A HREF=output.html#d:image_fmts>Image Formats</A> and
1511 <A HREF=http://www.graphviz.org/Documentation/html/shapehowto.html#ext_image>External PostScript files</A>.
1512 <P>
1513 There is one exception to this usage.
1514 If <B>shape</B> is set to "epsf", shapefile gives
1515 a filename containing a definition of the node in PostScript.
1516 The graphics defined must be contain all of the
1517 node content, including any desired boundaries.
1518 For further details, see
1519 <A HREF=http://www.graphviz.org/Documentation/html/shapehowto.html#ext_ps>
1520 External PostScript files</A>.
1521
1522 <DT><A NAME=d:showboxes HREF=#a:showboxes><STRONG>showboxes</STRONG></A>
1523 <DD> Print guide boxes in PostScript at the beginning of
1524 routesplines if 1, or at the end if 2. (Debugging)
1525
1526 <DT><A NAME=d:sides HREF=#a:sides><STRONG>sides</STRONG></A>
1527 <DD> Number of sides if <A HREF=#d:shape><B>shape</B></A>=polygon.
1528
1529 <DT><A NAME=d:size HREF=#a:size><STRONG>size</STRONG></A>
1530 <DD> Maximum width and height of drawing, in inches.
1531 If defined and the drawing is too large, the drawing is uniformly
1532 scaled down so that it fits within the given size.
1533 <P>
1534 If <TT>size</TT> ends in an exclamation point (<TT>!</TT>),
1535 then it is taken to be
1536 the desired size. In this case, if both dimensions of the drawing are
1537 less than <TT>size</TT>, the drawing is scaled up uniformly until at
1538 least one dimension equals its dimension in <TT>size</TT>.
1539 <P>
1540 Note that there is some interaction between the <B>size</B> and
1541 <A HREF=#d:ratio><B>ratio</B></A> attributes.
1542
1543 <DT><A NAME=d:skew HREF=#a:skew><STRONG>skew</STRONG></A>
1544 <DD> Skew factor for <A HREF=#d:shape><B>shape</B></A>=polygon. Positive values
1545 skew top of polygon to right; negative to left.
1546
1547 <DT><A NAME=d:smoothing HREF=#a:smoothing><STRONG>smoothing</STRONG></A>
1548 <DD> Specifies a post-processing step used to smooth out an uneven distribution
1549 of nodes.
1550
1551 <DT><A NAME=d:sortv HREF=#a:sortv><STRONG>sortv</STRONG></A>
1552 <DD> If <A HREF="#d:packmode">packmode</A> indicates an array packing,
1553 this attribute specifies an
1554 insertion order among the components, with smaller values inserted first.
1555
1556 <DT><A NAME=d:splines HREF=#a:splines><STRONG>splines</STRONG></A>
1557 <DD> Controls how, and if, edges are represented. If true, edges are drawn as
1558 splines routed around nodes; if false, edges are drawn as line segments.
1559 If set to "", no edges are drawn at all.
1560 <P>
1561 (1 March 2007) The values <TT>line</TT> and <TT>spline</TT> can be
1562 used as synonyms for <TT>false</TT> and <TT>true</TT>, respectively.
1563 In addition, the value <TT>polyline</TT> specifies that edges should be
1564 drawn as polylines.
1565 <P>
1566 By default, the attribute is unset. How this is interpreted depends on
1567 the layout. For dot, the default is to draw edges as splines. For all
1568 other layouts, the default is to draw edges as line segments. Note that
1569 for these latter layouts, if <TT>splines="true"</TT>, this
1570 requires non-overlapping nodes (cf. <A HREF=#d:overlap><B>overlap</B></A>).
1571 If fdp is used for layout and <TT>splines="compound"</TT>, then the edges are
1572 drawn to avoid clusters as well as nodes.
1573
1574 <DT><A NAME=d:start HREF=#a:start><STRONG>start</STRONG></A>
1575 <DD> Parameter used to determine the initial layout of nodes. If unset, the
1576 nodes are randomly placed in a unit square with
1577 the same seed is always used for the random number generator, so the
1578 initial placement is repeatable.
1579
1580 <DT><A NAME=d:style HREF=#a:style><STRONG>style</STRONG></A>
1581 <DD> Set style for node or edge. For cluster subgraph, if "filled", the
1582 cluster box's background is filled.
1583
1584 <DT><A NAME=d:stylesheet HREF=#a:stylesheet><STRONG>stylesheet</STRONG></A>
1585 <DD> A URL or pathname specifying an XML style sheet, used in SVG output.
1586
1587 <DT><A NAME=d:tailURL HREF=#a:tailURL><STRONG>tailURL</STRONG></A>
1588 <DD> If <B>tailURL</B> is defined, it is
1589 output as part of the tail label of the edge.
1590 Also, this value is used near the tail node, overriding any
1591 <A HREF=#d:URL>URL</A> value.
1592 See <A HREF=#h:undir_note>limitation</A>.
1593
1594 <DT><A NAME=d:tailclip HREF=#a:tailclip><STRONG>tailclip</STRONG></A>
1595 <DD> If true, the tail of an edge is clipped to the boundary of the tail node;
1596 otherwise, the end of the edge goes to the center of the node, or the
1597 center of a port, if applicable.
1598
1599 <DT><A NAME=d:tailhref HREF=#a:tailhref><STRONG>tailhref</STRONG></A>
1600 <DD> Synonym for <A HREF=#d:tailURL>tailURL</A>.
1601
1602 <DT><A NAME=d:taillabel HREF=#a:taillabel><STRONG>taillabel</STRONG></A>
1603 <DD> Text label to be placed near tail of edge.
1604 See <A HREF=#h:undir_note>limitation</A>.
1605
1606 <DT><A NAME=d:tailport HREF=#a:tailport><STRONG>tailport</STRONG></A>
1607 <DD> Indicates where on the tail node to attach the tail of the edge.
1608 See <A HREF=#h:undir_note>limitation</A>.
1609
1610 <DT><A NAME=d:tailtarget HREF=#a:tailtarget><STRONG>tailtarget</STRONG></A>
1611 <DD> If the edge has a <A HREF=#d:tailURL>tailURL</A>,
1612 this attribute determines which window of the
1613 browser is used
1614 for the URL. Setting it to "_graphviz" will open a new window if it
1615 doesn't already exist, or reuse it if it does.
1616 If undefined, the value of the <A HREF=#d:target>target</A> is used.
1617
1618 <DT><A NAME=d:tailtooltip HREF=#a:tailtooltip><STRONG>tailtooltip</STRONG></A>
1619 <DD> Tooltip annotation attached to the tail of an edge. This is used only
1620 if the edge has a <A HREF=#d:tailURL>tailURL</A> attribute.
1621
1622 <DT><A NAME=d:target HREF=#a:target><STRONG>target</STRONG></A>
1623 <DD> If the object has a URL, this attribute determines which window
1624 of the browser is used for the URL.
1625 See <A HREF="http://www.w3.org/TR/html401/present/frames.html#adef-target">W3C documentation</A>.
1626
1627 <DT><A NAME=d:tooltip HREF=#a:tooltip><STRONG>tooltip</STRONG></A>
1628 <DD> Tooltip annotation attached to the node or edge. If unset, Graphviz
1629 will use the object's <A HREF=#d:label>label</A> if defined.
1630 Note that if the label is a record specification or an HTML-like
1631 label, the resulting tooltip may be unhelpful. In this case, if
1632 tooltips will be generated, the user should set a <TT>tooltip</TT>
1633 attribute explicitly.
1634
1635 <DT><A NAME=d:truecolor HREF=#a:truecolor><STRONG>truecolor</STRONG></A>
1636 <DD> If set explicitly to true or false, the value determines whether or not
1637 internal bitmap rendering relies on a truecolor color model or uses
1638 a color palette.
1639 If the attribute is unset, truecolor is not used
1640 unless there is a <A HREF=#d:shapefile>shapefile</A> property
1641 for some node in the graph.
1642 The output model will use the input model when possible.
1643 <P>
1644 Use of color palettes results in less memory usage during creation of the
1645 bitmaps and smaller output files.
1646 <P>
1647 Usually, the only time it is necessary to specify the truetype model
1648 is if the graph uses more than 256 colors.
1649 However, if one uses <A HREF=#d:bgcolor>bgcolor</A>=transparent with
1650 a color palette, font
1651 antialiasing can show up as a fuzzy white area around characters.
1652 Using <B>truecolor</B>=true avoids this problem.
1653
1654 <DT><A NAME=d:vertices HREF=#a:vertices><STRONG>vertices</STRONG></A>
1655 <DD> If the input graph defines this attribute, the node is polygonal,
1656 and output is dot or xdot, this attribute provides the
1657 coordinates of the vertices of the node's polygon, in inches.
1658 If the node is an ellipse or circle, the
1659 <A HREF=#d:samplepoints>samplepoints</A> attribute affects
1660 the output.
1661
1662 <DT><A NAME=d:viewport HREF=#a:viewport><STRONG>viewport</STRONG></A>
1663 <DD> Clipping window on final drawing.
1664
1665 <DT><A NAME=d:voro_margin HREF=#a:voro_margin><STRONG>voro_margin</STRONG></A>
1666 <DD> Factor to scale up drawing to allow margin for expansion in
1667 Voronoi technique. dim' = (1+2*margin)*dim.
1668
1669 <DT><A NAME=d:weight HREF=#a:weight><STRONG>weight</STRONG></A>
1670 <DD> Weight of edge. In dot, the heavier the weight, the shorter,
1671 straighter and more vertical the edge is.
1672
1673 <DT><A NAME=d:width HREF=#a:width><STRONG>width</STRONG></A>
1674 <DD> Width of node, in inches. This is taken as the initial, minimum width
1675 of the node. If <A HREF=#d:fixedsize><B>fixedsize</B></A> is true, this
1676 will be the final width of the node. Otherwise, if the node label
1677 requires more width to fit, the node's width will be increased to
1678 contain the label. Note also that, if the output format is dot, the
1679 value given to <B>width</B> will be the final value.
1680
1681 <DT><A NAME=d:z HREF=#a:z><STRONG>z</STRONG></A>
1682 <DD> <B>Deprecated:</B>Use <A HREF=#d:pos><B>pos</B></A> attribute, along
1683 with <A HREF=#d:dimen><B>dimen</B></A> and/or <A HREF=#d:dim><B>dim</B></A>
1684 to specify dimensions.
1685 <P>
1686 Provides z coordinate value for 3D layouts and displays. If the
1687 graph has <A HREF=#d:dim><B>dim</B></A> set to 3 (or more),
1688 neato will use a node's <B>z</B> value
1689 for the z coordinate of its initial position if
1690 its <A HREF=#d:pos><B>pos</B></A> attribute is also defined.
1691 <P>
1692 Even if no <B>z</B> values are specified in the input, it is necessary to
1693 declare a <B>z</B> attribute for nodes, e.g, using <TT>node[z=""]</TT>
1694 in order to get z values on output.
1695 Thus, setting <TT>dim=3</TT> but not declaring <B>z</B> will
1696 cause <TT>neato -Tvrml</TT> to
1697 layout the graph in 3D but project the layout onto the xy-plane
1698 for the rendering. If the <B>z</B> attribute is declared, the final rendering
1699 will be in 3D.
1700
1701 </DL>
1702 <HR>
1703 <H1>Attribute Type Descriptions</H1>
1704 The following list gives the legal strings corresponding to values of
1705 the given types.
1706 <DL>
1707 <DT><A NAME=k:arrowType><STRONG>arrowType</STRONG></A>
1708 <DD><TABLE>
1709 <TR><TD>"normal"<TD><IMG SRC="a_normal.gif">
1710 <TD>"inv"<TD><IMG SRC="a_inv.gif"></TR>
1711 <TR><TD>"dot"<TD><IMG SRC="a_dot.gif">
1712 <TD>"invdot"<TD><IMG SRC="a_invdot.gif"></TR>
1713 <TR><TD>"odot"<TD><IMG SRC="a_odot.gif">
1714 <TD>"invodot"<TD><IMG SRC="a_invodot.gif"></TR>
1715 <TR><TD>"none"<TD><IMG SRC="a_none.gif">
1716 <TD>"tee"<TD><IMG SRC="a_tee.gif"></TR>
1717 <TR><TD>"empty"<TD><IMG SRC="a_empty.gif">
1718 <TD>"invempty"<TD><IMG SRC="a_invempty.gif"></TR>
1719 <TR><TD>"diamond"<TD><IMG SRC="a_diamond.gif">
1720 <TD>"odiamond"<TD><IMG SRC="a_odiamond.gif"></TR>
1721 <TR><TD>"ediamond"<TD><IMG SRC="a_ediamond.gif">
1722 <TD>"crow"<TD><IMG SRC="a_crow.gif"></TR>
1723 <TR><TD>"box"<TD><IMG SRC="a_box.gif">
1724 <TD>"obox"<TD><IMG SRC="a_obox.gif"></TR>
1725 <TR><TD>"open"<TD><IMG SRC="a_open.gif">
1726 <TD>"halfopen"<TD><IMG SRC="a_halfopen.gif"></TR>
1727 <TR><TD>"vee"<TD><IMG SRC="a_open.gif">
1728 </TABLE>
1729 <P>
1730 These are the basic set of backward-compatible arrow shapes. In addition,
1731 there is a grammar of <A HREF=arrows.html>arrow shapes</A>
1732 which can be used to describe a collection of 1,544,761 arrow combinations of the 36 varations of the primitive set of 9 arrows. The basic arrows shown
1733 above contain all of the primitive shapes
1734 (<TT>box</TT>, <TT>crow</TT>, <TT>diamond</TT>,
1735 <TT>dot</TT>, <TT>inv</TT>, <TT>none</tt>,
1736 <TT>normal</tt>, <TT>tee</TT>, <TT>vee</TT>)
1737 plus ones that can be derived from the grammar
1738 (<TT>odot</TT>, <TT>invdot</TT>, <TT>invodot</TT>,
1739 <TT>obox</TT>, <TT>odiamond</TT>)
1740 plus some supported as special cases for backward-compatibility
1741 (<TT>ediamond</TT>, <TT>open</TT>, <TT>halfopen</TT>,
1742 <TT>empty</TT>, <TT>invempty</TT>).
1743
1744 <DT><A NAME=k:aspectType><STRONG>aspectType</STRONG></A>
1745 <DD><p>An aspect ratio, double, followed optionally by a ',' and a maximum pass
1746 count. If the aspect ratio is given, but no maximum pass count, the
1747 latter defaults to 5.
1748
1749 <DT><A NAME=k:clusterMode><STRONG>clusterMode</STRONG></A>
1750 <DD>"local","global","none"
1751
1752 <DT><A NAME=k:color><STRONG>color</STRONG></A>
1753 <DD>Colors can be specified using one of four formats.
1754 <TABLE><TR><TD>"#%2x%2x%2x"<TD>Red-Green-Blue (RGB)</TR>
1755 <TR><TD>"#%2x%2x%2x%2x"<TD>Red-Green-Blue-Alpha (RGBA)</TR>
1756 <TR><TD>H[,&#160;]+S[,&#160;]+V<TD>Hue-Saturation-Value (HSV) 0.0 <= H,S,V <= 1.0</TR>
1757 <TR><TD>string<TD><A HREF=colors.html>color name</A></TR></TABLE>
1758 The specification for the RGB and RGBA formats are the format strings used by
1759 <TT>sscanf</TT> to scan the color value. Thus, these values have the form
1760 "#RGB" or "#RGBA", where R, G, B, and A each consist of 2 hexidecimal
1761 digits, and can be separated by whitespace. HSV colors have the form of 3
1762 numbers between 0 and 1, separated by whitespace or commas.
1763 <P>
1764 String-valued color specifications are case-insensitive and interpreted
1765 in the context of the current color scheme, as specified by the
1766 <A HREF=#d:colorscheme>colorscheme</A> attribute. If this is undefined,
1767 the X11 naming scheme will be used.
1768 An initial <TT>"/"</TT> character can be used to override the use of
1769 the <TT>colorscheme</TT> attribute. In particular, a single initial
1770 <TT>"/"</TT> will cause the string to be evaluated using the default
1771 X11 naming. If the color value has the form <TT>"/ssss/yyyy"</TT>,
1772 the name <TT>yyyy</TT> is interpreted using the schema <TT>ssss</TT>.
1773 If the color scheme name is empty, i.e., the color has the
1774 form <TT>"//yyyy"</TT>, the <TT>colorscheme</TT> attribute is used.
1775 Thus, the forms <TT>"yyyy"</TT> and <TT>"//yyyy"</TT> are
1776 equivalent.
1777 <P>At present, Graphviz recognizes the default color scheme <TT>X11</TT>,
1778 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
1779 color schemes are covered by this <A HREF=colors.html#brewer_license>license</A>.
1780 <P>
1781 Examples:<BR>
1782 <TABLE border=1>
1783 <TR><TH>Color<TH>RGB<TH>HSV<TH>String</TR>
1784 <TR><TD align=center bgcolor=#ffffff>White<TD>"#ffffff"<TD>"0.000 0.000 1.000"<TD>"white"</TR>
1785 <TR><TD align=center bgcolor=#000000><font color=white>Black</font><TD>"#000000"<TD>"0.000 0.000 0.000"<TD>"black"</TR>
1786 <TR><TD align=center bgcolor=#ff0000>Red<TD>"#ff0000"<TD>"0.000 1.000 1.000"<TD>"red"</TR>
1787 <TR><TD align=center bgcolor=#40e0d0>Turquoise<TD>"#40e0d0"<TD>"0.482 0.714 0.878"<TD>"turquoise"</TR>
1788 <TR><TD align=center bgcolor=#a0522d>Sienna<TD>"#a0522d"<TD>"0.051 0.718 0.627"<TD>"sienna"</TR>
1789 </TABLE>
1790 <P>
1791 Note that some output formats, e.g., <A HREF="output.html#a:mif">mif</A>,
1792 only support a limited number of specific colors.
1793 <P>
1794 The string value <TT>transparent</TT> can be used to indicate no color.
1795 This is only available in the output formats
1796 ps, svg, fig, vmrl, and the bitmap formats. It can be used whenever a
1797 color is needed but is most useful with
1798 the <A HREF=#d:bgcolor>bgcolor</A> attribute.
1799 Usually, the same effect can be achieved by setting
1800 <A HREF=#d:style>style</A> to <TT>invis</TT>.
1801
1802 <DT><A NAME=k:colorList><STRONG>colorList</STRONG></A>
1803 <DD>A colon-separated list of color values: <I>C</I>(:<I>C</I>)*
1804 where each <I>C</I> is a <A HREF=#k:color>color</A> value.
1805
1806 <DT><A NAME=k:dirType><STRONG>dirType</STRONG></A>
1807 <DD>For an edge <CODE>T -> H;</CODE>
1808 <TABLE>
1809 <TR><TD>"forward"<TD><IMG SRC="forward.gif">
1810 <TD>"back"<TD><IMG SRC="back.gif"></TR>
1811 <TR><TD>"both"<TD><IMG SRC="both.gif">
1812 <TD>"none"<TD><IMG SRC="nohead.gif"></TR>
1813 </TABLE>
1814 For undirected edges <CODE>T -- H;</CODE>, one of the nodes, usually
1815 the righthand one, is treated as the head for the purpose of
1816 interpreting "forward" and "back".
1817
1818 <DT><A NAME=k:escString><STRONG>escString</STRONG></A>
1819 <DD>string allowing escape sequences which are replaced according
1820 to the context.
1821 For node attributes, the substring "\N" is replaced by the name of the node,
1822 and the substring "\G" by the name of the graph.
1823 For graph or cluster attributes, the substring "\G" is replaced by the
1824 name of the graph or cluster.
1825 For edge attributes, the substring "\E" is replaced by the name of the edge,
1826 the substring "\G" is replaced by the name of the graph or cluster,
1827 and the substrings "\T" and "\H" by the names of
1828 the tail and head nodes, respectively.
1829 The name of an edge is the string formed from the name of the
1830 tail node, the appropriate edge operator ("--" or "->") and the name of the
1831 head node.
1832 In all cases, the substring "\L" is replaced by the object's label attribute.
1833 <P>
1834 In addition, if the associated attribute is
1835 <A HREF=#a:label>label</A>,
1836 <A HREF=#a:headlabel>headlabel</A> or <A HREF=#a:taillabel>taillabel</A>,
1837 the escape sequences "\n", "\l" and "\r"
1838 divide the label into lines, centered, left-justified, and right-justified,
1839 respectively.
1840
1841 <DT><A NAME=k:layerList><STRONG>layerList</STRONG></A>
1842 <DD>list of strings separated by characters from the
1843 <A HREF=#a:layersep>layersep</A> attribute (by default, colons,
1844 tabs or spaces), defining <A HREF=#a:layer>layer</A>
1845 names and implicitly numbered 1,2,...
1846
1847 <DT><A NAME=k:layerRange><STRONG>layerRange</STRONG></A>
1848 <DD>layerId or layerId<B>s</B>layerId,<BR> where layerId = "all",
1849 a decimal integer or a <A HREF=#a:layer>layer</A> name.
1850 (An integer i corresponds to layer i.)
1851 The string <B>s</B> consists of 1 or more separator characters specified
1852 by the <A HREF=#a:layersep>layersep</A> attribute.
1853
1854 <DT><A NAME=k:lblString><STRONG>lblString</STRONG></A>
1855 <DD>an <A HREF=#k:escString>escString</A>
1856 or an <A HREF=shapes.html#html>HTML label</A>.
1857
1858 <DT><A NAME=k:outputMode><STRONG>outputMode</STRONG></A>
1859 <DD>"breadthfirst","nodesfirst","edgesfirst"
1860 These specify the order in which nodes and edges are drawn in concrete
1861 output. The default "breadthfirst" is the simplest, but when the graph
1862 layout does not avoid edge-node overlap, this mode will sometimes have
1863 edges drawn over nodes and sometimes on top of nodes. If the mode
1864 "nodesfirst" is chosen, all nodes are drawn first, followed by the
1865 edges. This guarantees an edge-node overlap will not be mistaken for
1866 an edge ending at a node. On the other hand, usually for aesthetic
1867 reasons, it may be desirable that all edges appear beneath nodes, even
1868 if the resulting drawing is ambiguous. This can be achieved by choosing
1869 "edgesfirst".
1870
1871 <DT><A NAME=k:packMode><STRONG>packMode</STRONG></A>
1872 <DD>"node", "clust" , "graph" , "array[_flags][%d]"
1873 <P>
1874 The modes "node", "clust" or "graph"
1875 specify that the components should be packed together tightly, using
1876 the specified granularity.
1877 A value of "node" causes
1878 packing at the node and edge level, with no overlapping of these objects.
1879 This produces a layout with the least area, but it also allows interleaving,
1880 where a node of one component may lie between two nodes in another
1881 component. A value of "graph" does a packing using the bounding box of the
1882 component. Thus, there will be a rectangular region around a component
1883 free of elements of any other component.
1884 A value of "clust" guarantees that top-level clusters are kept intact.
1885 What effect a value has also depends on the layout algorithm. For
1886 example, neato does not support clusters, so a value of "clust" will
1887 have the same effect as the default "node" value.
1888 <P>
1889 The mode "array[_flags][%d]"
1890 indicates that the components should be packed at the
1891 graph level into an array of graphs. By default, the components
1892 are in row-major order, with the number of columns roughly the
1893 square root of the number of components. If the optional flags
1894 contains "c", then column-major order is used. Finally, if the
1895 optional integer suffix is used, this specifies the number of
1896 columns for row-major or the number of rows for column-major.
1897 Thus, the mode "array_c4" indicates array packing, with 4 rows,
1898 starting in the upper left and going down the first column, then
1899 down the second column, etc., until all components are used.
1900 <P>
1901 If the optional flags contains "u", this causes the insertion
1902 order of elements in the array to be determined by user-supplied
1903 values. Each component can specify its sort value by a
1904 non-negative integer using the <A HREF="#d:sortv">sortv</A> attribute.
1905 Components are
1906 inserted in order, starting with the one with the smallest
1907 sort value. If no sort value is specified, zero is used.
1908
1909 <DT><A NAME=k:pagedir><STRONG>pagedir</STRONG></A>
1910 <DD>"BL", "BR", "TL", "TR", "RB", "RT", "LB", "LT".
1911 These specify the 8 row or column major orders for traversing a
1912 rectangular array, the first character corresponding to the major
1913 order and the second to the minor order. Thus, for "BL", the
1914 major order is from bottom to top, and the minor order is from left
1915 to right. This means the bottom row is traversed first, from left
1916 to right, then the next row up, from left to right, and so on,
1917 until the topmost row is traversed.
1918
1919 <DT><A NAME=k:point><STRONG>point</STRONG></A>
1920 <DD>"%f,%f"('!') representing the point (x,y). The
1921 optional '!' indicates the
1922 node position should not change (input-only).
1923 <P>
1924 If <A HREF=#d:dim>dim</A> is 3 or more, <B>point</B> may also have
1925 the format "%f,%f,%f"('!') to represent the point (x,y,z).
1926
1927 <DT><A NAME=k:pointf><STRONG>pointf</STRONG></A>
1928 <DD>"%lf,%lf" representing the point (x,y).
1929
1930 <DT><A NAME=k:pointfList><STRONG>pointfList</STRONG></A>
1931 <DD>list of pointf, separated by spaces.
1932
1933 <DT><A NAME=k:portPos><STRONG>portPos</STRONG></A>
1934 <DD>modifier indicating where on a node an edge should be aimed.
1935 It has the form <TT><I>portname</I>[:<I>compass_point</I>]</TT>
1936 or <TT><I>compass_point</I></TT>.
1937 If the first form is used, the corresponding node must either have
1938 <A HREF=shapes.html#record>record</A> shape with one of its fields
1939 having the given <I>portname</I>,
1940 or have an <A HREF=shapes.html#html>HTML-like label</A>, one of
1941 whose components has a <TT>PORT</TT> attribute set to <I>portname</I>.
1942 <P>
1943 If a compass point is used, it must have the form
1944 <TT>"n","ne","e","se","s","sw","w","nw","c","_"</TT>. This modifies the edge
1945 placement to aim for the corresponding compass point on the port or,
1946 in the second form where no <I>portname</I> is supplied, on the node
1947 itself. The compass point "c" specifies the center of the node or port.
1948 The compass point "_" specifies that an appropriate side of the port
1949 adjacent to the exterior of the node should be used, if such exists.
1950 Otherwise, the center is used.
1951 If no compass point is used with a portname, the default value is "_".
1952 <P>
1953 <P>
1954 This attribute can be attached to an edge using the
1955 <A HREF=#k:headport>headport</A> and
1956 <A HREF=#k:tailport>tailport</A> attributes, or as part of the
1957 edge description as in
1958 <CENTER>
1959 <TT>node1:port1 -> node2:port5:nw;</TT>
1960 </CENTER>
1961 <P>
1962 Note that it is legal to have a portname the same as one of
1963 the compass points. In this case, this reference will be resolved to
1964 the port. Thus, if node <TT>A</TT> has a port <TT>w</TT>, then
1965 <TT>headport=w</TT> will refer to the port and not the compass point.
1966 At present, in this case, there is no way to specify that the compass
1967 point should be used.
1968
1969 <DT><A NAME=k:quadType><STRONG>quadType</STRONG></A>
1970 <DD>"normal", "fast", "none".
1971 <P>
1972 Using "fast" gives about a 2-4 times overall speedup compared with "normal",
1973 though layout quality can suffer a little.
1974
1975 <DT><A NAME=k:rankType><STRONG>rankType</STRONG></A>
1976 <DD>"same", "min", "source", "max", "sink"
1977
1978 <DT><A NAME=k:rankdir><STRONG>rankdir</STRONG></A>
1979 <DD>"TB", "LR", "BT", "RL", corresponding to directed graphs drawn
1980 from top to bottom, from left to right, from bottom to top, and from
1981 right to left, respectively.
1982
1983 <DT><A NAME=k:rect><STRONG>rect</STRONG></A>
1984 <DD>"%f,%f,%f,%f" The rectangle llx,lly,urx,ury gives the coordinates, in
1985 points, of the lower-left corner (llx,lly) and the upper-right corner
1986 (urx,ury).
1987
1988 <DT><A NAME=k:shape><STRONG>shape</STRONG></A>
1989 <DD>A string specifying the <A HREF=shapes.html>shape</A> of a node.
1990 There are three
1991 main types of shapes :
1992 <A HREF=shapes.html#polygon>polygon-based</A>,
1993 <A HREF=shapes.html#record>record-based</A> and
1994 <A HREF=shapes.html#epsf>user-defined</A>.
1995
1996 <DT><A NAME=k:smoothType><STRONG>smoothType</STRONG></A>
1997 <DD>Values are "none", "avg_dist", "graph_dist", "power_dist", "rng",
1998 "spring" and "triangle".
1999
2000 <DT><A NAME=k:splineType><STRONG>splineType</STRONG></A>
2001 <DD>spline ( ';' spline )*<BR>
2002 <TABLE>
2003 <TR><TD ALIGN=right>where spline<TD>=<TD>(endp)? (startp)? point (triple)+</TR>
2004 <TR><TD ALIGN=right>and triple<TD>=<TD>point point point</TR>
2005 <TR><TD ALIGN=right>and endp<TD>=<TD>"e,%f,%f"</TR>
2006 <TR><TD ALIGN=right>and startp<TD>=<TD>"s,%f,%f"</TR>
2007 </TABLE>
2008 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
2009 correspond to the control points of a B-spline from p<SUB>1</SUB> to p<SUB>n</SUB>. If startp
2010 is given, it touches one node of the edge, and the arrowhead
2011 goes from p<SUB>1</SUB> to startp. If startp is not given, p<SUB>1</SUB> touches a node.
2012 Similarly for p<SUB>n</SUB> and endp.
2013
2014 <DT><A NAME=k:startType><STRONG>startType</STRONG></A>
2015 <DD>has the syntax <TT>[<I>style</I>][<I>seed</I>]</TT>.
2016 <P>
2017 If <I>style</I> is present, it must be one of the strings <TT>"regular"</TT>,
2018 <TT>"self"</TT>, or <TT>"random"</TT>. In the first case, the nodes are
2019 placed regularly about a circle. In the second case,
2020 an abbreviated version of neato is run to obtain the initial layout.
2021 In the last case, the nodes are placed randomly in a unit square.
2022 <P>
2023 If <I>seed</I> is present, it specifies a seed for the random number
2024 generator. If <I>seed</I> is a positive number, this is used as the
2025 seed. If it is anything else,
2026 the current time, and possibly the process id, is used to pick a seed,
2027 thereby making the choice more random. In this case, the seed value
2028 is stored in the graph.
2029 <P>
2030 If the value is just <TT>"random"</TT>, a time-based seed is chosen.
2031 <P>
2032 Note that input positions, specified by a node's
2033 <A HREF=#d:pos>pos</A>
2034 attribute, are only used when the style is <TT>"random"</TT>.
2035
2036 <DT><A NAME=k:style><STRONG>style</STRONG></A>
2037 <DD>styleItem ( ',' styleItem )*<BR>
2038 <TABLE>
2039 <TR><TD ALIGN=right>where styleItem<TD>=<TD>name or name'('args')'</TR>
2040 <TR><TD ALIGN=right>and args<TD>=<TD>name ( ',' name )*</TR>
2041 <TR><TD ALIGN=right>and name<TD>=<TD>[^)(, &nbsp;][^)(,]*</TR>
2042 </TABLE>
2043 Note that whitespace characters are ignored, except for names which
2044 can contain them. A
2045 name cannot contain any comma, or left or right parenthesis, and it cannot
2046 begin with a whitespace character.
2047 <P>
2048 At present, the recognized style names are
2049 "dashed", "dotted", "solid", "invis" and "bold" for nodes and edges,
2050 and "filled", "diagonals" and "rounded" for nodes only.
2051 The styles "filled" and "rounded" are recognized for clusters.
2052 Additional styles are available in
2053 device-dependent form. Style lists are passed to device drivers, which
2054 can use this to generate appropriate output.
2055 <P>
2056 The <TT>setlinewidth</TT> style value can be
2057 used for more control over the width of node borders and edges than is
2058 allowed by <TT>bold</TT>. This style value takes an argument, specifying the
2059 width of the line in <A HREF=#points>points</A>. For example, <TT>style="bold"</TT> is
2060 equivalent to <TT>style="setlinewidth(2)"</TT>.
2061 <B>The use of <TT>setlinewidth</TT> is deprecated; one should use the
2062 <A HREF=#d:penwidth><TT>penwidth</TT></A> attribute instead.</B>
2063
2064 <DT><A NAME=k:viewPort><STRONG>viewPort</STRONG></A>
2065 <DD>"%lf,%lf,%lf,%lf,%lf" or "%lf,%lf,%lf,'%s'"
2066 <P>
2067 The viewPort <TT>W,H,Z,x,y</TT> or <TT>W,H,Z,N</TT>
2068 specifies a viewport for the final image. The pair (W,H) gives the
2069 dimensions (width and height) of the final image, in
2070 <A HREF=#points>points</A>.
2071 The optional Z is the zoom factor, i.e., the image in the original layout will be
2072 W/Z by H/Z points in size. By default, Z is 1.
2073 The optional last part is either a pair (x,y) giving a position in the original layout of the
2074 graph, in
2075 <A HREF=#points>points</A>, of the center of the viewport, or the name N
2076 of a node whose center should used as the focus.
2077 By default, the focus is the center of the graph bounding box, i.e.,
2078 (bbx/2,bby/2), where "bbx,bby" is the
2079 value of the bounding box attribute <A HREF=#a:bb>bb</A>.
2080 <P>
2081 Sample values: <TT>50,50,.5,'2.8 BSD'</T> or <TT>100,100,2,450,300</TT>.
2082 The first will take the 100x100 point square centered on the node <TT>2.8 BSD</TT>
2083 and scale it down by 0.5, yielding a 50x50 point final image.
2084
2085 </DL>
2086 </BODY>
2087 </HTML>