4.7 Other Features

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.

ex27_csh ex27

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.

ex36_cshex36

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.

ex37_cshex37

Adding a title to the chart is easy. Just type title: followed by the title text.

ex86_cshex86

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.

ex28_cshChunk one: ex2801

Chunk two:

ex2802

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.

ex74_csh
ex74

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.

ex32_cshThe ‘qsd’ design: ex32
The ‘rose’ design: ex29The ‘mild_yellow’ design: ex30
The ‘omegapple’ design: ex31The ‘modern_blue’ design: ex33
The ‘round_green’ design: ex34The ‘green_earth’ design: ex35
The ‘colores’ design: ex82The ‘black_on_white’ design: ex81
And the the ‘norton_commander’ tribute design. ex84