]> granicus.if.org Git - graphviz/commitdiff
Add/update information about strict graphs, and directed vs. undirected graphs.
authorEmden R. Gansner <erg@alum.mit.edu>
Thu, 11 Dec 2014 16:54:21 +0000 (11:54 -0500)
committerEmden R. Gansner <erg@alum.mit.edu>
Thu, 11 Dec 2014 16:54:21 +0000 (11:54 -0500)
doc/dotguide.pdf
doc/dotguide/dotguide.tex
doc/info/lang.html
doc/infosrc/lang.2

index 5888584f4eb457092ca2c5b277a39a8e4cdc94c2..52ca1079236a784008ddb0c02c0530a1a1129d2a 100644 (file)
Binary files a/doc/dotguide.pdf and b/doc/dotguide.pdf differ
index 51c41196266818cac857307cfc61abdb017b95ca..6e66130dfcfe5e0ed696fb0cdcd09efa8c8d1e98 100644 (file)
@@ -8,7 +8,7 @@
 \def\dag{{\it dag}}
 \def\DOT{{\it DOT}}
 \def\graphviz{{\it Graphviz}}
-\newcommand{\lastedited}{November 2, 2010}
+\newcommand{\lastedited}{December 11, 2014}
 \date{\lastedited}
 \newcommand{\mymark}{{\it dot} User's Manual, \lastedited \hfil }
 \markboth{\mymark}{\mymark}
@@ -1243,8 +1243,13 @@ the verbose messages may give some estimate of \dot's progress.
 \section{Miscellaneous}
 
 In the top-level graph heading, a graph may be declared a
-{\tt strict digraph}.  This forbids the creation of self-arcs
-and multi-edges; they are ignored in the input file.
+{\tt strict digraph} or a {\tt strict graph}. This forbids the creation 
+of multi-edges, i.e., there can be at most one edge with a given tail
+node and head node in the directed case. For undirected graphs, 
+there can be at most one
+edge connected to the same two nodes. Subsequent edge statements using
+the same two nodes will identify the edge with the previously defined one
+and apply any attributes given in the edge statement.
 
 Nodes, edges and graphs may have a {\tt URL} attribute. In certain
 output formats ({\tt ps2}, {\tt imap}, {\tt cmapx}, or {\tt svg}), 
index 030be4975b0efb0a72a1def2e1fa5eb182816263..5bbf7282abecf49f888f0ee3409dca35306a08e9 100644 (file)
@@ -199,6 +199,33 @@ Note that, for good and bad, cluster subgraphs are not part of the
 DOT language, but solely a syntactic convention adhered to by
 certain of the layout engines.
 <H2>Lexical and Semantic Notes</H2>
+A graph must be specified as either a <B>digraph</B> or a <B>graph</B>.
+Semantically, this indicates whether or not there is a natural direction from
+one of the edge's nodes to the other. 
+Lexically, a digraph must specify an edge using the edge operator <TT>-></TT>
+while a undirected graph must use <TT>--</TT>.
+Operationally, the distinction is used to define different default rendering
+attributes. For example, edges in a digraph will be drawn, by default, with
+an arrowhead pointing to the head node. For ordinary graphs, edges are drawn
+without any arrowheads by default.
+<P>
+A graph may also be described as <B>strict</B>. 
+This forbids the creation of multi-edges, i.e., there can be at most one 
+edge with a given tail node and head node in the directed case. For undirected 
+graphs, there can be at most one
+edge connected to the same two nodes. Subsequent edge statements using
+the same two nodes will identify the edge with the previously defined one
+and apply any attributes given in the edge statement.
+For example, the graph
+<PRE>
+strict graph { 
+  a -- b
+  b -- a [color=blue]
+} 
+</PRE>
+will have a single edge connecting nodes <TT>a</TT> and <TT>b</TT>,
+whose color is blue.
+<P>
 If a default attribute is
 defined using a <B>node</B>,  <B>edge</B>, or  <B>graph</B> statement,
 or by an attribute assignment not attached to a node or edge, any object of the
index 1a2028c5f2c299426d04da610ec1fdde94982661..fd3a78681bf10092b286832ae9cb8ff079d51406 100644 (file)
@@ -90,6 +90,33 @@ Note that, for good and bad, cluster subgraphs are not part of the
 DOT language, but solely a syntactic convention adhered to by
 certain of the layout engines.
 <H2>Lexical and Semantic Notes</H2>
+A graph must be specified as either a <B>digraph</B> or a <B>graph</B>.
+Semantically, this indicates whether or not there is a natural direction from
+one of the edge's nodes to the other. 
+Lexically, a digraph must specify an edge using the edge operator <TT>-></TT>
+while a undirected graph must use <TT>--</TT>.
+Operationally, the distinction is used to define different default rendering
+attributes. For example, edges in a digraph will be drawn, by default, with
+an arrowhead pointing to the head node. For ordinary graphs, edges are drawn
+without any arrowheads by default.
+<P>
+A graph may also be described as <B>strict</B>. 
+This forbids the creation of multi-edges, i.e., there can be at most one 
+edge with a given tail node and head node in the directed case. For undirected 
+graphs, there can be at most one
+edge connected to the same two nodes. Subsequent edge statements using
+the same two nodes will identify the edge with the previously defined one
+and apply any attributes given in the edge statement.
+For example, the graph
+<PRE>
+strict graph { 
+  a -- b
+  b -- a [color=blue]
+} 
+</PRE>
+will have a single edge connecting nodes <TT>a</TT> and <TT>b</TT>,
+whose color is blue.
+<P>
 If a default attribute is
 defined using a <B>node</B>,  <B>edge</B>, or  <B>graph</B> statement,
 or by an attribute assignment not attached to a node or edge, any object of the