% ROUNDDIAG STYLE % for LaTeX version 2e % by -- 2008 Martin Hutle % % This style file is free software; you can redistribute it and/or % modify it under the terms of the GNU Lesser General Public % License as published by the Free Software Foundation; either % version 2 of the License, or (at your option) any later version. % % This style file is distributed in the hope that it will be useful, % but WITHOUT ANY WARRANTY; without even the implied warranty of % MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU % Lesser General Public License for more details. % % You should have received a copy of the GNU Lesser General Public % License along with this style file; if not, write to the % Free Software Foundation, Inc., 59 Temple Place - Suite 330, % Boston, MA 02111-1307, USA. % \NeedsTeXFormat{LaTeX2e} \ProvidesPackage{rounddiag} \typeout{Document Style `rounddiag' - provides simple round diagrams} % \RequirePackage{ifthen} \RequirePackage{calc} \RequirePackage{tikz} \def\rdstretch{3} \tikzstyle{msg}=[->,thick,>=latex] \tikzstyle{rndline}=[dotted] \tikzstyle{procline}=[dotted] \newenvironment{rounddiag}[2]{ \begin{center} \begin{tikzpicture} \foreach \i in {1,...,#1} \draw[procline] (0,#1-\i) node[xshift=-1em]{$p_{\i}$} -- (#2*\rdstretch+1,#1-\i); \foreach \i in {0,...,#2} \draw[rndline] (\i*\rdstretch+0.5,0) -- (\i*\rdstretch+0.5,#1-1); \newcommand{\rdat}[2]{ (##2*\rdstretch+0.5,#1-##1) }% \newcommand{\round}[2]{% \def\rdround{##1} \ifthenelse{\equal{##2}{}}{}{ \node[yshift=-1em] at ({##1*\rdstretch+0.5-{0.5*\rdstretch}},0) {##2}; } }% \newcommand{\rdmessage}[3]{\draw[msg] (\rdround*\rdstretch-\rdstretch+0.5,#1-##1) -- node[yshift=1.2ex]{##3} (\rdround*\rdstretch+0.5,#1-##2);}% \newcommand{\rdalltoall}{% \foreach \i in {1,...,#1} \foreach \j in {1,...,#1} { \rdmessage{\i}{\j}{}}}% }{% \end{tikzpicture} \end{center} }