\documentclass[11pt]{article} \usepackage{reotex} \usepackage{verbatim} \usepackage{pgf} \usepackage{tikz} \usepackage[pdftex]{hyperref} \usepackage{url} \title{A PGF-based Libary for Reo Circuits} \author{\textbf{Nuno Oliveira}\\[12pt]HASLab/INESC TEC\\Universidade do Minho} \date{\today} \begin{document} \maketitle \begin{abstract} This article briefly presents the package for Reo Circuits which is an \emph{extension} of the PGF/Tikz package, thoroughly documented in the manual ``Tikz \& PGF Manual for Version~2.10''. Herein, the several commands to build a Reo circuit are presented and its \emph{API} explained. For a good usage of this package, \LaTeXe{} version is required. Some commands may work as well with \LaTeX{} version, but it is left as your responsibility. Moreover, an excellent introduction to Reo can be found in~\cite{arbab04}, and for more information and tools on this theme the following website may be visited: \begin{center} \url{http://reo.project.cwi.nl/} \end{center} \end{abstract} \section{How to Make it Work} Ok, say you want to use this package to draw beautiful Reo Circuits. You start by loading your latex template. Then, in your preamble, you need to have the following: \begin{itemize} \item \verb+\usepackage{reotex}+ \end{itemize} Obviously, you need to have \verb+pgf+ and \verb+tikz+ packages installed in your environment, otherwise the commands provided in \verb+reotex+ will not be interpreted. \section{Drawing a Reo Channel} Reo circuits are the composition of several Reo channels. In this package all the channels have the same API, thus it is easy to explain a generic way of drawing such channels. \subsection{The Generic Format}\label{sec:genericchannels} The following pseudo-code shows how to draw any channel. \begin{verbatim} \tikz \{} {} {} ; \end{verbatim} In detail, \begin{itemize} \item \verb+\tikz+: refers to the Tikz environment to draw a tikz-based picture. In fact, the \verb+\tikz+ command is to draw an inline picture. If you desire to draw in a more controlled environment you may use: \begin{verbatim} \begin{tikzpicture} {} {} {} \end{tikzpicture} \end{verbatim} \item \emph{$<$channel name$>$}: refers to the command (representing the name of a channel) as presented in Section~\ref{sec:channels}. \item \emph{$<$start$>$} refers to the coordinates of the starting point of the channel. It may be written either as $(x,y)$ or as a reference for a previous defined node: $(name)$. The second format should only be used in a tikzpicture environment. \item \emph{$<$target$>$}: refers to the coordinates of the target point of the channel. It is used as the \emph{$<$start$>$} coordinate. \item \emph{$<$labels$>$}: refer to the labels that may be desired to add to the channel. More than one label may be expressed; whenever it happens, a space should separate them. Each label should have the following format: \begin{verbatim} node[] {