Annotation of researchv10no/cmd/dag/dag.1, revision 1.1.1.1

1.1       root        1: .TH DAG 1 "15 April 1987"
                      2: .SH NAME
                      3: dag \- preprocessor for DAGs and other directed graphs
                      4: .SH SYNOPSIS
                      5: .B dag
                      6: [
                      7: .B \-T\fItype\fP
                      8: ] [
                      9: .B \-p\fIwidth\fPx\fIheight\fP
                     10: [
                     11: .B ,\fImarginwidth\fP
                     12: [
                     13: .B x\fImarginheight\fP
                     14: ] ]
                     15: ] [
                     16: .B \-O
                     17: ] [
                     18: .B \-l
                     19: ] [ files ]
                     20: .SH DESCRIPTION
                     21: .I Dag
                     22: is a
                     23: .IR pic (1)
                     24: or
                     25: .IR Postscript
                     26: preprocessor for drawing directed graphs.  It works well on
                     27: directed acyclic graphs and other graphs that can be drawn
                     28: as a hierarchy.
                     29: .IR dag
                     30: selects coordinates for the nodes of the graph and creates a picture.
                     31: Input graphs are surrounded by the
                     32: .I troff
                     33: `commands'
                     34: .B \&.GS
                     35: and
                     36: .BR  \&.GE .
                     37: The graph contains nodes, edges, and optional control statements.
                     38: Statements are semicolon terminated.  Here is a brief summary:
                     39: .PP
                     40: \fBedge from\fP \fItail\fP \fBto\fP \fIhead0 edge-items, \fBto\fP head1 edge-items, \fBto\fP head2 edge-items... \fR: creates edges from the tail node
                     41: to the head nodes (or node).  Nodes are implicitly created if they do
                     42: not already exist.  \fIedge-items\fP (which apply to the 
                     43: edge just made, as described below) and the noisewords \fBedge\fP,
                     44: \fBfrom\fP, and \fBto\fP are optional.  Node names may be quoted
                     45: to avoid conflicting with keywords.
                     46: .PP
                     47: \fBordered\fP \fI tail head0 head1 head2... \fR: makes edges and also
                     48: constrains the left-to-right order of the head nodes and keeps them
                     49: on the same rank.  May contain noisewords and edge-items.
                     50: .PP
                     51: \fBpath\fP \fI node0 node1 node2...\fR: creates a path of edges.
                     52: May contain noisewords and edge-items.
                     53: .PP
                     54: \fBbackedge\fP \fItail head0 head1 head2...\fR: creates edges that
                     55: point backward (up or left).
                     56: .PP
                     57: \fBbackpath\fP \fInode0 node1 node2...\fR: makes a path of backedges.
                     58: .PP
                     59: \fBdraw nodes\fP \fInode-items\fP: Changes default definition for all nodes
                     60: subsequently created.  \fInode-items\fP are: \fBas\fP \fIshape\fP
                     61: (standard shapes are \fBBox, Circle, Ellipse, Diamond, Square,\fP
                     62: and \fBPlaintext\fP), \fBlabel\fR \fIstring\fP,
                     63: \fBpointsize\fP \fIn\fP, \fBwidth\fP \fIn\fP,
                     64: \fBheight\fP \fIn\fP, \fBcolor\fP \fIstring\fP.  Dimensions are
                     65: in inches.  \fIcolor\fP only works with PostScript and should evaluate
                     66: to an HSB triple.
                     67: .PP
                     68: \fBdraw\fP \fInodelist\fP \fInode-items\fP: controls drawing (shapes,
                     69: labels, etc.) of nodes in the list.
                     70: .PP
                     71: \fBdraw edges\fP \fIedge-items\fP: Changes default definition of edges
                     72: subsequently created.  \fIedge-items\fP are: \fBdotted, dashed, solid\fP,
                     73: or \fBinvis\fP, \fBlabel\fP \fIstring\fP, \fBweight\fP \fIn\fP,
                     74: \fBcolor\fP \fIstring\fP, \fBpointsize\fP \fIn\fP.
                     75: .PP
                     76: \fBminimum rank\fP \fInodelist\fP: constrains nodes 
                     77: to be on the topmost rank (or leftmost if drawn with .GR).
                     78: .PP
                     79: \fBmaximum rank\fP \fInodelist\fP: bottommost or rightmost rank.
                     80: .PP
                     81: \fBsame rank\fP \fInodelist\fP: constrains nodes to be
                     82: placed on the same rank.
                     83: .PP
                     84: \fBseparate ranks\fP \fIn\fP \fBequally\fP or \fBexactly\fP:
                     85: sets separation between ranks.
                     86: \fBexactly\fP means rank separation is fixed.
                     87: \fBequally\fP means that all ranks have the same separation.
                     88: .PP
                     89: The \fB\-O\fP option requests ``optimal'' node placement.  This makes
                     90: slightly better layouts, but is only practical for graphs of a few
                     91: dozen nodes.
                     92: .PP
                     93: Output languages other than
                     94: .IR pic
                     95: are requested with \fB\-T\fP: \fB\-Tps\fP for PostScript, \fB\-Tsimple\fP
                     96: for a simple format similar to that of the Ninth Edition Unix \fIgraphdraw\fP
                     97: editor, and \fB\-Tcip\fP for a simplified form of \fIpic\fP code that
                     98: can be read by the obsolescent \fIcip\fP editor.  PostScript drawings
                     99: are paginated by giving the \fB\-p\fP option to set page dimensions.
                    100: Default margins are one-half inch.
                    101: Although the margins can be set to zero, Laserwriters have hard margins
                    102: that prevent making seamless mosaics.
                    103: The \fB\-p\fP option replaces the \fIPoster\fP
                    104: program from CIA, which is inefficient for large drawings
                    105: because of quadratic behavior.
                    106: .PP
                    107: The \fB\-l\fP option disables automatic loading of the
                    108: .IR dag
                    109: graphics library.
                    110: .PP
                    111: A graph is drawn with left-to-right edges by using .GR
                    112: instead of .GS.  The maximum height and width of the drawing may
                    113: be given on the .GS/.GR line. The optional keyword \fBfill\fP at
                    114: the end of this line makes \fIdag\fP adjust node positions
                    115: to fill the bounding box.
                    116: In-line graphics code such as \fIpic\fP or PostScript macros
                    117: may be defined in a block between \fB.PS\fP and \fB.PE\fP.
                    118: .PP
                    119: If \fIdag\fP is installed under EXPTOOLS, it uses the standard
                    120: \fBTOOLS\fP environment variable to find its libraries.
                    121: .SH "EXAMPLE"
                    122: .br
                    123: \&.GS 6 8 fill
                    124: .br
                    125: a b c;
                    126: .br
                    127: path a x y;
                    128: .br
                    129: draw nodes as Box;
                    130: .br
                    131: a z label "hi" weight 1000;
                    132: .br
                    133: draw edges dashed;
                    134: .br
                    135: b x;
                    136: .br
                    137: same rank b x;
                    138: .br
                    139: \&.GE
                    140: .br
                    141: .SH "BUGS"
                    142: \fItroff\fP doesn't have \fBdotted\fP or \fBdashed\fP splines.
                    143: Use PostScript.  
                    144: .PP
                    145: \fIdag\fP doesn't keep edge labels from accidentally overlapping.
                    146: .SH "SEE ALSO"
                    147: .I
                    148: E. R. Gansner, S. C. North,  K. P. Vo, "DAG \(em A Graph Drawing Program,"
                    149: TM 59554-871019-04TM.
                    150: .br

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.