# LaTeX MSC package

## News

• (Nov. 28, 2013): The new development version is made available for testing.

This version comprises a rewrite of large parts of the backend, removing all dependencies on the PSTricks package. As such, the development version allows to compile with latex as well as with pdflatex.

• (Dec. 22, 2010): Version 1.17 is released.

This version fixes bugs related to topheaddist, firstlevelheight, instheight, and gatesymbolradius. It improves the condition* and action* implementations and adds the possibility to cross out a condition or action box. A create command with no incoming arrow is added and an alternative stop symbol can be used to terminate instances.

• (Jun. 2, 2008): New release! Scroll down to download version 1.16.

This version fixes an old error involving the scalebox macro of the PSTricks package. Also, the action and condition macros are extended with a starred version, which automatically adjust the size of the rectangle and hexagon based on the size of the contents.

• (Dec. 21, 2007): We have decided to start working on the package again. A new version of the package will soon appear.

## Package information

We developed a LaTeX macro package for drawing Message Sequence Charts. Version 1.17 of this package is now publicly available. We have written a user manual, a reference manual and a maintenance document. The manual describes the design and use of the package, including installation instructions and examples. The maintenance document contains three lists: a revision list, a bug list and a wish list. See the maintenance document for the differences between the various version.

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. The following additional packages are required: pstricks, calc, and ifthen. These packages are in general part of the standard LaTeX2e distribution. These additional packages can be obtained from the ctan database, e.g. via the following URL: http://www.tex.ac.uk/

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

The complete msc macro package (gzipped tar file): release1.17.tar.gz. This archive contains the following files:

## 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.

\documentclass{article}
\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}



## Development Version

For those interested here is the development version of the MSC package msc.sty. The package is more or less complete. There is also a new manual which is still in large parts incomplete:manual.pdf.