- % ROUNDDIAG STYLE
- % for LaTeX version 2e
- % by -- 2008 Martin Hutle <martin.hutle@epfl.ch>
- %
- % 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}
- }
|