Daniel@0: .TH GVPACK 1 "8 April 2003" Daniel@0: .SH NAME Daniel@0: gvpack \- merge and pack disjoint graphs Daniel@0: .SH SYNOPSIS Daniel@0: .B gvpack Daniel@0: [ Daniel@0: .B \-nguv? Daniel@0: ] Daniel@0: [ Daniel@0: .BI \-m margin Daniel@0: ] Daniel@0: [ Daniel@0: .BI \-o outfile Daniel@0: ] Daniel@0: [ Daniel@0: .BI \-G name\fB=\fPvalue Daniel@0: ] Daniel@0: [ Daniel@0: .I files Daniel@0: ] Daniel@0: .SH DESCRIPTION Daniel@0: .B gvpack Daniel@0: reads in a stream of graphs, combines the graphs into a single Daniel@0: layout, and produces a single graph serving as the union of the Daniel@0: input graphs. The input graphs must be in dot format, and must have Daniel@0: all necessary layout information. Acceptable input is produced Daniel@0: by applying a Graphviz layout program, such as \fBdot\fP or \fBneato\fP, Daniel@0: with no \fB\-T\fP flag. Daniel@0: .P Daniel@0: By default, the packing is done at the cluster level. Thus, parts of Daniel@0: one graph will not intrude into any top\(hylevel clusters or overlap Daniel@0: any nodes or edges of another. Daniel@0: .P Daniel@0: The output of \fBgvpack\fP can be used to produce concrete output Daniel@0: by applying \fBneato \-s \-n2\fP with the desired \fB\-T\fP flag. Daniel@0: .SH OPTIONS Daniel@0: The following options are supported: Daniel@0: .TP Daniel@0: .B \-g Daniel@0: Combines the graphs at the graph level. This uses more space, but prevents Daniel@0: parts of one graph from occurring between parts of another. Daniel@0: .TP Daniel@0: .BI \-G "name\fB=\fPvalue" Daniel@0: Specifies attributes to be added to the resulting union graph. For Daniel@0: example, this can be used to specify a graph label. Daniel@0: .TP Daniel@0: .BI \-m "margin" Daniel@0: Packs the graphs allowing a margin of \fIoutput\fP points around Daniel@0: the parts. Daniel@0: .TP Daniel@0: .B \-n Daniel@0: Combines the graphs at the node level. Clusters are ignored in the packing. Daniel@0: .TP Daniel@0: .BI \-o "output" Daniel@0: Prints output to the file \fIoutput\fP. If not given, \fBgvpack\fP Daniel@0: uses stdout. Daniel@0: .TP Daniel@0: .B \-u Daniel@0: Don't pack the graphs. Just combine them into a single graph. Daniel@0: .TP Daniel@0: .B \-v Daniel@0: Verbose mode. Daniel@0: .TP Daniel@0: .B \-? Daniel@0: Prints usage information and exit. Daniel@0: .SH OPERANDS Daniel@0: The following operand is supported: Daniel@0: .TP 8 Daniel@0: .I files Daniel@0: Names of files containing 1 or more graphs in dot format. Daniel@0: If no Daniel@0: .I files Daniel@0: operand is specified, Daniel@0: the standard input will be used. Daniel@0: .SH RETURN CODES Daniel@0: .B gvpack Daniel@0: returns Daniel@0: .B 0 Daniel@0: if there were no problems, and non\(hyzero otherwise. Daniel@0: .SH EXAMPLES Daniel@0: .EX Daniel@0: ccomps \-x abc.dot | dot | gvpack | neato \-s \-n2 \-Tps Daniel@0: .EE Daniel@0: This pipeline decomposes the graph in \fIabc.dot\fP into its Daniel@0: connected components, lays out each using \fBdot\fP, packs them all together Daniel@0: again, and produces the final drawing in PostScript. Of course, Daniel@0: there is nothing to prevent one from using different layouts for Daniel@0: each component. Daniel@0: .SH "BUGS" Daniel@0: All the input graphs must be directed or undirected. Daniel@0: .P Daniel@0: An input graph should not have a label, since this will be used in its Daniel@0: layout. Since \fBgvpack\fP ignores root graph labels, resulting layout Daniel@0: may contain some extra space. Daniel@0: .P Daniel@0: \fBgvpack\fP unsets the bounding box attribute of all non\(hycluster Daniel@0: subgraphs. Daniel@0: .SH AUTHORS Daniel@0: Emden R. Gansner Daniel@0: .SH "SEE ALSO" Daniel@0: gvpr(1), dot(1), neato(1), twopi(1), ccomps(1), libpack(3)