diff options
| author | Jacob McDonnell <jacob@jacobmcdonnell.com> | 2026-04-25 21:07:28 -0400 |
|---|---|---|
| committer | Jacob McDonnell <jacob@jacobmcdonnell.com> | 2026-04-25 21:07:28 -0400 |
| commit | 711594636704defae873be1a355a292505585afd (patch) | |
| tree | 59ee13f863830d8beba6cfd02bbe813dd486c26f /static/v10/man1/dag.1 | |
| parent | 3258a063c1f189d7b019e40e525b46bef9b9a7b1 (diff) | |
docs: Added UNIX V10 Manuals
Diffstat (limited to 'static/v10/man1/dag.1')
| -rw-r--r-- | static/v10/man1/dag.1 | 150 |
1 files changed, 150 insertions, 0 deletions
diff --git a/static/v10/man1/dag.1 b/static/v10/man1/dag.1 new file mode 100644 index 00000000..0ea92348 --- /dev/null +++ b/static/v10/man1/dag.1 @@ -0,0 +1,150 @@ +.TH DAG 1 "15 April 1987" +.SH NAME +dag \- preprocessor for DAGs and other directed graphs +.SH SYNOPSIS +.B dag +[ +.B \-T\fItype\fP +] [ +.B \-p\fIwidth\fPx\fIheight\fP +[ +.B ,\fImarginwidth\fP +[ +.B x\fImarginheight\fP +] ] +] [ +.B \-O +] [ +.B \-l +] [ files ] +.SH DESCRIPTION +.I Dag +is a +.IR pic (1) +or +.IR Postscript +preprocessor for drawing directed graphs. It works well on +directed acyclic graphs and other graphs that can be drawn +as a hierarchy. +.IR dag +selects coordinates for the nodes of the graph and creates a picture. +Input graphs are surrounded by the +.I troff +`commands' +.B \&.GS +and +.BR \&.GE . +The graph contains nodes, edges, and optional control statements. +Statements are semicolon terminated. Here is a brief summary: +.PP +\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 +to the head nodes (or node). Nodes are implicitly created if they do +not already exist. \fIedge-items\fP (which apply to the +edge just made, as described below) and the noisewords \fBedge\fP, +\fBfrom\fP, and \fBto\fP are optional. Node names may be quoted +to avoid conflicting with keywords. +.PP +\fBordered\fP \fI tail head0 head1 head2... \fR: makes edges and also +constrains the left-to-right order of the head nodes and keeps them +on the same rank. May contain noisewords and edge-items. +.PP +\fBpath\fP \fI node0 node1 node2...\fR: creates a path of edges. +May contain noisewords and edge-items. +.PP +\fBbackedge\fP \fItail head0 head1 head2...\fR: creates edges that +point backward (up or left). +.PP +\fBbackpath\fP \fInode0 node1 node2...\fR: makes a path of backedges. +.PP +\fBdraw nodes\fP \fInode-items\fP: Changes default definition for all nodes +subsequently created. \fInode-items\fP are: \fBas\fP \fIshape\fP +(standard shapes are \fBBox, Circle, Ellipse, Diamond, Square,\fP +and \fBPlaintext\fP), \fBlabel\fR \fIstring\fP, +\fBpointsize\fP \fIn\fP, \fBwidth\fP \fIn\fP, +\fBheight\fP \fIn\fP, \fBcolor\fP \fIstring\fP. Dimensions are +in inches. \fIcolor\fP only works with PostScript and should evaluate +to an HSB triple. +.PP +\fBdraw\fP \fInodelist\fP \fInode-items\fP: controls drawing (shapes, +labels, etc.) of nodes in the list. +.PP +\fBdraw edges\fP \fIedge-items\fP: Changes default definition of edges +subsequently created. \fIedge-items\fP are: \fBdotted, dashed, solid\fP, +or \fBinvis\fP, \fBlabel\fP \fIstring\fP, \fBweight\fP \fIn\fP, +\fBcolor\fP \fIstring\fP, \fBpointsize\fP \fIn\fP. +.PP +\fBminimum rank\fP \fInodelist\fP: constrains nodes +to be on the topmost rank (or leftmost if drawn with .GR). +.PP +\fBmaximum rank\fP \fInodelist\fP: bottommost or rightmost rank. +.PP +\fBsame rank\fP \fInodelist\fP: constrains nodes to be +placed on the same rank. +.PP +\fBseparate ranks\fP \fIn\fP \fBequally\fP or \fBexactly\fP: +sets separation between ranks. +\fBexactly\fP means rank separation is fixed. +\fBequally\fP means that all ranks have the same separation. +.PP +The \fB\-O\fP option requests ``optimal'' node placement. This makes +slightly better layouts, but is only practical for graphs of a few +dozen nodes. +.PP +Output languages other than +.IR pic +are requested with \fB\-T\fP: \fB\-Tps\fP for PostScript, \fB\-Tsimple\fP +for a simple format similar to that of the Ninth Edition Unix \fIgraphdraw\fP +editor, and \fB\-Tcip\fP for a simplified form of \fIpic\fP code that +can be read by the obsolescent \fIcip\fP editor. PostScript drawings +are paginated by giving the \fB\-p\fP option to set page dimensions. +Default margins are one-half inch. +Although the margins can be set to zero, Laserwriters have hard margins +that prevent making seamless mosaics. +The \fB\-p\fP option replaces the \fIPoster\fP +program from CIA, which is inefficient for large drawings +because of quadratic behavior. +.PP +The \fB\-l\fP option disables automatic loading of the +.IR dag +graphics library. +.PP +A graph is drawn with left-to-right edges by using .GR +instead of .GS. The maximum height and width of the drawing may +be given on the .GS/.GR line. The optional keyword \fBfill\fP at +the end of this line makes \fIdag\fP adjust node positions +to fill the bounding box. +In-line graphics code such as \fIpic\fP or PostScript macros +may be defined in a block between \fB.PS\fP and \fB.PE\fP. +.PP +If \fIdag\fP is installed under EXPTOOLS, it uses the standard +\fBTOOLS\fP environment variable to find its libraries. +.SH "EXAMPLE" +.br +\&.GS 6 8 fill +.br +a b c; +.br +path a x y; +.br +draw nodes as Box; +.br +a z label "hi" weight 1000; +.br +draw edges dashed; +.br +b x; +.br +same rank b x; +.br +\&.GE +.br +.SH "BUGS" +\fItroff\fP doesn't have \fBdotted\fP or \fBdashed\fP splines. +Use PostScript. +.PP +\fIdag\fP doesn't keep edge labels from accidentally overlapping. +.SH "SEE ALSO" +.I +E. R. Gansner, S. C. North, K. P. Vo, "DAG \(em A Graph Drawing Program," +TM 59554-871019-04TM. +.br |
