]> granicus.if.org Git - graphviz/commitdiff
Redirect doc files to graphviz.org
authorMark Hansen <markhansen@google.com>
Sun, 28 Feb 2021 02:54:40 +0000 (13:54 +1100)
committerMark Hansen <markhansen@google.com>
Sun, 28 Feb 2021 02:57:48 +0000 (13:57 +1100)
The canonical location for these docs is in the graphviz.gitlab.io repo,
and it's extra work to maintain them in both places. The files have
gotten a bit out of sync, and have been migrated to markdown in the
other repo.

Adding the redirects ensures that they point at the latest versions with
the latest changes.

doc/FAQ.html
doc/build.html
doc/char.html
doc/todo.html

index df540f444069e6f1f18635d9518257c9eefd3916..464424d51aee25d3f12a74f8c87b29b7fe0b8712 100644 (file)
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
-        "http://www.w3.org/TR/html4/loose.dtd">
-<HTML><HEAD><TITLE>Graphviz FAQ 2008-06-06</TITLE>
-<META HTTP-EQUIV="content-type" CONTENT="text/html; charset=utf-8">
-</HEAD><BODY>
-<H1>Graphviz FAQ 2009-09-10</H1>
-
-<A HREF="mailto:gviz-bugs@research.att.com">The Graphviz Project</A>
-<p>
-<b>Note</b>:
-This is not a tutorial; to understand the following, you should
-know how to use the basic features of the tools and
-languages involved. Please see the
-<A HREF="https://www.graphviz.org/documentation/">
-user guides and documentation</A> for further information or the
-<A HREF="https://www.graphviz.org/resources/">resources page</A>
-for a partial list of compatible tools and packages.
-
-<h2>General</h2>
-
-<B><A name=Q1 HREF=#Q1>
-Q1</A>. Where can I see a list of all the attributes that control dot or neato?</B>
-
-<P>
-See <A HREF="info/attrs.html">
-Graph Attributes</A>. There is also information on
-<A HREF="info/command.html">
-command-line usage</A> and
-<A HREF="info/output.html">
-output formats</A>.
-<p>
-<a name="mailinglist"></a>
-<B><A name=Q2 HREF=#Q2>
-Q2</A>. Where can I discuss Graphviz?</B>
-
-<p>
-We run a mailing list.
-<p>
-To subscribe or unsubscribe, visit the
-<A HREF="https://mailman.research.att.com/mailman/listinfo/graphviz-interest">graphviz-interest</A> <em>mailman</em> control page.  See also the general
-<A HREF="http://www.list.org/mailman-member/index.html">
-instructions</A> for mailman.
-<p>
-You can also see the
-<A HREF="https://mailman.research.att.com/pipermail/graphviz-interest/">
-archive</A>.
-<p>
-You may wish to use a Yahoo or Hotmail account if you're concerned
-about spam. We also run anti-spam filters, and rewrite <tt>@</tt>
-as <tt>at</tt> to keep verbatim addresses out of the archive.
-<p>
-Please, please, please, do not torment the mailing list with beginner's
-questions.  First, check this FAQ and the
-<A HREF="https://mailman.research.att.com/pipermail/graphviz-interest/">
-message archive</A> carefully. 
-If you are desperate, or better yet, if you have constructive advice,
-please send a message to the <A HREF="https://mailman.research.att.com/mailman/listinfo/graphviz-devel">graphviz-devel mailing list</A>.
-<p>
-Also, if a program crashes or you get an abort or something strange occurs
-and you are fairly comfortable using the tools:
-<UL>
-<LI>
-Check the 
-<A HREF="http://www.research.att.com/~erg/graphviz/bugs/openbugs.html"> open
-bug list</A> to see if a similar bug has already been reported. You might
-also consider checking the
-<A HREF="http://www.research.att.com/~erg/graphviz/bugs/buglist.html"> full
-bug list</A>, since your bug may have been reported and fixed in the working
-version.
-<LI>
-Submit a <A HREF="http://www.research.att.com/~erg/graphviz/bugform.html">bug 
-report</A>. If you prefer, you can download a 
-<A HREF="http://www.research.att.com/~erg/graphviz/bugform.txt">report in
-text form</A>, fill in the fields, and email it to 
-<a href="mailto:gviz-bugs@research.att.com">gviz-bugs@research.att.com</a>.
-</UL>
-<p>
-<B><A name=Q3 HREF=#Q3>
-Q3</A>. I'm trying to make a layout larger. How?</B>
-
-<p>
-There are various ways to increase the size of a layout. In doing this,
-one has to decide if the sizes of the nodes and text should be 
-increased as well.
-<p>
-One approach is to adjust individual
-parameters such as <tt>fontsize, nodesep</tt> and <tt>ranksep</tt>.
-For example,
-<pre>
-           digraph G {
-                graph [fontsize=24];
-                edge  [fontsize=24];
-                node  [fontsize=24];
-                ranksep = 1.5;
-                nodesep = .25;
-                edge [style="setlinewidth(3)"];
-                a -&gt; b -&gt; c;
-           }
-</pre>
-If you do this, make sure you are not fighting a conflicting graph
-size setting, like <tt>size="6,6"</tt>, which will then scale
-everything back down.
-<p>
-If you are using fdp or neato, increasing the edge len will tend to
-expand the layout.
-<pre>
-        graph G {
-           edge [len=3]
-           a -- { b c d }
-        }
-</pre>
-For twopi and circo, there are other parameters such as
-<tt>ranksep</tt> which can be used. See the 
-<A HREF="info/attrs.html">
-graph attributes</A>.
-<p>
-You can also use the <tt>ratio</tt> attribute. If you set the <tt>size</tt>
-attribute to the desired drawing size, and then set <tt>ratio=fill</tt>, node
-positions are scaled separately in x and y until the drawing fills the
-specified <tt>size</tt>. Note that node sizes stay the same. If, instead,
-you set <tt>ratio=expand</tt>, the layout is uniformly scaled up in x and y
-until at least one dimension fits <tt>size</tt>.
-<p>
-If you specify the <tt>size</tt> attribute but end it with an exclamation
-mark (!), the final drawing will be scaled up uniformly in x and y 
-until at least one dimension fits <tt>size</tt>. Note that everything is
-scaled up, including text and node sizes.
-<p>
-If you're using Postscript, you can just scale up the output by
-manually adding a command such as <tt>2 2 scale</tt> where the
-Postscript environment is set up.  Make sure to adjust the
-<tt>BoundingBox</tt> too if your tools look at this header.
-<p>
-<B><A name=Q4 HREF=#Q4>
-Q4</A>. How can I join or merge certain edge routes in dot?</B>
-
-<p>
-You can try running <tt>dot -Gconcentrate=true</tt> or you can
-introduce your own virtual nodes drawn as tiny circles where
-you want to split or join edges:
-
-<pre>
-digraph G {
-  yourvirtualnode [shape=circle,width=.01,height=.01,label=""];
-  a -&gt; yourvirtualnode [arrowhead=none]
-  yourvirtualnode -&gt; {b;c}
-}
-</pre>
-
-<P>
-<A name=Q4a>
-<B>Q. How can I generate graph layouts in PDF?</B>
-</A>
-<P>
-Recent versions of graphviz with the CairoPango based drivers
-can generate PDF directly with the <tt>-Tpdf</tt> command line option.
-This this first.
-<P>
-Otherwise, create Postscript output, then use an external converter from
-Postscript to PDF.
-For example,<BR>
-<tt>dot -Tps | epsf2pdf -o file.pdf</tt><br>
-Note that URL tags are respected, to allow clickable PDF objects.
-<P>
-If your intention is to use the figure as PDF in some document preparation 
-system, such as pdflatex, it is very important to use -Tps2 rather than
--Tps. In general, if you really want PDF output, that is, you would like
-to have a -Tpdf flag, use -Tps2 before converting to PDF. 
-<P>
-In the diagram below, the shaded nodes will contain bad output.<BR>
-<IMG src="pspdf.png">
-<P>
-<A name=Q4b>
-<B>Q. How can I make duplicate nodes?</B>
-</A>
-<P>
-Make unique nodes with duplicate labels.
-<pre>
-      digraph G {
-            node001 [label = "A"];
-            node002 [label = "A"];
-                       node001 -&gt; node002;
-         }
-</pre>
-<P>
-<A name=Q4c>
-<B>Q. How can I set a graph or cluster label without its propagating to all sub-clusters?</B>
-</A>
-<P>
-Set the label at the end of the graph (before the closing brace), after all
-its contents have been defined. (We admit it seems desirable to define some
-special syntax for non-inherited attribute settings.)
-<p>
-<B><A name=Q5 HREF=#Q5>
-Q5</A>. How can I draw multiple parallel edges in neato?</B>
-
-<p>
-This is possible when the <tt>splines</tt> attribute is false, which
-is the default. When <tt>splines=true</tt>, we have no good answer but
-we are working on it. One trick which is sometimes sufficient is to 
-specify multiple colors for the edge. This will a produce set of tightly
-parallel splines, each in its specified color. Read about the
-<A HREF="info/attrs.html#d:color">color
-attribute</A> for more information.
-
-<h2>Clusters</h2>
-
-<A name=Q5a>
-<B>Q. How can I create edges between cluster boxes?</B>
-</A>
-<p>
-This only works in Graphviz version 1.7 and higher.
-To make edges between clusters, first set the
-graph attribute <tt>compound=true</tt>.
-Then, you can specify a cluster by name as
-a <i>logical head or tail</i> to an edge. This will
-cause the edge joining the two nodes to be
-clipped to the exterior of the box around the
-given cluster.
-<p>
-For example,
-<pre>
-      digraph G {
-        compound=true;
-        nodesep=1.0;
-        subgraph cluster_A {
-          a -&gt; b;
-          a -&gt; c;
-        }
-        subgraph cluster_B {
-          d -&gt; e;
-          f -&gt; e;
-        }
-        a -&gt; e [ ltail=cluster_A,
-                 lhead=cluster_B ];
-      }
-</pre>
-
-has an edge going from <tt>cluster_A</tt> to
-<tt>cluster_B</tt>. If, instead, you say
-<pre>
-        a -&gt; e [ltail=cluster_A];
-</pre>
-this gives you an edge from <tt>cluster_A</tt> to node
-<tt>e</tt>. Or you could just specify
-an <tt>lhead</tt> attribute.
-The program warns if a cluster specified as a
-logical node is not defined.
-Also, if a cluster is specified as a logical
-head for an edge, the real
-head must be contained in the cluster, and
-the real tail must not be.
-A similar check is done for logical tails. In
-these cases, the edge
-is drawn between the real nodes as usual.
-<p>
-<B><A name=Q6 HREF=#Q6>
-Q6</A>. Clusters are hard to see.</B>
-
-<P>
-Set <tt>bgcolor=grey</tt>
-(or some other color)
-in the cluster.
-<P>
-<B><A name=Q7 HREF=#Q7>
-Q7</A>. How can I symmetrize (balance) tree layouts?</B>
-
-<P>
-When a tree node has an even number of children, it isn't necessarily
-centered above the two middle ones.  If you know the order of the children,
-a simple hack is to introduce new, invisible middle nodes to re-balance
-the layout. The connecting edges should also be invisible. For example:
-<pre>
-digraph G {
-a -&gt; b0;
-xb [label="",width=.1,style=invis]
-a -&gt; xb [style=invis];
-a -&gt; b1;
-{rank=same b0 -&gt;  xb -&gt; b1 [style=invis]}
-b0 -&gt; c0;
-xc [label="",width=.1,style=invis]
-b0 -&gt; xc [style=invis];
-b0 -&gt; c1;
-{rank=same c0 -&gt;  xc -&gt; c1 [style=invis]}
-}
-</pre>
-This trick really ought to be build into our solver (and made
-independent of the order of the children, and available for
-layouts other than trees, too).
-
-<H2>Output features</H2>
-
-<B><A name=Q8 HREF=#Q8>
-Q8</A>. How can I get high quality (antialiased) output?</B>
-
-<P>
-The easiest thing may be to make the layout in Postscript (option <tt>-Tps</tt>),
-then run through <A HREF="http://www.cs.wisc.edu/~ghost/">Ghostview</A> with
-antialiasing enabled.  The important command line options are
-<tt>-dTextAlphaBits=4 -dGraphicsAlphaBits=4</tt>
-(4 is the highest level of antialiasing allowed - see the
-<A HREF="http://www.cs.wisc.edu/~ghost/doc/GPL/8.15/Use.htm">Ghostview documentation</A>).
-The full command line to render a raster could be something like:
-<pre>
-gs -q -dNOPAUSE -dBATCH -dTextAlphaBits=4 -dGraphicsAlphaBits=4 -sDEVICE=png16m -sOutputFile=file.png file.ps
-</pre>
-<P>
-On Mac OS X, the <A HREF="http://www.pixelglow.com/graphviz/">pixelglow</A> port
-uses Apple's Quartz renderer, which enables antialiasing.  It also provides a beautiful document container for its user interface. (One downside is
-that you can't run Pixelglow Graphviz as a web server or other background
-process if your Mac has 3D graphics, because Quartz wants to get this resource
-to accelerate rendering. Another problem is that as of this writing,
-Pixelglow Graphviz hasn't been updated in a long time, maybe mid 2004.)
-<P>
-On the Linux bleeding edge, Graphviz has an optional plugin to use
-the <A HREF="http://www.cairographics.org">cairo</A> back end,
-which has antialiased, path-based graphics.  If you want this,
-you must install cairo, which is not part of Graphviz.  Cairo is
-available in recent versions of Fedora linux, or it can be built
-from source.
-<P>
-<B><A name=Q9 HREF=#Q9>
-Q9</A>. I can only get 11x17 output.</B>
-
-<P>
-It's not us!  It's probably your printer setup.  If you don't
-believe this, run <tt>dot -Tps</tt> and look at the
-<tt>BoundingBox</tt> header.  The coords are in 1/72ths of an inch.
-<P>
-<B><A name=Q10 HREF=#Q10>
-Q10</A>. How do I create special symbols and accents in labels?</B>
-
-<P>
-The following solution only works with the
-raster drivers that load Truetype or Type1
-fonts!  (That means, <tt>-Tgif, -Tpng, -Tjpeg</tt>, and possibly
-<tt>-Tbmp</tt> or <tt>-Txbm</tt> if enabled). 
-Use UTF8 coding, <i>e.g.</i> &amp;#165; for the Yen currency symbol &#165;.
-Example:
-<pre>
-      graph G {
-            yen [label="&amp;#165;"]
-      }
-</pre>
-<P>
-You can look up other examples in this handy 
-<A HREF="https://www.graphviz.org/doc/char.html">
-character set reference</A>.
-<P>
-<A name=Q10b>
-<B>Q. More generally, how do I use non-ASCII character sets?</B>
-</A>
-<P>
-The following applies to Graphviz 2.8 and later.  (In older versions
-of Graphviz, you can sometimes get away with simply putting
-Latin-1 or other UTF-8 characters in the input stream, but the
-results are not always correct.)
-<P>
-<B>Input:</B> the general idea is to find the
-<A HREF="http://en.wikipedia.org/wiki/Unicode">Unicode</A>
-value for the glyph you want, and enter it within a text
-string "...." or HTML-like label &lt;...&gt;.
-<P>
-For example, the mathematical <i>forall</i> sign (&#8704;) has the value 0x2200.
-There are several ways this can be inserted into a file.
-One is to write out the ASCII representation: "&amp;#&lt;nnn&gt;;" where &lt;nnn&gt;
-is the decimal representation of the value. The decimal value of 0x2200 is 8704,
-so the character can be specified as "&amp;#8704;" . Alternatively, Graphviz
-accepts UTF-8 encoded input.  In the case of forall, its UTF-8 representation
-is 3 bytes whose decimal values are 226 136 128. For convenience, you
-would probably enter this using your favorite editor, tuned to your character set
-of choice. You can then use the <A HREF="http://www.gnu.org/software/libiconv/#TOCdownloading">
-iconv</A> program to map the graph from your character set to UTF-8 or Latin-1.
-<P>
-We also accept the HTML symbolic names for Latin-1 characters as suggested
-<A HREF="#Q10">above</A>.
-(Go to http://www.research.att.com/~john/docs/html/index.htm and click
-on Special symbols and Entities) For example, the cent sign (unicode
-and Latin-1 value decimal 162 can be inserted as
-<pre>
-&amp;cent;
-</pre>
-<P>
-Note that <b>the graph file must always be a plain text document</b>
-not a Word or other rich format file.  Any characters not enclosed in "..."
-or &lt;...&gt; must be ordinary ASCII characters. In particular, all of the DOT
-keywords such as <tt>digraph</tt> or <tt>subgraph</tt> must be ASCII.
-<P>
-Because we cannot always guess the encoding, you should set the graph
-attribute <tt>charset</tt> to 
-<A HREF="http://en.wikipedia.org/wiki/UTF-8">UTF-8</A>,
-<A HREF="http://en.wikipedia.org/wiki/Latin-1">Latin1</A>
-(alias ISO-8859-1 or ISO-IR-100)
-or 
-<A HREF="http://en.wikipedia.org/wiki/Big-5">Big-5</A> for
-Traditional Chinese.  This can be done in the graph file or on the command line.
-For example <tt>charset=Latin1</tt>.
-<P>
-<B>Output:</B> It is essential that a font which has the glyphs for your
-specified characters is available at final rendering time.
-The choice of this font depends on the target code generator.
-For the gd-based raster generators (PNG, GIF, etc.) you need a
-TrueType or Type-1 font file on the machine running the Graphviz program. 
-If Graphviz is built with the <tt>fontconfig</tt>
-library, it will be used to find the specified font. Otherwise, Graphviz will
-look in various default directories for the font. The directories to be
-searched include those specified by the <tt>fontpath</tt> attribute,
-related environment or shell variables
-(see the <a href="https://www.graphviz.org/doc/info/attrs.html#d:fontpath">fontpath</A> entry),
-and known system font directories. 
-The table
-<A HREF="https://www.graphviz.org/doc/char.html">
-https://www.graphviz.org/doc/char.html</A>
-points out that these glyphs are from the <tt>times.ttf</tt> font.
-With fontconfig, it's hard to specify this font.  <tt>Times</tt> usually gets
-resolved to Adobe Type1 times, which doesn't have all the glyphs seen on that page.)
-<!--- can someone explain whether Cairo differs from libgd here? --->
-<P>
-For Postscript, the input must be either the ASCII subset of UTF-8
-or Latin-1. (We have looked for more general solutions, but it
-appears that UTF-8 and Unicode are handled differently for every
-kind of font type in Postscript, and we don't have time to hack
-this case-by-case.  If someone wants to volunteer to work on this, let us know.)
-<P>
-For SVG output, we just pass the raw UTF-8 (or other encoding)
-straight through to the generated code.
-<P>
-Non-ASCII characters probably won't ever work in Grappa
-or dotty, which have their own back end rendering. 
-(Though, Java supports UTF-8, so there's a chance
-Grappa also handles raw UTF-8 strings.)
-<P>
-As you can see, this is a sad state of affairs.
-Our plan is to eventually migrate Graphviz to the
-<A HREF="http://www.pango.org/">pango</A> text formatting
-library, to ameliorate the worst of these complications.
-<P>
-<A name = Q11>
-<B>Q. How do I get font and color changes in record labels or other labels?</B>
-</A>
-<P>
-This is not possible in record shapes. However, you can do this using
-<A HREF="info/shapes.html#html">
-HTML-like labels</A>. The granularity of changes is still at the cell level,
-but by playing with cell spacing and padding, you can get pretty much
-the effect you want. The intention is to support arbitrary font changes
-within running text in the not-too-distant future.
-<P>
-<B><A name=Q12 HREF=#Q12>
-Q12</A>. In plain format, splines do not touch the nodes (arrowheads are missing).</B>
-
-<P>
-Edges are specified as the main spline and, if necessary, arrowheads
-which actually abut the node. If the arrowheads are not given, drawing
-the edge spline will leave a gap between the edge and the node.
-This is a bug which has now solidified into a feature. 
-A workaround is to set
-       
-<pre>
-      edge [dir=none]
-</pre>
-Since the edges have no arrowheads, the spline specification will go
-all the way to both nodes. 
-<P>
-<B><A name=Q13 HREF=#Q13>
-Q13</A>. Record nodes are drawn differently in dot and neato when rankdir=LR.</B>
-
-<P>
-It's true.  dot -Grankdir=LR rotates record nodes so that their top level
-fields are still listed across levels.  rankdir=LR has no effect in neato.
-One workaround is
-<A HREF="info/shapes.html#html">
-HTML-like records</A> (they don't rotate; the downside is that
-you have to write in XML). Another workaround is to enclose
-record labels in { } to rotate/unrotate the record contents. See also,
-<A HREF="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnhfact/html/hfactor8_5.asp">How To Avoid Foolish Consistency</A>
-by Scott Berkun (Microsoft Corp.)
-<P>
-<B><A name=Q14 HREF=#Q14>
-Q14</A>. How can I print a big graph on multiple pages?</B>
-
-<P>
-The <tt>page</tt> attribute, if set, tells Graphviz to print the
-graph as an array of pages of the given size. Thus, the graph
-<pre>
-digraph G {
-  page="8.5,11";
-  ...
-}
-</pre>
-will be emitted as 8.5 by 11 inch pages. When printed, the
-pages can be tiled to make a drawing of the entire graph.
-At present, the feature only works with PostScript output.
-<P>
-Alternatively, there are various tools and viewers which will take
-a large picture and allow you to extract page-size pieces, which can
-then be printed.
-<P>
-<A name=Q15>
-<B>Q. When I have a red edge it shows up as a
-solid red in PNG and GIF formats, but has a
-black border when rendered to JPEG.  </B>
-</A>
-<P>
-This is an artifact of JPEG's lossy
-compression algorithm.  JPEG isn't very good
-for line drawings.  PNG is bitmap format of
-choice.  John Ellson wants to deprecate and
-eventually remove the JPEG driver, but North
-is reluctant to change anything that people
-might already rely on.
-<P>
-<B><A name=Q16 HREF=#Q16>
-Q16</A>. How can I get custom shapes or images in my graph?</B>
-<P>
-Please see the
-<A HREF="http://www.graphviz.org/Documentation/html/shapehowto.html">
-Shape HowTo</A> for some approaches.  There is no easy way to create
-custom shapes that work with dot/neato, dotty
-(Unix or MS-Windows) and Grappa (the Java
-front end), because they don't share any universal back end structure.
-We're thinking about it.
-<P>
-<B><A name=Q16b HREF=#Q16b>
-Q16b</A>. Why don't my custom GIF images appears? What is the meaning of <tt>Warning: No loadimage plugin for "gif:cairo"</tt>?</B>
-<P>
-Prior to graphviz-2.25.20090911* the 
-cairo based renderers couldn't import GIF or JPG. Workarounds, use PNG images. (Possibly, install 
-Imagemagick and run "convert shape.gif shape.png". Or try <tt>-Tgif:gd</tt>.)
-<P>
-<A name=Q17 HREF=#Q17>
-<B>Q17. Sometimes in dotty, right mouse click shows the global menu
-but none of the items can be selected.</B>
-</A>
-<P>
-Check that the NUMLOCK key is off.  It's a
-<A HREF="http://www.research.att.com/~erg/graphviz/bugs/b524.html">
-known bug</A>.
-<P>
-<B><A name=Q18 HREF=#Q18>
-Q18</A>. Why does dotty report a syntax error on a legal dot file?</B>
-
-<P>
-Typically this error is reported as:
-<pre>
-&gt;&gt; graph parser: syntax error near line 14
-&gt;&gt; context:  &gt;&gt;&gt;  &lt;&lt;&lt; digraph G {
-&gt;&gt; dotty.lefty: giving up on dot
-&gt;&gt; dotty.lefty: graph that causes dot
-&gt;&gt; dotty.lefty: to fail has been saved in file dottybug.gv
-</pre>
-Probably there is a command in your shell environment (such as
-.alias or .profile) that does output even for non-interactive shells.
-When this occurs, those characters go in the pipe to the dot parser
-and cause this problem.  An easy check is whether other users have
-the same problem.
-<P>
-<A name=Q20>
-<B>Q. How can I get some display feature (such
-as bold lines) in dotty?</B>
-</A>
-<P>
-<A NAME="dotty_note">Dotty</A> has not really changed for many years. Therefore, there are
-myriad features available in Graphviz which it cannot handle.
-In some cases, you can use 
-<A HREF="http://www.research.att.com/~john/Grappa/">Grappa</A> 
-or <A HREF="http://www.graphviz.org/webdot/">webdot</A> 
-for display instead of dotty.  
-For example, Grappa has generalized polygons 
-(<tt>node [shape=polygon]</tt>) that dotty lacks.
-There are additional interactive viewers available. For example, see
-<A HREF="https://www.graphviz.org/resources/">Graphical Interfaces</A>
-and <A HREF="https://www.graphviz.org/about/">Viewers</A>. If you
-are using Mac OS X, the <A HREF="http://www.pixelglow.com/graphviz/">Mac
-version</A> of Graphviz has a highly recommended GUI.
-<P>
-If the display attribute that you need isn't there already, in dotty,
-there's probably no easy way to do it except by rolling up
-your sleeves and hacking the dotty code (a lefty script) that
-interprets and renders graphical attributes.  This is problematic
-for the same reason as above: there's no universal low-level driver
-layer shared across all the Graphviz tools.  We recently added an
-intermediate rendering language to the layout tools, but the
-various front ends don't use it yet.  This would be a good project
-for someone who wants to get involved here (along with porting
-dotty to GTK.)
-<P>
-<A name=Q21>
-<B>Q. How can I get rid of the little circles on
-edges ("edge handles") in dotty?</B>
-</A>
-<P> 
-Edit the file dotty.lefty and change the
-line that says: 'edgehandles' = 1; to 'edgehandles' = 0;
-it's around line 110.
-<P>
-<A name=Q22>
-<B>Q. I already have all the coordinates for the
-nodes and edges of my graph and just want to
-use dot, neato, or dotty to render it.  How?</B>
-</A>
-<P>
-Put the graph with layout attributes into a dot
-file. 
-
-Then run <tt>neato -s -n2</tt>. For example:
-<pre>
-neato -s -n2 -Tgif file.gv -o file.gif
-</pre>
-Note that if an edge does not have a <TT>pos</TT> attribute
-defined, neato will perform whatever edge routing it would
-normally do. All of the usual backend attributes (<TT>size</TT>,
-<TT>overlap</TT>, <TT>page</TT>, etc.) are available.
-<P>
-<A name=Q23>
-<B>Q. I already have all the coordinates for the
-nodes, and I want dot or neato to route the edges.</B>
-</A>
-<P>
-It's not really too convenient to use dot for this.
-It is possible to use neato for this,
-running neato -s -n For example:
-<pre>
-neato -s -n -Tgif file.gv -o file.gif
-</pre>
-neato will use the node positions, but use its technique
-for routing the edges. There are several things to note. First,
-the neato edge router is different from dot's. Without the built-in
-top-down bias, it doesn't do as good a job of avoiding edge overlaps
-and, at present, it doesn't handle spline multi-edges at all. Second, by
-default, neato uses straight lines as edges. To get spline routing,
-you have to specify -Gsplines=true. And this will only work if none of
-the nodes overlap. Since the input graph supplies fixed node positions,
-it is the user's task to insure this.
-<P>
-<A name=Q24>
-<B>Q. I already have all the coordinates for the
-nodes and edges of my graph and just want to
-use dotty to render it.  How?</B>
-</A>
-<P>
-Just run dotty on it. Dotty will use the given pos attributes.
-<P>
-<B><A name=Q25 HREF=#Q25>
-Q25</A>. Same as above, but I have only node coords, not edges.</B>
-
-<P>
-<tt>neato -n</tt> is some help, but neato doesn't handle
-spline-based parallel edges. 
-<P>
-<B><A name=Q26 HREF=#Q26>
-Q26</A>. How can I make client-side image maps?</B>
-
-<P>
-Use the -Tcmap command line option (only version 1.8.9 and beyond!)
-<P>
-<B><A name=Q27 HREF=#Q27>
-Q27</A>. Why aren't my server-side maps being recognized? I've checked the HTML!</B>
-
-<P>
-Make sure that your server has map files enabled. For example, if running
-apache, check that httpd.conf has a line like the following:
-<pre>
-AddHandler imap-file map
-</pre>
-and that it is not commented out!
-<P>
-<B><A name=Q28>
-Q. I've installed Debian Graphviz and it works just fine on the command line,
-but when I execute a Perl/CGI script through Apache, no output is generated.</A>
-For example, the code
-<tt>
-system("/usr/local/bin/dot -Tpng /tmp/tree.gv -o /tmp/tree.png");
-</tt>
-produces no file <tt>/tmp/tree.png</tt>.</B>
-<P>
-As best as we can tell, dot dies with no stdout or stderr messages on Debian 
-systems when run from an Apache cgi program
-with no HOME set. The workaround is to provide a HOME directory in the 
-Apache userid's environment.
-<P>
-Someone has also suggested using the 
-<A HREF="http://search.cpan.org/search?query=graphviz&amp;mode=all">
-Perl module for Graphviz</A>.
-<P>
-<B><A name=Q29 HREF=#Q29>
-Q29</A>. How can I get 3D output?</B>
-
-<P>
-The Graphviz authors have qualms about the gratuitous use of 3D.
-<p>
-Nonetheless, dot -Tvrml generates VRML files.  There's no Z coordinate
-layout - you specify Z coords yourself in the <tt>z</tt> attribute of nodes,
-and the Z coordinates of edges are interpolated.   If someone
-contributes a driver for a newer, more useful format (OpenGL Performer
-scene graphs? Open Scene Graphs? Java3D programs?) we'd like to try it.
-<p>
-neato internally supports layouts in higher dimensions through the <tt>dim</tt>
-attribute, e.g. <tt>neato -Gdim=7</tt> but there's no way to get the output
-unless you invoke neato as a library and inspect ND_pos(n)[i]
-where n is a pointer to the relevant node.
-This would need some (minor) driver work and a good 7-dimensional viewer. Well,
-<tt>dim=3</tt> ought to be possible.
-
-<H2>Problems</H2>
-<B><A name=Q30 HREF=#Q30>
-Q30</A>. How can I avoid node overlaps in neato?</B>
-
-<P>
-Use the graph attribute <A HREF="info/attrs.html#d:overlap"><tt>overlap</tt></A>.
-<P>
-<B><A name=Q31 HREF=#Q31>
-Q31</A>. How can I avoid node-edge overlaps in neato?</B>
-
-<P>
-Use the <tt>overlap</tt> attribute to leave room among the nodes, then
-use <tt>-Gsplines=true</tt>.
-<pre>
-neato -Goverlap=... -Gsplines=true -Gsep=.1
-</pre>
-<P>
-The <tt>sep</tt> argument is the node-edge separation as
-a ratio of a node's bounding box. That is, <tt>sep=.1</tt> means
-each node is treated as though it is 1.1 times larger than it is.
-The actual value may require some tinkering.
-(Don't ask why this isn't just a constant!)  Note that this option really
-slows down neato, so should be used sparingly and only
-with modest-sized graphs.
-<P>
-<B><A name=Q32 HREF=#Q32>
-Q32</A>. Neato runs forever on a certain example.</B>
-
-<P>
-First, how big is your graph? Neato is a quadratic algorithm, roughly
-equivalent to statistical multidimensional scaling. If you
-feed it a graph with thousands of nodes and edges, it can easily take
-hours or days. The first thing to check is to run <tt>neato -v</tt> to
-get a trace of the output. If the numbers you see are generally
-getting smaller, the layout is just taking a long time. You can set
-certain parameters, such as <tt>epsilon</tt> or <tt>maxiter</tt> to
-shorten the layout time, at the expense of layout quality. But if your
-graph is big, who's going to notice?
-<P>
-If you see
-the numbers repeating, or fluctuating up and down, then neato is
-cycling, especially if your graph is small.
-This should never happen by default for versions later than 1.13. If it
-does, please report it as a bug.
-<P>
-If you are using an earlier version of neato, or you used <tt>mode=KK</tt>,
-cycling is indeed possible. This cycling is very sensitive to the
-initial layout. By using the <tt>start</tt> attribute, for example,
-<pre>
-neato -Gstart=3
-neato -Gstart=rand
-</pre>
-the cycling will most likely disappear. Or you can employ the parameters used
-for large graphs to stop the layout earlier:
-<pre>
-neato -Gepsilon=.01
-neato -Gmaxiter=500
-</pre>
-<P>
-Note that, if you have a large graph, the generation of edges as splines
-is a cubic algorithm, so you would do well to avoid using <tt>splines=true</tt>.
-(This comment applies to circo, fdp and twopi as well.)
-<P>
-<B><A name=Q33 HREF=#Q33>
-Q33</A>. Edge label placement in neato is bad.</b>
-
-<p>
-Difficult problem.  We're working on it.
-If anyone has some general
-label placement code (e.g. a simulated annealer based on the Marks et al.
-technique in <I>Graphics Gems IV</I>), please get in touch.
-<P>
-<B><A name=Q34 HREF=#Q34>
-Q34</A>. Dot runs forever on a certain example.</B>
-
-<p>
-Try dot -v to observe its progress.
-<p>
-Note that it's possible to make graphs whose layout or even parsing
-is quadratic in the input size. For example, in dot, 
-
-<pre>
-digraph G {
-    a -&gt; b -&gt; c -&gt; .... -&gt; x -&gt; y -&gt; z
-    a -&gt; z
-    b -&gt; z
-    c -&gt; z
-    /* and so on... */
-       x -&gt; z
-}
-</pre>
-
-The total edge length (therefore the layout time) of
-this as a ranked graph is quadratic in the number of nodes.
-
-
-You probably won't encounter the following, but it is also possible
-to construct graphs whose parsing takes quadratic time in the number
-of attributes, by appending attributes to nodes and edges after the 
-graph has been loaded. For example:
-
-<pre>
-digraph G {
-    /* really big graph goes here...with N+1 nodes */
-    n0 -&gt; n1 -&gt; ... -&gt; nN;
-
-    n0 [attr0="whatever",
-        attr1="something else",
-    /* and so on with many more attributes */
-        attrM="something again"]
-}
-</pre>
-When an attribute first appears, each object is visited with possible cost
-proportional to the number of previously declared attributes. Thus,
-the running time for the above would be <I>cN</I> O(<I>M</I>)
-for some constant <I>c</I>. If there is any concern about this, the
-graph should specify the attributes first before declaring nodes or
-edges. In practice, this problem is negligible.
-<P>
-<A name=Q34a>
-<B>Q. Twopi runs forever on a certain example.</B>
-</A>
-<p>
-Is your graph is large (many thousands of edges),
-and did you set <pre>splines=true</pre>?  It takes
-a lot of cycles to fit all those splines!
-<p>
-<A name=Q35>
-<B>Q. Neato has unnecessary edge crossings, or has missed an
-obvious chance to make a much nicer layout.</B>
-</A>
-<P>
-Neato and all similar virtual physical model algorithms rely
-on heuristic solutions of optimization problems. The better
-the solution, the longer it takes to find. Unfortunately, it
-is also possible for these heuristics to get stuck in local
-minima. Also, it is heavily influenced by the initial position
-of the nodes. It is quite possible that if you run neato again,
-but with a different random seed value,
-or more iterations, you'll get a better layout.  For example:
-<pre>
-neato -Gstart=5 file.gv -Tps -o file.ps
-neato -Gepsilon=.0000001 file.gv -Tps -o file.ps
-</pre>
-<P>
-In particular, note that there are no guarantees that neato will produce
-a planar layout of a planar graph, or expose all or most of a graph's
-symmetries.
-<P>
-<B><A name=Q36 HREF=#Q36>
-Q36</A>. Webdot doesn't work.</B>
-
-<P>
-We assume you're using Apache and have <A HREF="http://www.tcl.tk/">TCL</A> installed.
-If you don't, it's probably better to just use the
-<A HREF="http://www.graphviz.org/Misc/webdot.pl">
-webdot perl script</A>.
-<P>
-To debug webdot, first test whether <tt>tclsh</tt> can load the
-Tcldot shared library.  Try:
-<pre>
-$ tclsh
-% load <b>$prefix</b>/lib/graphviz/libtcldot.so.0
-%
-</pre>
-where <b>$prefix</b> is the installation prefix for graphviz; usually /usr
-or /usr/local.
-<p>
-Then test whether webdot runs from a shell command.  (With webdot we provide
-a helper script scaffold.tcl or scaffold.sh that sets up an environment
-like the one Apache provides.)  For example
-<pre>
-$ scaffold.tcl >out.gif
-can't read "LIBTCLDOT": no such variable
-    while executing
-"file mtime $LIBTCLDOT"
-    invoked from within
-"set t1 [file mtime $LIBTCLDOT]"
-    (file "cgi-bin/webdot" line 67)
-    invoked from within
-"source cgi-bin/webdot
-"
-    (file "scaffold.tcl" line 22)
-</pre>
-The above is a strong clue that webdot is not configured properly. 
-<P>
-Finally, test whether webdot runs as a cgi-bin program.
-It may help to examine the cgi-bin environment using a
-simple cgi-bin tcl script like:
-<pre>
-       #!/bin/env tclsh
-       puts "Content-type: text/plain"
-       puts ""
-       foreach e [lsort [array names env]] {puts "$e: $env($e)"}
-</pre>
-Save this script as .../cgi-bin/test.tcl, make it executable, then
-look at: <a href="http://localhost/cgi-bin/test.tcl">http://localhost/cgi-bin/test.tcl</a>
-<P>
-Also, if you see something like:
-<pre>
-WebDot Error:
-
-Response Code = 403
-</pre>
-This usually means that webdot ran successfully, but was not able
-to fetch the remote graph from the URL you gave as an argument.
-The reason is probably that your server is behind a firewall that
-blocks the webdot server, so it cannot get the graph file.
-You can either change firewall permissions, put the graph on a
-different server, or install webdot locally so you don't need a
-remote server to fetch your graph data.
-<P>
-It would be nice if someone hacked webdot to take the contents
-of a graph as a cgi-bin argument, so it wouldn't need
-permission to fetch a graph remotely.
-This is left as an exercise for the Open Source Community.
-<P>
-<B><A name=Q37 HREF=#Q37>
-Q37</A>. I have "Font not found" errors, or text labels missing in webdot.</B>
-
-<P>
-Firstly, recent versions of graphviz will use fontconfig if it is available
-on your platform.  With fontconfig, this error should not occur, so you
-may want to see if an upgrade to graphviz is available, or if a rebuild
-will add fontconfig support.
-<p>
-If fontconfig is not available then graphviz tries to resolve fontnames
-to fontpaths itself, and uses DOTFONTPATH (or GDFONTPATH) to indicate where it should look.
-<p>
-For copyright reasons, Graphviz doesn't come with its own fonts.
-On a Windows machine, it knows to search in <tt>C:\Windows\Fonts</tt>.
-On a Unix machine, you need to set up a directory that contains
-Truetype fonts. You can get a copy of some fonts
-<A HREF="http://www.graphviz.org/pub/graphviz/webfonts-1.0-5.noarch.rpm">here</A>.
-<P>
-The default DOTFONTPATH is:
-<pre>
-#define DEFAULT_FONTPATH "/usr/X11R6/lib/X11/fonts/TrueType:/usr/X11R6/lib/X11/fonts/truetype:/usr/X11R6/lib/X11/fonts/TTF:/usr/share/fonts/TrueType:/usr/share/fonts/truetype:/usr/openwin/lib/X11/fonts/TrueType:/usr/X11R6/lib/X11/fonts/Type1"
-</pre>
-If your fonts are somewhere else, then you must set that directory in
-the webdot script, or recompile Graphviz with the correct DEFAULT_FONTPATH
-(or set <tt>fontpath="/your/font/directory"</tt> in every graph you lay out,
-but that's pretty clumsy.)
-<P>
-<B><A name=Q38 HREF=#Q38>
-Q38</A>. My browser doesn't recognize SVG.</B>
-
-<P>
-The correct MIME type for svg images is: <tt>image/svg+xml</tt>   (note "+" not "-").
-<P>
-SVG is not built into all browsers; you can get
-<A HREF="http://www.adobe.com/svg/viewer/install/main.html">plugins</A>
-from Adobe for Windows, Linux and some other operating systems.
-<A HREF="http://www.mozilla.com/firefox/">
-Firefox 1.5</A> has a <A href="http://developer.mozilla.org/en/docs/SVG_in_Firefox_1.5">large subset of SVG</A> and renders graphviz -Tsvg output
-though until graphviz 2.8, the fonts may be too large (thanks for
-Phil Colbourne at the RailCorp of New South Wales for this advice).
-<P>
-For help with embedding SVG in HTML pages, see 
-<A HREF="http://www.graphviz.org/webdot/svgembed.html">here</A>.
-<P>
-There are several good standalone viewers and editors for SVG.
-We like <A HREF="http://www.inkscape.org">inkscape</A>.
-<A HREF="http://www.gnome.org/projects/evince/">evince</A>
-is the standard Gnome document viewer that handles SVG, at least
-since version 0.5 (though Phil C. reports output is blurred)
-(see also <A HREF="">eog</A> (Eye of Gnome)).
-Commercial tools like Adobe Illustrator and Microsoft Visio
-can import SVG (the better to deal with your content, my dear!)
-If you are using an older (less bloated) Unix system, you
-may find tools like <A HREF="http://xml.apache.org/batik/">Batik</A>
-(an SVG renderer in Java) or <A HREF="http://www.sodipodi.com">sodipodi</A>
-useful, though it seems they are no longer very actively maintained.
-sodipodi is faster but both make sharp images - isn't that the
-beauty of path-based graphics?
-<P>
-<A name=Q39>
-<B>Q39. libexpat is reported as containing a virus or as a security hole.
-Is this a real problem?</B>
-</A>
-<P>
-No, this is a false positive reported by various security software.
-See <A HREF="http://www.pcreview.co.uk/forums/thread-1689630.php">http://www.pcreview.co.uk/forums/thread-1689630.php</A> or
-<A HREF="http://spywareblog.com/index.php/2004/11/24/is_libexpat_dll_spyware">http://spywareblog.com/index.php/2004/11/24/is_libexpat_dll_spyware</A>.
-<P>
-<B><A name=Q40 HREF=#Q40>
-Q40</A>. What is the coordinate transformation between the graph bb and a .png image?</B>
-<OL>
-<LI>
-The bb is expanded by 4 graph-units in all directions (pad) to allow for finite line widths.
-<LI>
-Then it is zoomed and/or rotated according to -Gviewport, -Gsize, -Glandscape, -Gorientation options.
-At the default scaling of 1:1, one graph unit = 1 point (1/72 inch).
-<LI>
-Then it is paginated, if requested by -Gpage and if the output format supports it.  Not the -Tpng renderer, yet.
-<LI>
-Then a margin is added, -Gmargin, in absolute units (inches).
-The top/bottom margin can be set independently of the left/right margin.
-<LI>
-Then it is converted to device units, according to -Gdpi,
-or a dpi value that is given by the output device,
-or a default that is provided by each render.
-There are separate dpi values for x and y to allow for non-square pixels.
-Some renderers invert the Y axis and need an offset to place the
-origin in the top left corner.
-The default dpi for -Tpng is 96dpi (approximating the resolution
-of most computer monitors) so this is where the scaling by 96/72 (4/3)
-comes from.
-</OL>
-<P>
-At the renderer api, plugins have a choice of coordinate representation:
-<UL>
-<LI>
-coordinates in graph-units, and composite transformation data consisting
-of: scaling, rotation, and translation.  (used by svg, cairo, ps, renderers)
-<LI>
-coordinates pre-transformed into device units. 
-</UL>
-<P>
-<B><A name=Q41 HREF=#Q41>
-Q41</A>. File associations are broken in Mac OSX.  Clicking on a <tt>dot</tt> file doesn't open Graphviz.</B>
-<p>
-The immediate fix is to rebuild the Launch Services database like this:
-<p>
-1.     Trash all other versions of Graphviz.app on your system, except for the just installed one. You can use either of these command lines to find it:
-<p>
-<pre>locate Graphviz.app</pre>
-<p>
-or
-<p>
-<pre>find / -name "Graphviz.app"</pre>
-<p>
-2.     Run the following command line:
-<p>
-<pre>/System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/LaunchServices.framework/Versions/A/Support/lsregister -kill -r / </pre>
-<p>
-or
-<p>
-<pre>/System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/LaunchServices.framework/Versions/A/Support/lsregister -kill -r /Applications</pre>
-<p>
-which deletes the Launch Services database and rebuilds it from existing apps. You may need to sudo to do this.
-<p>
-3.     Verify that the Graphviz.app can now open .gv files and Microsoft Word can still open its own .gv files.
-<p>
-One artifact of this will be that Microsoft .gv files may appear with the Graphviz document icon. Unfortunately there doesn't seem any a priori way of getting the system to determine whether an arbitrary .gv file belongs to Word or Graphviz -- you can choose which application to open with by right-clicking or control-clicking on the document icon and choosing the app.
-<p>
-As for why the Launch Services database doesn't automatically register Graphviz,
-we're not entirely sure but suspect this only happens if both conditions
-hold true:
-<p>
-A.     The user had installed Microsoft Word.<br>
-B.     There is also another version of Graphviz.app present in the system. (Possibly the previous version 1.13 released by Pixelglow Software)<br>
-<B><A name=Q42 HREF=#Q42>Q41</A>. What do all these plugin libraries do?</B>
-<p>
-<ul>
-       <li><b>lasi</b> - Adds support for UTF8 characters, beyond ASCII, in postScript output. This table provides a feture comparison of the various PosScript renderers:
-       <table>
-               <tr>
-                       <th></th>
-                       <th>UTF8</th>
-                       <th>hyperlinks</th>
-                       <th>human readable PostScript</th>
-               </tr>
-               <tr>
-                       <th>-Tps:core</th><td>no</td><td>yes</td><td>++</td>
-               </tr>
-               <tr>
-                       <th>-Tps:lasi</th><td>yes</td><td>yes</td><td>+</td>
-               </tr>
-               <tr>
-                       <th>-Tps:cairo</th><td>yes</td><td>no</td><td>--</td>
-               </tr>
-       </table>
-       <li><b>gs</b> - Provides support for usershapes in PostScript that can be embedded in all output formats.  It interprets the format and renders to a cairo surface.  Requires a recent version of ghostscript.  (Not needed for PostScript in PostScript) 
-       <li><b>rsvg</b> - Provides support for usershapes in SVG that can be embedded in all output formats.  It interprets the format and renders to a cairo surface.  (Not needed for SVG in SVG)
-       <li><b>glitz</b> - OpenGL output.   But this may not be the right way to dot it, and my glitz plugin is unfinished.  Not useful at this time.
-       <li><b>ming</b> - Flash output.  Was sort of working at one point, not now.  Needs development.  Might be interesting opportunities for a dynamic graph output.  Not useful at this time.
-</ul>
-
-
-</BODY>
-</HTML>
+<meta http-equiv="refresh" content="2;url=https://graphviz.org/faq/" />
+Moved to <a href="https://graphviz.org/faq/">https://graphviz.org/faq/</a>. Redirecting...
index 1584d247a02c185a2ff98ddd8f6d1bcf435a7581..9e3ff6922b6d4b2c0fa63eb6d00d2f3fa9a38d8f 100644 (file)
@@ -1,296 +1,2 @@
-<html>
-<head>
-<title>Graphviz build notes</title>
-</head>
-<body bgcolor=#ffffff>
-<h1>graphviz build notes</h1>
-<h2>External packages</h2>
-The full build requires external libraries that you must
-obtain elsewhere.  Most, if not all of these are optional,
-and configure will build graphviz with reduced functionality
-if an external library is not found.  Newer versions of these
-libraries should be fine - if not, please let us know.
-<p>
-A list of these external libraries can be found on the Graphviz
-<A HREF="https://www.graphviz.org/download/source/">source download page</A>.
-<h3>Notes:</h3>
-<ul>
-<li>GD (generic raster graphics driver for PNG, GIF, JPEG)<br>
-Graphviz contains a copy of libgd, but we hope to
-remove it eventually so the external library is preferred.
-<li>ZLIB (raster image compression)<br>
-NB: Use "./configure -s" to build shared libraries. (See notes in zlib-1.2.3/Makefile)
-</ul>
-<P>
-These libraries (either static or dynamic) and their
-interface header files must already be on your system.
-It's OK if you install your own copies of these packages,
-though you may need to tell make or configure where to find them.
-Run "configure --help" for details.
-<P>
-On most Linux distributions these packages are already installed
-or installable from packages included in the distribution.
-You might need to install some -devel packages to get the include
-header files.
-Also, some of these packages require other packages, so for sanity,
-you should use some automated install mechanism such as rpms or macports,
-or look for complete packages.
-                                                                                
-<h2>Abbreviated Build Instructions</h2>
-
-<p>The recommended method for building graphviz from a downloaded
-source package is the usual:
-<pre>
-
-       ./configure
-       make
-       make install
-</pre>
-<p>If you are building from Git sources, then you must have
-recent versions of "libtool", "automake", and "autoconf".
-Build with:
-<pre>
-
-       ./autogen.sh
-       ./configure
-       make
-       make install
-</pre>
-
-<p>If you are not building with GNU tools, then there are some
-tried-and-true old-style Makefiles that can be used instead.
-Details below.
-
-<h2>Detailed Build Instructions</h2>
-
-<p>
-The preferred image renderer is cairo, with support from pango
-for fonts. This handles various bitmap formats as well as svg,
-pdf and PostScript.
-<p>
-The generic raster driver is <tt>gd</tt> and it can be configured to
-generate GIF (no compression), PNG (lossless compression), JPEG
-(lossy compression), and wireless bitmap (WBMP) files.
-The compressors all need <tt>zlib</tt>.  In the current build, we
-use a top-level config.h file that defines various symbols, such as:
-<P>
-       HAVE_JPEG<br>
-       HAVE_PNG<br>
-<P>
-This file is typically generated by configure based on how you
-invoke it and what it finds on your system.
-If you don't enable the <tt>gd</tt> based drivers, graphviz will
-still have the <tt>printf</tt> style drivers for PostScript and SVG.
-(However, even these benefit from better text size estimation via
-Freetype, when it is available.)
-<P>
-<h2>Build tools for Unix</h2>
-You have several choices.
-<P>
-1. (Recommended - requires gmake) Use configure generated by GNU autoconf.
-This comes with the source packages.
-This often works well on a vanilla Linux distribution with
-Tcl/Tk, freetype-devel and libjpeg already installed by root
-under /usr.  It works OK with other versions of Unix, but
-some adjusting of command line arguments
-to <tt>configure</tt> may be needed.
-For Linux you can also just pick up the source tarball
-or RPMs <A HREF="https://www.graphviz.org/download/">here</A>.
-<P>
-First, if you are using sources from Git, run "./autogen.sh"
-to generate the "configure" script.  If you are using sources
-from graphviz-&lt;version&gt;.tar.gz this autogen.sh step should not be
-needed.
-<p>
-Next, run configure. For help on possible configure options, run:
-<br>
-<pre>
-./configure --help
-</pre>
-<p>
-For example, I use <br>
-<pre>
-./configure  --prefix=$HOME/arch/sgi.mips3 \
-       --with-freetypeincludedir=$HOME/arch/$ARCH/include/freetype2 \
-       --with-freetypelibdir=$HOME/arch/$ARCH/lib \
-       --with-tcl=/usr/common/tcl8.3.3 </pre>
-<P>
-Obviously you would change the pathnames to reflect your installation.
-<p>
-Note that the directory ${prefix}/include is automatically searched
-for headers, and ${prefix}/lib for libraries.
-<P>
-If you have problems with one or more of the optional script language bindings,
-they can be disabled with e.g. --disable-perl.
-<p>
-When configure is finished, it reports which optional packages were
-found and which Graphviz features are enabled. If some package or
-feature you expected is not shown as used, you may need to check
-the config.log file or configure.ac or configure files to see what
-went wrong. Usually, any problem can be resolved using environment
-variables or the command-line flags of configure.
-<p>
-Once configure has finished, complete the build with
-<pre>
-gmake
-gmake install
-</pre>
-2. To avoid the use of configure and gmake, the source package comes with
-a collection of simple non-GNU makefiles. As above, you need
-the external packages to be installed somewhere. Then
-<ul>
-<li>
-Run configure.old from the root graphviz directory.
-<li>
-Edit Config.mk for your architecture, tools, and installation directory.
-In particular, set the ARCH make variable.
-<li>
-If desired, check settings in makearch/$(ARCH).
-<li>
-Run make and make install.
-</ul>
-       
-<h2>Build tools for win32</h2>
-<p>See separate
-<A HREF="winbuild.html">
-build notes</A> for Microsoft Windows.
-<p>
-With some persistence you can likely get Graphviz to build on
-<A HREF="http://www.research.att.com/sw/tools/uwin">UWIN</A>
-or <A HREF="http://www.cygwin.com/">Cygwin</A> installed on
-Microsoft Windows.  You will still need various third-party packages
-to enable all the Graphviz drivers.
-
-<h2>Unix platform-specific build notes</h2>
-<h2>AIX</h2>
-Matt Fago tells us that "--enable-shared=no" is required or the
-executables segfault after seemingly correct compiles.  (Bug #421)
-<h2>SGI</h2>
-The default Irix libjpeg is obsolescent.  We need at least
-version 62.  It wasn't at all clear to me where to get sources for
-this - eventually I found the source for v61 and patches for v62
-using a search engine.  We may eventually remove JPEG support
-(lossy compression seems good for photos, not technical diagrams)
-so if you can't get this to work, the loss of -Tjpeg is no big deal.
-<P>
-
-We found that on some platforms (Solaris?)
-gd/dotneato and freetype MUST be compiled with the 
-same C compiler (e.g. gcc, or the native cc).
-Otherwise there are are weird stack argument errors in
-the call to TT_Open_Face.  I don't have time to try
-to figure out what's wrong.
-
-<h2>Solaris</h2>
-Put /usr/ccs/bin in PATH
-
-<h2>HP-UX</h2>
-The X11 package must include /usr/contrib/X11R6
-as well as the base stuff.  For some reason GNU autoconf doesn't seem to find
-X11 in this location so you may need to add the following to the
-./configure line:
-<pre>
---with-Xawincludedir=/usr/contrib/X11R6/include --with-Xawlibdir=/usr/contrib/X11R6/lib
-</pre>
-
-<h2>Apple Mac OS/X</h2>
-<P>
-Currently, Glen Low provides a full-featured
-<A HREF="https://www.graphviz.org/download/#mac">
-port of Graphviz</A>.
-Also, Ryan Schmidt maintains versions of Graphviz for macports.
-<P>
-We recommend using macports to install the desired third-party
-libraries. Once these have been installed, 
-the standard build using configure and make works fine. The only caveat
-is that sometimes, an incompatible, non-GNU tool is picked up 
-rather than the needed GNU version. 
-<P>
-Compiling Smyrna for OS X, Snow Leopard (Amanda Stent)
-<p>
-<b>Xcode</b>:<br>
-First if you updated from Leopard you have to reinstall developer tools.  No getting around it, I tried, you just have to do it.
-<p>
-<b>Macports</b>:<br>
-Then you have to uninstall and clean up the Macports ports, all of them.  Take the opportunity to reinstall Macports itself.  There are migration instructions on the web, but it's a little hairier than they make it out to be because some of the links (e.g. hs-ports) will not be there and you will have to get over those hurdles manually.
-<p>
-Briefly, to do a clean install of macports do:
-<pre>
-sudo port -f uninstall installed
-sudo port clean --work --archive all
-and then new macports
-and then sudo port install the things you need now
-and possibly sudo port selfupdate and sudo port upgrade outdated at the end
-</pre>
-
-Then you have to install all the tools needed for Smyrna, glut, glade, etc., and all their dependencies.  This takes days.
-<P>
-Now macports doesn't do glut separately.  It's sneaky because if you say install glut, something will happen, but actually glut now comes with mesa.  This will mess up your head. (The real meat of glut is part of the mesa package - ed.)
-<P>
-<b>Graphviz</b>:<br>
-Then you get your graphviz and you configure with --with-smyrna.  I used the following:
-<pre>
-configure --with-smyrna --with-glutincludedir=/opt/local/var/macports/software/mesa/7.6.1_1+hw_render/opt/local/include --with-glutlibdir=/opt/local/var/macports/software/mesa/7.6.1_1+hw_render/opt/local/lib --prefix=/usr/local/share/graphviz
-</pre>
-
-(I use<br>
-<pre>
-configure --with-smyrna --with-glutincludedir=/opt/local/include  --with-glutlibdir=/opt/local/lib
-</pre>
- - ed.)
-<p>
-
-On the webs they say to use -framework commandline option to gcc; however I couldn't figure out how to make this work with the makefile and configure file for graphviz.
-<p>
-Now, I got to a certain point and it grumbled about permissions and refused to go any further.  So you may have to chmod in the source directory.
-<p>
-And I got to the point where it was building gv_perl.cpp and it refused to go any further.  I got around this eventually by changing the call to XS to XSPROTO, thus obviating the need for XSUB.h (what does it do for you?  nothing!).
-<p>
-And then it said it was done but when I went to run it it wouldn't start due to some missing template.dot so then you make clean, and make install again because by now you are confused as well.
-<p>
-And then it should work!
-<p>
-By the way making by sneakily cd'ing into the macosx folder and using the makefile labeled with your OS *does not work*.
-
-<h2>GNU style building</h2>
-
-<pre>
-<!--
-To produce graphviz-(ver).tar.gz from Git sources.
-
-       hg clone http://hg.research.att.com/graphviz
-       cd graphviz
-       ./autogen.sh
-       make dist
--->
-To produce graphviz-(ver).tar.gz from GIT sources using cogito.
-<!--
-       cg clone http://www.graphviz.org/pub/scm/graphviz2/.git
--->
-    cg clone https://gitlab.com/graphviz/graphviz.git
-       cd graphviz
-or to update from GIT
-       cd graphviz
-       cg update
-then
-       ./autogen.sh
-       make dist
-
-(Cogito &amp; GIT are available from http://www.kernel.org/pub/software/scm/
-or as binary packages in Fedora-Extras )
-
-To build source and binary rpms (results are left in /usr/src/redhat/ ):
-
-       rpm -ta graphviz-(ver).tar.gz
-
-To build locally:
-
-       zcat graphviz-(ver).tar.gz | tar xfvo -
-       cd graphviz-(ver)
-       ./configure
-       make
-       make install
-</pre>
-
-</body>
-</html>
+<meta http-equiv="refresh" content="2;url=https://graphviz.org/doc/build.html" />
+Moved to <a href="https://graphviz.org/doc/build.html">https://graphviz.org/doc/build.html</a>. Redirecting...
index 38382c974a3f84d5bc9be760bf6dfdf5e0d213bf..1a4ff2cfcf6e905d0873606b28e72aea7c0dae02 100644 (file)
@@ -1,12 +1,2 @@
-<html>
-<head>
-<title>Character Set Reference</title>
-</head>
-<body bgcolor=white>
-<h1>Character Set Reference</h1>
-This reference is generated from: <a href="http://www.w3.org/TR/html4/sgml/entities.html ">http://www.w3.org/TR/html4/sgml/entities.html</a> using the <code>entities.tcl</code> demo program from the graphviz distribution.
-<p>
-An official version of this reference <a href="http://dev.w3.org/html5/spec/named-character-references.html#named-character-references">is available at the W3C site</a>.
-<img src="gdtclft.entities.example.png" alt="character glyphs">
-</body>
-</html>
+<meta http-equiv="refresh" content="2;url=https://graphviz.org/doc/char.html" />
+Moved to <a href="https://graphviz.org/doc/char.html">https://graphviz.org/doc/char.html</a>. Redirecting...
index 9e507849df5f1a2c8c5f976c7a4a6f72e352ea28..035c3c176fd17df7bc89d63558b08b53518c2ed2 100755 (executable)
@@ -1,113 +1,2 @@
-<html>
-<head>
-<title>Graphviz Wish List</title>
-</head>
-<body bgcolor=#f0f0f0>
-
-<center>
-<h1>Graphviz Wish List</h1>
-</center>
-<P>
-We list below various projects for the improvement of Graphviz. Some are simple feature additions.
-Others require significant coding and understanding of Graphviz internals, while others are open
-research problems. Consideration needs to be given to how a new feature interacts or combines with
-current features. Please <a href="mailto:gviz_rqst@graphviz.org">contact us</a> for more details.
-
-<hr align=left width=66>
-<ul>
-<li>
-Extend the allowed edge styles.
-<li>
-Allow arrowheads in the middle of edges.
-<li>
-Allow rotated text.
-<li>
-Allow text to align along an edge.
-<li>
-Support single, uniform font descriptors &#224; la pango.
-<li>
-Move generic code, such node adjustment and spline routing, out of neato.
-<li>
-Remove antiquated code and replace multiple algorithm implementations with a single one.
-<li>
-Allow prohibition of ports or sides.
-<li>
-Provide a general graph editor/browser for Graphviz, allowing novice users to rely on widgets
-to control attributes.
-<li>
-Combine the features of sfdp and fdp (e.g., clusters and fixed nodes).
-<li>
-Improve the mincross algorithm to better handle flat edges and edge weights.
-<li>
-Simplified mincross algorithm based on sifting, supporting clusters.
-<li>
-Implement swim lanes (nodes sharing x coordinate), possibly based on sifting.
-<li>
-Complete support for aspect ratios in dot. We currently have a simple algorithm, but it doesn't work with many other features.
-Support aspect ratios &lt; 1.
-<li>
-Allow maximum width contraints during layout.
-<li>
-Support orthogonal coalesced edges (e.g., <A HREF=http://upload.wikimedia.org/wikipedia/commons/7/74/Uml_diagram.svg>this</A>).
-<li>
-Extend Graphviz to handle compound graphs.
-<li>
-Provide simplified edge routing in dot using two dummy nodes.
-<li>
-Provide bundled edge routing in dot.
-<li>
-Allow user to provide levels, or levels plus ordering (no ranking or crossing minimization), and let dot finish
-<li>
-Allow edge routing with overlapping nodes.
-<li>
-Modify dot, twopi, etc. to allow incremental layouts.
-<li>
-Improve circo to allow tighter layouts and user control of clusters.
-<li>
-Fix current shape code to correctly handle non-convex shapes.
-<li>
-Provide a mechanism for users to define their own node shapes for nodes and edges.
-<li>
-Improve the routing of loops and, for dot, flat edges. Complete or replace the handling of flat edges between
-adjacent nodes.
-<li>
-Improve the flexibility and placement of exterior labels. For example, allow the user to specify the preferred label
-placement.
-<li>
-Add stack frames/local variables to gvpr.
-<li>
-Provide a collection of simple tree layouts.
-<li>
-Add new graph packing strategies.
-<li>
-Allow nodesep to be <A HREF="http://www.graphviz.org/mantisbt/view.php?id=2429">set within clusters</A>.
-<li>
-Allow ranksep to be an array of values in dot.
-<li>
-Allow mixed edge types within the same graph.
-<li>
-Allow varied rankdir values within clusters.
-<li>
-Allow varied layouts within clusters.
-<li>
-Improve the spline router, e.g., fewer inflection points.
-<li>
-Add an option of fast hierarchical layouts to dot.
-<li>
-Provide orthogonal layouts.
-<li>
-Add a new parallelogram shape where the angle is fixed for varying text.
-<li>
-Support rank=min/max within the context of a cluster.
-<li>
-Adjust graph to remove edge-node overlaps with line segment edges.
-<li>
-Re-implement tred (transitive reduction) to use a more efficient algorithm.
-<li>
-Write a replacement for smyrna/gvedit/dotty that provides a GUI interface for Graphviz. In addition
-to the usual functions for viewing, the program should provide widgets for the easy altering of graph
-attributes. There could also be an interface to the gvpr library, to create multiple views and modify a graph. Ideally,
-the system could allow the user to easily tailor the interactions.
-</ul>
-</body>
-</html>
+<meta http-equiv="refresh" content="2;url=https://graphviz.org/doc/todo.html" />
+Moved to <a href="https://graphviz.org/doc/todo.html">https://graphviz.org/doc/todo.html</a>. Redirecting...