Previous: Annotating the Chart, Up: Signalling Chart Language Tutorial [Contents]
There are a few more features that are easy to use and can help in certain situations.
One useful feature is the
numbering of labels. This is useful if you want to insert your chart
into some documentation and later refer to individual arrows by number.
By specifying the numbering=yes
chart option all labels will get
an auto-incremented number. This includes boxes and dividers, as well.
You can individually turn numbering on or off by specifying the
number
attribute. You can set it to yes
or no
, or
to a specific integer number. In the latter case the arrow will take
the specified number and subsequent arrows will be numbered from this
value.
On the example below, we can observe that in case of parallel blocks
the order of numbering corresponds to the order of the arrows in the
source file.
Sometimes a block of actions would be best summarized by a block arrow. This can be achieved by typing ‘block’ in front of any arrow declaration.
![]() | ![]() |
Similar, many cases you want to express a tunnel between two entities and messages travelling through it. To achieve this, just type ‘pipe’ in front of any box definition. You can define a series of connected or disconencted pipe segment each with its own visual style or even encapsulate pipes. More on this in Pipes.
![]() | ![]() |
Adding a title to the chart is easy. Just type title:
followed by the title
text.
![]() | ![]() |
Another handy feature is multi-page support. This is useful when
describing a single procedure in a document in multiple chunks. By
inserting the newpage;
command, the rest of the chart will be
drawn to a separate file. You can specify as many pages, as you want.
In order to display the entity headings again at the top of the new
page, add the auto_heading=yes
attribute. Breaking a page is
possible even in the middle of a box, see the following example.
![]() | Chunk one:
![]() Chunk two: ![]() |
From version 3.3 you can draw arbitrary circles and rectangles onto the chart. They syntax is quite rich to allow free placement. You can even specify to draw below the entity lines or over other drawn elements. More detailed description can be found in Free Drawing, but here are a few examples.
Finally, an easy way to make charts visually more appealing is through the use of
Chart Designs. A chart design is a collection of colors and visual style for
arrows, boxes, entities and dividers. The design can be specified
either on the command line after double dashes, or at the beginning of
the chart by the msc=<design>
line.
Currently several designs are supported. ‘plain’ was used as demonstration so far. Below we give an example of the others.
![]() | The ‘qsd’ design:
![]() |
The ‘rose’ design:
![]() | The ‘mild_yellow’ design:
![]() |
The ‘omegapple’ design:
![]() | The ‘modern_blue’ design:
![]() |
The ‘round_green’ design:
![]() | The ‘green_earth’ design:
![]() |
The ‘colores’ design:
![]() | The ‘black_on_white’ design:
![]() |
And the the ‘norton_commander’ tribute design.
![]() |
Previous: Annotating the Chart, Up: Signalling Chart Language Tutorial [Contents]