Previous: The latex_vis backend, Up: The latex_vis backend [Contents][Index]
In addition to the options described above, the front end’s --filter option (see Compiling coNCePTuaL programs) is a useful mechanism for customizing the formatting of the communication diagram. For example, specifying --filter="s/rowsep=30bp/rowsep=1.5in/g" increases the separation between rows from 30bp (where 1bp = 1/72") to 1.5". See the PSTricks documentation for more information about the PSTricks commands used in the generated .tex files.
To facilitate the use of --filter, the
latex_vis
backend uses a helper macro
(\viscolor
) to define colors. \viscolor
takes an argument of the form
‘name=color’ and defines a macro
\
namecolor
that expands to
color. To further facilitate the use of
--filter, the LaTeX code generated by the
latex_vis
backend contains a number of
strategically placed placeholder comments of the form ‘%
PLACEHOLDER: tag’. A
--filter command can thereby
insert code into the document by replacing an appropriate
‘PLACEHOLDER’ line. In alphabetical order, the
currently defined placeholder tags are ANNOTATIONS
,
COLORS
, COMMUNICATION
,
DEADLOCK
, DOCUMENT
, END
,
NODESHAPE
, PACKAGES
, PSMATRIX
,
TEXTOEPS
, and TIMELINE
. Look
through any
latex_vis
-generated .tex file to see
where these are situated. As an example, the following command-line
options define a “chartreuse” color then change the color used to
indicate point-to-point messages from blue to chartreuse:
--filter="s/% PLACEHOLDER: COLORS/\\newrgbcolor{chartreuse}{0.5 1 0}/" --filter="s/sendrecv=blue/sendrecv=chartreuse/"
(According to the PSTricks
documentation, the predefined colors are red
,
green
, blue
, cyan
,
magenta
, and yellow
, and the predefined
grayscales are black
, darkgray
,
gray
, lightgray
, and
white
.)
Tasks that are active at a given time are drawn using the
\task
macro, which takes the task number as an
argument. Tasks that are idle at a given time are drawn using the
\idle
macro, which is initially defined to be the same
as \task
. The following “cookbook” examples showcase
some of the ways that the power of LaTeX and PSTricks can be exploited to display idle
tasks in a variety of different styles (best used with
--annotate=2):
--filter="s/\\let\\idle=\\task/\\newcommand*{\\idle}[1]{[mnode=R]}/"
--filter="s/\\let\\idle=\\task/\\newcommand*{\\idle}[1]{[mnode=dot,
linecolor=gray]}/"
--filter="s/\\let\\idle=\\task/\\newcommand*{\\idle}[1]
{[linestyle=dotted]\\task{#____"
As an alternative to replacing the
‘\let\idle=\task’ binding, the preceding substitutions
can be expressed as the insertion of a LaTeX \renewcommand
. That is,
idle tasks can also be omitted by specifying ‘--filter="s/%
PLACEHOLDER:
NODESHAPE/\\renewcommand*{\\idle}[1]{[mnode=R]}/"’.
In short, the
latex_vis
backend produces highly customizable
illustrations of communication patterns. Because
latex_vis
produces commented LaTeX code, any
customization not provided through the use of
--filter or one of the
backend-specific command-line options is easily performed by
compiling with --keep-ints (see Compiling
coNCePTuaL programs) and editing the generated LaTeX code.
Previous: The latex_vis backend, Up: The latex_vis backend [Contents][Index]