comparison toolboxes/graph_visualisation/share/graphviz/doc/html/info/output.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>Output Formats</TITLE>
8 </HEAD>
9 <BODY BGCOLOR=white>
10 <A NAME="top"></A>
11 <H1 align=CENTER>Output Formats</H1>
12 <HR>
13 The output format is specified with the <STRONG>-T</STRONG><I>lang</I>
14 flag on the <A HREF=command.html>command line</A>, where <I>lang</I>
15 is one of the parameters listed below.
16 <P>
17 The formats actually available in a given Graphviz system depend on
18 how the system was built and the presence of additional libraries.
19 To see what formats <b>dot</b> supports, run <TT>dot -T?</TT>.
20 See the <A HREF=command.html#d.T> description of the -T</A>
21 flag for additional information.
22 <P>
23 Note that the internal coordinate system has the origin
24 in the lower left corner.
25 Thus, positions in the
26 <A HREF=#d:canon>canon</A>,
27 <A HREF=#d:dot>dot</A>,
28 <A HREF=#d:xdot>xdot</A>,
29 <A HREF=#d:plain>plain</A>, and
30 <A HREF=#d:plain-ext>plain-ext</A>
31 formats need to be interpreted in this manner.
32 <P>
33 <TABLE ALIGN=CENTER>
34 <TR><TH>Command-line<BR>parameter</TH><TH>Format</TH></TR>
35 <TR><TD ALIGN=CENTER><A NAME=a:bmp HREF=#d:bmp>bmp</A>
36 </TD><TD>Windows Bitmap Format</TD> </TR>
37 <TR><TD ALIGN=CENTER><A NAME=a:canon HREF=#d:canon>canon</A>
38 <BR><A NAME=a:dot HREF=#d:dot>dot</A>
39 <BR><A NAME=a:xdot HREF=#d:xdot>xdot</A>
40 </TD><TD>DOT</TD> </TR>
41 <TR><TD ALIGN=CENTER><A NAME=a:cmap HREF=#d:cmap>cmap</A>
42 </TD><TD>Client-side imagemap (deprecated)</TD> </TR>
43 <TR><TD ALIGN=CENTER><A NAME=a:dia HREF=#d:dia>dia</A>
44 </TD><TD>Dia format</TD> </TR>
45 <TR><TD ALIGN=CENTER><A NAME=a:eps HREF=#d:eps>eps</A>
46 </TD><TD>Encapsulated PostScript</TD> </TR>
47 <TR><TD ALIGN=CENTER><A NAME=a:fig HREF=#d:fig>fig</A>
48 </TD><TD>FIG</TD> </TR>
49 <TR><TD ALIGN=CENTER><A NAME=a:gd HREF=#d:gd>gd</A>
50 <BR><A NAME=a:gd2 HREF=#d:gd2>gd2</A>
51 </TD><TD>GD/GD2 formats</TD> </TR>
52 <TR><TD ALIGN=CENTER><A NAME=a:gif HREF=#d:gif>gif</A>
53 </TD><TD>GIF</TD> </TR>
54 <TR><TD ALIGN=CENTER><A NAME=a:gtk HREF=#d:gtk>gtk</A>
55 </TD><TD>GTK canvas</TD> </TR>
56 <TR><TD ALIGN=CENTER><A NAME=a:hpgl HREF=#d:hpgl>hpgl</A>
57 </TD><TD>HP-GL/2</TD> </TR>
58 <TR><TD ALIGN=CENTER><A NAME=a:ico HREF=#d:ico>ico</A>
59 </TD><TD>Icon Image File Format</TD> </TR>
60 <TR><TD ALIGN=CENTER><A NAME=a:imap HREF=#d:imap>imap</A>
61 <BR><A NAME=a:cmapx HREF=#d:cmapx>cmapx</A>
62 </TD><TD>Server-side and client-side imagemaps</TD> </TR>
63 <TR><TD ALIGN=CENTER><A NAME=a:imap_np HREF=#d:imap_np>imap_np</A>
64 <BR><A NAME=a:cmapx_np HREF=#d:cmapx_np>cmapx_np</A>
65 </TD><TD>Server-side and client-side imagemaps</TD> </TR>
66 <TR><TD ALIGN=CENTER><A NAME=a:ismap HREF=#d:ismap>ismap</A>
67 </TD><TD>Server-side imagemap (deprecated)</TD> </TR>
68 <TR><TD ALIGN=CENTER><A NAME=a:jpg HREF=#d:jpg>jpg</A>
69 <BR><A NAME=a:jpeg HREF=#d:jpeg>jpeg</A>
70 <BR><A NAME=a:jpe HREF=#d:jpe>jpe</A>
71 </TD><TD>JPEG</TD> </TR>
72 <TR><TD ALIGN=CENTER><A NAME=a:mif HREF=#d:mif>mif</A>
73 </TD><TD>FrameMaker MIF format</TD> </TR>
74 <TR><TD ALIGN=CENTER><A NAME=a:mp HREF=#d:mp>mp</A>
75 </TD><TD>MetaPost</TD> </TR>
76 <TR><TD ALIGN=CENTER><A NAME=a:pcl HREF=#d:pcl>pcl</A>
77 </TD><TD>PCL</TD> </TR>
78 <TR><TD ALIGN=CENTER><A NAME=a:pdf HREF=#d:pdf>pdf</A>
79 </TD><TD>Portable Document Format (PDF)</TD> </TR>
80 <TR><TD ALIGN=CENTER><A NAME=a:pic HREF=#d:pic>pic</A>
81 </TD><TD>PIC</TD> </TR>
82 <TR><TD ALIGN=CENTER><A NAME=a:plain HREF=#d:plain>plain</A>
83 <BR><A NAME=a:plain-ext HREF=#d:plain-ext>plain-ext</A>
84 </TD><TD>Simple text format</TD> </TR>
85 <TR><TD ALIGN=CENTER><A NAME=a:png HREF=#d:png>png</A>
86 </TD><TD>Portable Network Graphics format</TD> </TR>
87 <TR><TD ALIGN=CENTER><A NAME=a:ps HREF=#d:ps>ps</A>
88 </TD><TD>PostScript</TD> </TR>
89 <TR><TD ALIGN=CENTER><A NAME=a:ps2 HREF=#d:ps2>ps2</A>
90 </TD><TD>PostScript for PDF</TD> </TR>
91 <TR><TD ALIGN=CENTER><A NAME=a:svg HREF=#d:svg>svg</A>
92 <BR><A NAME=a:svgz HREF=#d:svgz>svgz</A>
93 </TD><TD>Scalable Vector Graphics</TD> </TR>
94 <TR><TD ALIGN=CENTER><A NAME=a:tga HREF=#d:tga>tga</A>
95 </TD><TD>Truevision Targa Format (TGA)</TD> </TR>
96 <TR><TD ALIGN=CENTER><A NAME=a:tif HREF=#d:tif>tif</A>
97 <BR><A NAME=a:tiff HREF=#d:tiff>tiff</A>
98 </TD><TD>TIFF (Tag Image File Format)</TD> </TR>
99 <TR><TD ALIGN=CENTER><A NAME=a:vml HREF=#d:vml>vml</A>
100 <BR><A NAME=a:vmlz HREF=#d:vmlz>vmlz</A>
101 </TD><TD>Vector Markup Language (VML)</TD> </TR>
102 <TR><TD ALIGN=CENTER><A NAME=a:vrml HREF=#d:vrml>vrml</A>
103 </TD><TD>VRML</TD> </TR>
104 <TR><TD ALIGN=CENTER><A NAME=a:vtx HREF=#d:vtx>vtx</A>
105 </TD><TD>Visual Thought format</TD> </TR>
106 <TR><TD ALIGN=CENTER><A NAME=a:wbmp HREF=#d:wbmp>wbmp</A>
107 </TD><TD>Wireless BitMap format</TD> </TR>
108 <TR><TD ALIGN=CENTER><A NAME=a:xlib HREF=#d:xlib>xlib</A>
109 </TD><TD>Xlib canvas</TD> </TR>
110 </TABLE>
111 <HR>
112 <H2>Format Descriptions</H2>
113 <DL>
114 <DT><A NAME=d:bmp HREF=#a:bmp><STRONG>bmp</STRONG></A>
115 <DD>Outputs images in the Windows <A HREF="http://en.wikipedia.org/wiki/Bitmap">BMP</A> format.
116
117 <DT><A NAME=d:canon HREF=#a:canon><STRONG>canon</STRONG></A>
118 ,<DT><A NAME=d:dot HREF=#a:dot><STRONG>dot</STRONG></A>
119 ,<DT><A NAME=d:xdot HREF=#a:xdot><STRONG>xdot</STRONG></A>
120 <DD>These formats produce output in the
121 <A HREF=lang.html>dot language</A>.
122 Using <B>canon</B> produces a prettyprinted version of the input,
123 with no layout performed.
124 <P>
125 The <B>dot</B> option corresponds to attributed dot output,
126 and is the default output format.
127 It reproduces the input, along with layout information for the graph.
128 In particular, a <A HREF=attrs.html#d:bb>bb</A> attribute is
129 attached to the graph, specifying the bounding box of the drawing.
130 If the graph has a label, its position is specified by the
131 <A HREF=attrs.html#d:lp>lp</A> attribute.
132 <P>
133 Each node gets <A HREF=attrs.html#d:pos>pos</A>,
134 <A HREF=attrs.html#d:width>width</A> and
135 <A HREF=attrs.html#d:height>height</A> attributes. If the node is a record,
136 the record rectangles are given in the
137 <A HREF=attrs.html#d:rects>rects</A> attribute.
138 If the node is a polygon and the
139 <A HREF=attrs.html#d:vertices>vertices</A> attribute is defined, this
140 attribute contains the vertices of the node.
141 <P>
142 Every edge is
143 assigned a <A HREF=attrs.html#d:pos>pos</A> attribute,
144 and if the edge has a label, the label position
145 is given in <A HREF=attrs.html#d:lp>lp</A>.
146 <P>
147 The <B>xdot</B> format extends the
148 <B>dot</B> format by providing much more detailed information about
149 how graph components are drawn. It relies on additional attributes
150 for nodes, edges and graphs.
151 <P>
152 The format is preliminary; comments and
153 suggestions for better representations are welcome.
154 To allow for changes in the format, Graphviz attaches the attribute
155 <TT>xdotversion</TT> to the graph.
156 <P>
157 Additional drawing attributes can appear on nodes, edges, clusters and
158 on the graph itself. There are six new attributes:
159 <SPACER TYPE=VERTICAL size=10>
160 <TABLE border bgcolor=beige>
161 <TR><TD>_draw_<TD colspan=2>Drawing operations
162 <TR><TD>_ldraw_<TD colspan=2>Label drawing
163 <TR><TD>_hdraw_<TD>Head arrowhead<TD>Edge only
164 <TR><TD>_tdraw_<TD>Tail arrowhead<TD>Edge only
165 <TR><TD>_hldraw_<TD>Head label<TD>Edge only
166 <TR><TD>_tldraw_<TD>Tail label<TD>Edge only
167 </TABLE>
168 <P>
169 For a given graph object, one will typically a draw directive before the
170 label directive. For example, for a node, one would first use the commands
171 in <B>_draw_</B> followed by the commands in <B>_ldraw_</B>.
172 <P>
173 The value of these attributes consists of the concatenation of some
174 (multi-)set of the following 13 rendering or attribute operations.
175 (The number is parentheses gives the xdot version when the operation
176 was added to the format. If no version number is given, the operation
177 was in the original specification.)
178 <SPACER TYPE=VERTICAL size=10>
179 <TABLE border bgcolor=beige>
180 <TR><TD>E x<sub>0</sub> y<sub>0</sub> w h
181 <TD>Filled ellipse ((x-x<sub>0</sub>)/w)<sup>2</sup> + ((y-y<sub>0</sub>)/h)<sup>2</sup> = 1
182 <TR><TD>e x<sub>0</sub> y<sub>0</sub> w h
183 <TD>Unfilled ellipse ((x-x<sub>0</sub>)/w)<sup>2</sup> + ((y-y<sub>0</sub>)/h)<sup>2</sup> = 1
184 <TR><TD>P n x<sub>1</sub> y<sub>1</sub> ... x<sub>n</sub> y<sub>n</sub>
185 <TD>Filled polygon using the given n points
186 <TR><TD>p n x<sub>1</sub> y<sub>1</sub> ... x<sub>n</sub> y<sub>n</sub>
187 <TD>Unfilled polygon using the given n points
188 <TR><TD>L n x<sub>1</sub> y<sub>1</sub> ... x<sub>n</sub> y<sub>n</sub>
189 <TD>Polyline using the given n points
190 <TR><TD>B n x<sub>1</sub> y<sub>1</sub> ... x<sub>n</sub> y<sub>n</sub>
191 <TD>B-spline using the given n control points
192 <TR><TD>b n x<sub>1</sub> y<sub>1</sub> ... x<sub>n</sub> y<sub>n</sub>
193 <TD>Filled B-spline using the given n control points (1.1)
194 <TR><TD>T x y j w n -<I>b<sub>1</sub>b<sub>2</sub>...b<sub>n</sub></I>
195 <TD>Text drawn using the baseline point (x,y). The text consists of the
196 n bytes following '-'. The text should be left-aligned (centered,
197 right-aligned) on the point if j is -1 (0, 1), respectively. The value
198 w gives the width of the text as computed by the library.
199 <TR><TD>C n -<I>b<sub>1</sub>b<sub>2</sub>...b<sub>n</sub></I>
200 <TD>Set fill color. The color value consists of the
201 n bytes following '-'. (1.1)
202 <TR><TD>c n -<I>b<sub>1</sub>b<sub>2</sub>...b<sub>n</sub></I>
203 <TD>Set pen color. The color value consists of the
204 n bytes following '-'. (1.1)
205 <TR><TD>F s n -<I>b<sub>1</sub>b<sub>2</sub>...b<sub>n</sub></I>
206 <TD>Set font. The font size is s points. The font name consists of the
207 n bytes following '-'. (1.1)
208 <TR><TD>S n -<I>b<sub>1</sub>b<sub>2</sub>...b<sub>n</sub></I>
209 <TD>Set style attribute. The style value consists of the
210 n bytes following '-'. The syntax of the value is the same as
211 specified for a <B>styleItem</B> in <A HREF=attrs.html#k:style>style</A>. (1.1)
212 <TR><TD>I x y w h n -<I>b<sub>1</sub>b<sub>2</sub>...b<sub>n</sub></I>
213 <TD>Externally-specified image drawn in the box with lower left
214 corner (x,y) and upper right corner (x+w,y+h). The name of the image
215 consists of the n bytes following '-'. This is usually a bitmap
216 image. Note that the image size, even when converted from pixels to
217 points, might be different from the required size (w,h). It is
218 assumed the renderer will perform the necessary scaling. (1.2)
219 </TABLE>
220 <P>
221 Note that the filled figures (ellipses, polygons and B-Splines)
222 imply two operations: first, drawing the filled figure with the
223 current fill color; second, drawing an unfilled figure with the
224 current pen color, pen width and pen style.
225 the
226 <P>
227 Style values which can be incorporated in the graphics model do not
228 appear in xdot output. In particular, the style values
229 <TT>filled</TT>, <TT>rounded</TT>, <TT>diagonals</TT>, and <TT>invis</TT>
230 will not appear. Indeed, if style contains <TT>invis</TT>,
231 there will not be any xdot output at all.
232 <P>
233 In handling text alignment, the application may want to recompute the
234 string width using its own rendering primitives.
235 <P>
236 The text operation is only used in the label attributes. Normally,
237 the non-text operations are only used in the non-label attributes.
238 If, however, the <A HREF=attrs.html#d:decorate>decorate</A>
239 attribute is set on an edge, its label
240 attribute will also contain a polyline operation.
241 In addition, if a label is a complex, HTML-like label, it will also
242 contain non-text operations.
243 <P>
244 All coordinates and sizes are in points.
245 Note though that if
246 an edge or node is invisible, no drawing operations are attached to it.
247 <P>
248 Version info:
249 <TABLE border >
250 <TR><TH>Xdot version</TH><TH>Graphviz version</TH></TR>
251 <TR><TD>1.0</TD><TD>1.9</TD></TR>
252 <TR><TD>1.1</TD><TD>2.8</TD></TR>
253 <TR><TD>1.2</TD><TD>2.13</TD></TR>
254 </TABLE>
255
256 <DT><A NAME=d:cmap HREF=#a:cmap><STRONG>cmap</STRONG></A>
257 <DD>Produces map files for client-side image maps. The cmap format is
258 mostly identical to cmapx, but the latter is well-formed XML amenable
259 to processing by XML tools. In particular, the cmapx output is wrapped in
260 &lt;map&gt;&lt;/map&gt;.
261 <P>
262 See <A HREF=#ID>Note</A>.
263
264 <DT><A NAME=d:dia HREF=#a:dia><STRONG>dia</STRONG></A>
265 <DD>Produces <A HREF="http://www.gnome.org/projects/dia/">Dia</A> output.
266
267 <DT><A NAME=d:eps HREF=#a:eps><STRONG>eps</STRONG></A>
268 <DD>Produces Encapsulated PostScript output.
269 At present, this is only guaranteed to be correct for a single
270 input graph since the Bounding Box information has to appear
271 at the beginning of the output, and this will be based on the first graph.
272
273 <DT><A NAME=d:fig HREF=#a:fig><STRONG>fig</STRONG></A>
274 <DD>Outputs graphs in the FIG graphics language.
275
276 <DT><A NAME=d:gd HREF=#a:gd><STRONG>gd</STRONG></A>
277 ,<DT><A NAME=d:gd2 HREF=#a:gd2><STRONG>gd2</STRONG></A>
278 <DD>Output images in the GD and GD2 format. These are the internal
279 formats used by the gd library. The latter is compressed.
280
281 <DT><A NAME=d:gif HREF=#a:gif><STRONG>gif</STRONG></A>
282 <DD>Outputs GIF bitmap images.
283
284 <DT><A NAME=d:gtk HREF=#a:gtk><STRONG>gtk</STRONG></A>
285 <DD>Creates a <A HREF="http://www.gtk.org/">GTK</A> window and displays the output there.
286
287 <DT><A NAME=d:hpgl HREF=#a:hpgl><STRONG>hpgl</STRONG></A>
288 <DD>Produces output in the HP-GL/2 vector graphic printer language.
289
290 <DT><A NAME=d:ico HREF=#a:ico><STRONG>ico</STRONG></A>
291 <DD>Outputs images in the Windows <A HREF="http://en.wikipedia.org/wiki/ICO_(icon_image_file_format)">ICO format</A>.
292
293 <DT><A NAME=d:imap HREF=#a:imap><STRONG>imap</STRONG></A>
294 ,<DT><A NAME=d:cmapx HREF=#a:cmapx><STRONG>cmapx</STRONG></A>
295 <DD>Produces map files for server-side and client-side image maps,
296 These can be used in a web page with
297 a graphical form of the output, e.g. in JPEG or GIF format, to attach
298 links to nodes and edges. For example, to create a server-side map
299 given the dot file
300 <PRE>
301 /* x.dot */
302 digraph mainmap {
303 URL="http://www.research.att.com/base.html";
304 command [URL="http://www.research.att.com/command.html"];
305 command -> output [URL="colors.html"];
306 }
307 </PRE>
308 one would process the graph and generate two output files:
309 <PRE>
310 dot -Timap -ox.map -Tgif -ox.gif x.dot
311 </PRE>
312 and then refer to it in a web page:
313 <XMP>
314 <A HREF="x.map"><IMG SRC="x.gif" ismap="ismap" /></A>
315 </XMP>
316 For client-side maps, one again generates two output files:
317 <PRE>
318 dot -Tcmapx -ox.map -Tgif -ox.gif x.dot
319 </PRE>
320 and uses the HTML
321 <XMP>
322 <IMG SRC="x.gif" USEMAP="#mainmap" />
323 ... [content of x.map] ...
324 </XMP>
325 <A HREF=attrs.html#d:URL>URLs</A> can be attached to the root
326 graph, nodes and edges. If a node has a URL, clicking in the node
327 will activate the link.
328 If an edge has a URL, various
329 points along the edge (but not necessarily the head or tail)
330 will link to it. In addition, if the edge has a
331 <A HREF=attrs.html#d:label>label</A>, that will link
332 to the URL.
333 As for the head of the edge, this is linked to the
334 <A HREF=attrs.html#d:headURL>headURL</A>, if set.
335 Otherwise, it is linked to the edge's URL if that is defined.
336 The analogous description holds for the tail and the
337 <A HREF=attrs.html#d:tailURL>tailURL</A>.
338 A URL associated with the graph is used as a default link.
339 <P>
340 If the URL
341 of a node contains the escape sequence "\N", it will be replaced by
342 the node's name.
343 If the headURL is defined and contains the escape sequence "\N",
344 it will be replaced by
345 the <A HREF=attrs.html#d:headlabel>headlabel</A>, if defined.
346 The analogous result holds for the tailURL and the
347 <A HREF=attrs.html#d:taillabel>taillabel</A>.
348 <P>
349 See <A HREF=#ID>Note</A>.
350
351 <DT><A NAME=d:imap_np HREF=#a:imap_np><STRONG>imap_np</STRONG></A>
352 ,<DT><A NAME=d:cmapx_np HREF=#a:cmapx_np><STRONG>cmapx_np</STRONG></A>
353 <DD>These are identical to the imap and cmapx formats, except they
354 rely solely on rectangles as active areas.
355
356 <DT><A NAME=d:ismap HREF=#a:ismap><STRONG>ismap</STRONG></A>
357 <DD>Produces HTML image map files. This is a predecessor (circa 1994)
358 of the IMAP format. Most servers now use the latter.
359 <A HREF=attrs.html#d:URL>URLs</A> can be attached to the root graph,
360 nodes and edges. Since edge
361 links are attached to edge labels, an edge must
362 have a <A HREF=attrs.html#d:label>label</A> for its
363 URL to be used. For both nodes and edges, if the URL has the escape
364 sequence "\N" embedded in its string, this will be replaced with the
365 node or edge name.
366
367 <DT><A NAME=d:jpg HREF=#a:jpg><STRONG>jpg</STRONG></A>
368 ,<DT><A NAME=d:jpeg HREF=#a:jpeg><STRONG>jpeg</STRONG></A>
369 ,<DT><A NAME=d:jpe HREF=#a:jpe><STRONG>jpe</STRONG></A>
370 <DD>Output JPEG compressed image files.
371
372 <DT><A NAME=d:mif HREF=#a:mif><STRONG>mif</STRONG></A>
373 <DD>Generates Frame Maker MIF files.
374
375 <DT><A NAME=d:mp HREF=#a:mp><STRONG>mp</STRONG></A>
376 <DD>Produces <A HREF="http://cm.bell-labs.com/who/hobby/MetaPost.html">MetaPost</A> output.
377
378 <DT><A NAME=d:pcl HREF=#a:pcl><STRONG>pcl</STRONG></A>
379 <DD>Produces output in the PCL printer language.
380 <A HREF=#d:hpgl>HP-GL</A> is a subset of
381 PCL, so that PCL output is the same as HP-GL, wrapped with some initial
382 and final commands to set the printer to and from HP-GL mode.
383
384 <DT><A NAME=d:pdf HREF=#a:pdf><STRONG>pdf</STRONG></A>
385 <DD>Produces <A HREF="http://www.adobe.com/devnet/pdf/">PDF</A> output.
386 (This option assumes Graphviz includes the Cairo renderer.)
387 Alternatively, one can use the <A HREF="#d:ps2">ps2</A> option to
388 produce PDF-compatible PostScript, and then use a ps-to-pdf converter.
389 <P>
390 Note: At present, this option does not support anchors, etc. To get these
391 included in your PDF output, use <A HREF="#d:ps2">ps2</A>.
392
393 <DT><A NAME=d:pic HREF=#a:pic><STRONG>pic</STRONG></A>
394 <DD>Outputs in PIC, the picture description language in the troff-family
395
396 <DT><A NAME=d:plain HREF=#a:plain><STRONG>plain</STRONG></A>
397 ,<DT><A NAME=d:plain-ext HREF=#a:plain-ext><STRONG>plain-ext</STRONG></A>
398 <DD>The plain and plain-ext formats produce output using
399 a simple, line-based language.
400 The latter format differs in that, on edges, it provides port names
401 on head and tail nodes when applicable.
402 <P>
403 There are four types of statements.
404 <PRE>
405 <STRONG>graph</STRONG> <I>scale</I> <I>width</I> <I>height</I>
406 <STRONG>node</STRONG> <I>name</I> <I>x</I> <I>y</I> <I>width</I> <I>height</I> <I>label</I> <I>style</I> <I>shape</I> <I>color</I> <I>fillcolor</I>
407 <STRONG>edge</STRONG> <I>tail</I> <I>head</I> <I>n</I> <I>x<sub>1</sub></I> <I>y<sub>1</sub></I> .. <I>x<sub>n</sub></I> <I>y<sub>n</sub></I> [<I>label</I> <I>xl</I> <I>yl</I>] <I>style</I> <I>color</I>
408 <STRONG>stop</STRONG>
409 </PRE>
410 <DL>
411 <DT><STRONG>graph</STRONG>
412 <DD>The <I>width</I> and <I>height</I> values give the width and height
413 of the drawing. The lower left corner of the drawing is at the origin.
414 The <I>scale</I> value indicates how the drawing should be scaled
415 if a <A HREF=attrs.html#d:size>size</A> attribute was given and the drawing
416 needs to be scaled to conform to that size. If no scaling is necessary,
417 it will be set to 1.0. Note that all graph, node and edge
418 coordinates and lengths are given unscaled.
419 <DT><STRONG>node</STRONG>
420 <DD>The <I>name</I> value is the name of the node, and <I>x</I> and <I>y</I>
421 give the node's position. The <I>width</I> and <I>height</I> are the
422 width and height of the node.
423 The <I>label</I>,
424 <I>style</I>, <I>shape</I>, <I>color</I> and <I>fillcolor</I> give the
425 node's <A HREF=attrs.html#d:label>label</A>,
426 <A HREF=attrs.html#d:style>style</A>, <A HREF=attrs.html#d:shape>shape</A>,
427 <A HREF=attrs.html#d:color>color</A> and
428 <A HREF=attrs.html#d:fillcolor>fillcolor</A>,
429 respectively, using attribute default values where necessary. If the
430 node does not have a style attribute, "solid" is used.
431 <DT><STRONG>edge</STRONG>
432 <DD>The <I>tail</I> and <I>head</I> values give the names of the head and
433 tail nodes. In plain-ext format, the head or tail name will be appended
434 with a colon and a portname if the edge connects to the node at a port.
435 <I>n</I> is the number of control points defining the
436 B-spline forming the edge. This is followed by 2*<I>n</I> numbers giving
437 the x and y coordinates of the control points in order from tail to head.
438 If the edge has a <A HREF=attrs.html#d:label>label</A>, this comes next
439 followed by the x and y coordinates of the label's position.
440 The edge description is completed by the edge's
441 <A HREF=attrs.html#d:style>style</A> and <A HREF=attrs.html#d:color>color</A>.
442 As with nodes, if a style is not defined, "solid" is used.
443 <P>
444 <B>Note:</B> The control points given in an edge statement define the
445 body of the edge. In particular, if the edge has an arrowhead to the
446 head or tail node,
447 there will be a gap between the last or first control points and the
448 boundary of the associated node. There are at least 3 possible ways
449 of handling this gap:
450 <UL>
451 <LI> Arrange that the input graph uses <TT>dir=none</TT>,
452 <TT>arrowhead=none</TT>, or <TT>arrowtail=none</TT> for all edges.
453 In this case, the terminating control points will always touch the node.
454 <LI> Consider the line segment joining the control point and the center
455 of the node, and determine the point where the segment intersects the
456 node's boundary. Then use the control point and the intersection point
457 as the main axis of an arrowhead. The problem with this approach is
458 that, if the edge has a port, the edge will not be pointing to the
459 center of the node. In this case, rather than use the control point
460 and center point, one can use the control point and its tangent.
461 <LI> Arrange that the input graph uses <TT>headclip=false</TT> or
462 <TT>tailclip=false</TT>. In this case, the edge will terminate at
463 the node's center rather than its boundary. If arrowheads are used,
464 there will still be a gap, but normally this will occur within the
465 node. The application will still need to clip the spline to the node
466 boundary. Also, as with the previous item, if the edge points to
467 a node port, this technique will fail.
468 </UL>
469 </DL>
470 The output consists of one <STRONG>graph</STRONG> line, a sequence of
471 <STRONG>node</STRONG> lines, one per node, a sequence of
472 <STRONG>edge</STRONG> lines, one per edge, and a final <STRONG>stop</STRONG>
473 line. All units are in inches, represented by a floating point number.
474 <P>
475 Note that the plain formats provide minimal information, really giving not
476 much more than node positions and sizes, and edge spline control points.
477 These formats are usually most useful to applications wanting just this
478 geometric information, and willing to fill in all of the graphical details.
479 The only real advantages to these formats is their terseness and their
480 ease of parsing. In general, the <A HREF=#d:dot>dot</A> and
481 <A HREF=#d:xdot>xdot</A> are preferable in terms of the quantity of
482 information provided.
483
484 <DT><A NAME=d:png HREF=#a:png><STRONG>png</STRONG></A>
485 <DD>Produces output in the PNG (Portable Network Graphics) format.
486
487 <DT><A NAME=d:ps HREF=#a:ps><STRONG>ps</STRONG></A>
488 <DD>Produces PostScript output.
489 <P>
490 Note: The default PostScript renderer can only handle the Latin-1
491 character set. To get non-Latin-1 characters into PostScript output,
492 use <TT>-Tps:cairo</TT>, assuming your version was built with the
493 Cairo renderer.
494
495 <DT><A NAME=d:ps2 HREF=#a:ps2><STRONG>ps2</STRONG></A>
496 <DD>Produces PostScript output with PDF notations. It is assumed the output
497 will be directly converted into PDF format. The notations include PDF
498 bounding box information, so that the resulting PDF file can be correctly
499 used with pdf tools, such as <STRONG>pdflatex</STRONG>.
500 In addition, if a node has a URL
501 attribute, this gets translated into PDF code such that the node,
502 when viewed in a PDF-viewer, e.g.,
503 <STRONG>acroread</STRONG>,
504 is a link to the given URL. If a URL is attached to the graph, this serves
505 as a base, such that relative URLs on nodes are derived from it.
506
507 <DT><A NAME=d:svg HREF=#a:svg><STRONG>svg</STRONG></A>
508 ,<DT><A NAME=d:svgz HREF=#a:svgz><STRONG>svgz</STRONG></A>
509 <DD>Produce <A HREF="http://www.adobe.com/svg/">SVG</A> output,
510 the latter in compressed format.
511 <P>
512 See <A HREF=#ID>Note</A>.
513
514 <DT><A NAME=d:tga HREF=#a:tga><STRONG>tga</STRONG></A>
515 <DD>Produces <A HREF="http://en.wikipedia.org/wiki/Truevision_TGA">Targa</A> output.
516
517 <DT><A NAME=d:tif HREF=#a:tif><STRONG>tif</STRONG></A>
518 ,<DT><A NAME=d:tiff HREF=#a:tiff><STRONG>tiff</STRONG></A>
519 <DD>Produces <A HREF="http://www.libtiff.org/">TIFF</A> output.
520
521 <DT><A NAME=d:vml HREF=#a:vml><STRONG>vml</STRONG></A>
522 ,<DT><A NAME=d:vmlz HREF=#a:vmlz><STRONG>vmlz</STRONG></A>
523 <DD>Produces <A HREF="http://www.w3.org/TR/NOTE-VML">VML</A> output,
524 the latter in compressed format.
525 <P>
526 See <A HREF=#ID>Note</A>.
527
528 <DT><A NAME=d:vrml HREF=#a:vrml><STRONG>vrml</STRONG></A>
529 <DD>Outputs graphs in the <A HREF="http://www.vrml.org/">VRML</A> format.
530 To get a 3D embedding, nodes must have a <A HREF=attrs.html#d:z>z</A>
531 attribute. These can either be supplied as part of the input graph, or
532 be generated by neato provided <A HREF=attrs.html#d:dim>dim</A><TT>=3</TT>
533 and at least one node has a <B>z</B> value.
534 <P>
535 Line segments are drawn as cylinders.
536 In general, VRML output relies on having the PNG library to produce images
537 used to texture-fill the node shapes. However, if
538 <A HREF=attrs.html#d:shape>shape</A><TT>=point</TT>,
539 a node is drawn as a 3D sphere.
540
541 <DT><A NAME=d:vtx HREF=#a:vtx><STRONG>vtx</STRONG></A>
542 <DD>Generates graph diagrams in the format for
543 <A HREF="http://www.bombshellstudios.com/samples/co/vt.html">Confluents's Visual Thought</A>.
544
545 <DT><A NAME=d:wbmp HREF=#a:wbmp><STRONG>wbmp</STRONG></A>
546 <DD>Produces output in the Wireless BitMap (WBMP) format, optimized for
547 mobile computing.
548
549 <DT><A NAME=d:xlib HREF=#a:xlib><STRONG>xlib</STRONG></A>
550 <DD>Creates an <A HREF="http://en.wikipedia.org/wiki/Xlib">Xlib</A> window and displays the output there.
551
552 </DL>
553 <HR>
554 </BODY>
555 </HTML>
556 <H1 align=CENTER><A NAME=d:image_fmts>Image Formats</A></H1>
557 <HR>
558 The <A HREF=attrs.html#a:image>image</A> and <A HREF=attrs.html#a:shapefile>shapefile</A> attributes specify an image file to be included
559 as part of the final diagram. Not all image formats can be read. In addition,
560 even if read, not all image formats can necessarily be used in a given
561 output format.
562 <P>
563 The graph below shows what image formats can be used in which output formats,
564 and the required plugins. On the left are the supported image formats.
565 On the right are the supported output formats.
566 In the middle are the plugins: image loaders, renderers, drivers, arranged by
567 plugin library.
568 This presents the most general case. A given installation may not provide
569 one of the plugins, in which case, that transformation is not possible.
570 <BR>
571 <IMG WIDTH="80%" SRC="plugins.png">
572 <HR>
573 <H2>Notes</H2>
574 <OL TYPE="1">
575 <LI>
576 <A NAME=ID>In the formats: -Tcmap, -Tcmapx, -Tsvg, -Tvml, the output generates
577 'id="node#"' properties for nodes, 'id="edge#"' properties for edges, and 'id="cluster#"' properties for clusters, with the '#' replaced by an internally assigned integer. These strings can be provided instead by an externally provided "id=xxx" attribute on the object.
578 Normal "\N" "\E" "\G" substitutions are applied.
579 Externally provided id values are not used internally, and it is the use's reponsibilty to ensure
580 that they are sufficiently unique for their intended downstream use.
581 Note, in particular, that "\E" is not a unique id for multiedges.
582 </OL>