Mscgen: Message Sequence Charts
Babel support for Mscgen: Message sequence charts
Introduction
Mscgen is a utility for rendering message sequence charts.
The charts are defined in text format as specified on the project homepage.
This Babel module is similar to ob-dot and ob-ditaa in that they just render an image from a text-based definition. Therefore many of the Babel concepts do not apply (things like sessions, variables, vector output).
Requirements
- Babel requires that Mscgen be installed on your system
- A path to executable must exist in the variable
exec-path
(setq exec-path (append exec-path '("/path/to/mscgen")))
Enabling Babel's Mscgen support
You need to add Mscgen to the org-babel-load-languages
variable
Customize thus:
M-x customize-variable RET org-babel-load-languages RET
Or, add the commented line to .emacs
:
(org-babel-do-load-languages 'org-babel-load-languages '((R . t) (ditaa . t) (dot . t) (emacs-lisp . t) (mscgen . t) ; this is the entry to activate mscgen (latex . t) (perl . t) (python . t) (ruby . t) (screen . nil) (sh . t) (sql . nil) (sqlite . nil)))
Example usage
The following is a trivial example of 2 messages between nodes A and B:
#+begin_src mscgen :file chart.png msc { A,B; A -> B [ label = "send message" ]; A <- B [ label = "receive answer" ]; } #+end_src
Which produces the following result:
Header arguments
These header arguments are relevant for Mscgen:
- file
- the file argument is needed since the output from Mscgen is always to a file
- filetype
- optional file type, defaults to PNG
Output file types (as of Mscgen version 2010W30) are:
- PNG (Portable Network Graphics) - default
- SVG (Scalable Vector Graphics)
- EPS (encapsulated PostScript)
- ismap (server-side image map)
PNG results in a bitmap image, but it is supported in all export formats (i.e. by web browsers and by pdflatex).
Other formats may result in a link to the actual file.
In order to get higher resolution on PNG output, include a width
or hscale
statement.