LaTeX MSC package

News

Package information

We developed a LaTeX macro package for drawing Message Sequence Charts. Version 2.00 of this package is now publicly available. We have written a user manual. The manual describes the design and use of the package, including installation instructions and examples.

This package should be useful to all people that prepare their texts with LaTeX and want to easily draw MSCs in their texts. This is not an MSC editor. It simply takes a textual description of an MSC and draws the corresponding MSC.

The current version of the MSC macro package supports the full MSC2000 language.

In order to use the MSC macro package you need LaTeX2e.

Feel free to use the package. If you appreciate it, send us a message. It may influence the amount of time that we spend on upgrading the package. We also welcome any input for the bug list and the wish list.

Citing us

If you have used our package at your benefit for writing a scientific paper, please consider to give us credits by referencing the following publication:

@article{MB02,
  author =       {Sjouke Mauw and Victor Bos},
  title =        {Drawing {M}essage {S}equence {C}harts with {\LaTeX}},
  journal =      {TUGBoat},
  year =         2001,
  volume =       22,
  number =       {1-2},
  pages =        {87--92},
  month =        {March/June}
}

Authors: Victor Bos, Ton van Deursen, and Sjouke Mauw

Download

The complete msc macro package (gzipped tar file): msc-2.00.tar.gz. This archive contains the following files: The MSC style archive is also available at the CTAN archives, see e.g. https://ctan.org/pkg/msc/

Example

Below you will find a simple example of the use of the MSC macro package. The figure contains the MSC generated by the enclosed LaTeX code. You will probably be able to understand this without further explanation. For an explanation consult the manual.

generated MSC picture
\documentclass{standalone}
\usepackage{msc}
\begin{document}

\begin{msc}{Example}

\declinst{usr}{User}{}
\declinst{m1}{Machine 1}{control}
\declinst{m2}{Machine 2}{drill}
\declinst{m3}{Machine 3}{test}

\mess{startm1}{usr}{m1}
\nextlevel
\mess{startm2}{m1}{m2}
\nextlevel
\mess{continue}{m2}{m3}
\mess{log}{m1}{envleft}
\nextlevel
\mess{output}{m3}{usr}[2]
\nextlevel
\mess{free}{m1}{usr}
\nextlevel

\end{msc}

\end{document}