Msc-generator allows you to specify node, edge and subgraph labels via a colon syntax
similar to signalling charts (see Labels). However, since colons are already
used in the DOT language to express node ports, two colons shall be used to
start labels, like node::label;
. Such colon labels are terminated by
semicolons and opening square brackets or braces - even if in DOT, nodes can be
separated via commas or even spaces. When a label is specified via the colon notation
all text formatting escapes used by signalling charts can be used (see Text Formatting).
Note that in this case it is not possible to use the escape sequences of graphviz
(such as \N
to insert the name of the node).
The format of labels (sepecified either via the label
attribute or
the colon notation above) can be influenced via the label_format
attribute.
Assigning a series of text formatting escapes to this attribute (see Text Formatting)
will apply their effect to the label. Note that the formatting is only applied
to the label of the node, edge or cluster subgraph, not to any of headlabel,
taillabel or xlabel. Labels can contain links via the \L()
escape, the formatting
of which can be set with the link_format
attribute. On the other hand, the
URL
, href
, target
, tooltip
,
labelURL
, labeltarget
, labeltooltip
,
edgeURL
, edgehref
, edgetarget
, edgetooltip
,
headURL
, headtarget
, headtooltip
,
tailURL
, tailhref
, tailtarget
, tailtooltip
attributes are ignored.
Msc-generator supports shadows for nodes and cluster subgraphs, via the shadow_offset
,
shadow_blur
and shadow_color
attributes. Read more on these in
Common Attributes.
Since the style attribute of graphviz can take multiple values separated by commas,
like style="dotted,filled"
it is hard to work with it using the Msc-generator style system.
For example, if in an Msc-generator style you define defstyle node [style=filled];
, and later you
create a node as a [style=dotted];
, the attribute would normally completely overwrite the
style of the node removing the fill. So in Msc-generator, the ‘style’
attribute is applied specially. Any assignment to this attibute will add a new value in a comma
separated way, so a [style=dotted, style=filled];
is equivalent to a [code="dotted,filled"];
.
If you want to remove a previously added component, use the minus sign, such as
style="-filled"
. If you want to drop previous values to style and have the current value be the
only one, use an exclamation mark like style="!bold"
.
Finally, there are a few rules on how attributes can be specified, which are somewhat against the logic of other Msc-generator languages.
a, b, c::Label;
all three
nodes will have the same label. (This is from the original DOT language.)
a->b [color=red];
the edge will be red and not node b
.
(This is from the original DOT language.)
subgraph cluster_one [style=rounded] {...};
.
(This is an Msc-generator extension, in the original language you can only specify
subgraph attributes inside the subgraph.)