diff --git a/misc/preamble.tex b/misc/preamble.tex index 0fdfb2eebe22bae40ef9d8ab30c92867f05375ab..762a8458e812a751f3e94457261845ffbb519c12 100644 --- a/misc/preamble.tex +++ b/misc/preamble.tex @@ -2,41 +2,55 @@ \setcounter{secnumdepth}{3} % Sections are numbered up to: Subsubsection % Load packages -\usepackage[utf8]{inputenc} -\usepackage[T1]{fontenc} +\usepackage[utf8]{inputenc} % support of UTF-8 input text +\usepackage[T1]{fontenc} % proper encoding of the output font +\usepackage{lmodern} % original CM font doesn't work well with [T1]{fontenc} + +% set language \ifenglish% \usepackage[english]{babel} \else \usepackage[ngerman]{babel} \fi -\usepackage{lmodern} -\usepackage{ifpdf} -\usepackage{ifthen} -% Corporate Design -\usepackage{eso-pic} % used to set the border on the title page -\usepackage{color} +% utility packages +\usepackage{ifpdf} % if else structure that checks if a PDF is compiled +\usepackage{ifthen} % adds support for if else structures + % defining the UPB-colors -\definecolor{upbblue}{RGB}{0,32,91} +\usepackage{xcolor} +\definecolor{upbblue}{RGB}{0,62,121} +\definecolor{upbdarkgray}{RGB}{45,45,45} \definecolor{upbgray}{RGB}{85,85,85} -\definecolor{upblightgray}{RGB}{230,232,230} -\definecolor{upbred}{RGB}{215,51,103} -\definecolor{upbgreen}{RGB}{164,196,36} -\definecolor{upbcyan}{RGB}{24,176,226} -\definecolor{upborange}{RGB}{242,149,18} +\definecolor{upblightgray}{RGB}{170,170,170} +\definecolor{upbred}{RGB}{165,1,53} +\definecolor{upbgreen}{RGB}{134,166,6} +\definecolor{upbdarkgreen}{RGB}{94,126,20} +\definecolor{upbcyan}{RGB}{4,156,206} +\definecolor{upborange}{RGB}{202,109,0} \definecolor{upbcassis}{RGB}{169,57,131} \definecolor{upblightblue}{RGB}{0,127,185} +%% Floats +\usepackage{caption} % captions for floats +\usepackage{standalone} % allows file with standalone class to be inputted + + % Figures -\usepackage{graphicx} -\usepackage{subfig} -\usepackage{placeins} -\graphicspath{{images/}{figures/}} +\usepackage{graphicx} % adds functionality to \includegraphics +\usepackage{subfig} % provides the \subfigure command +\usepackage{placeins} % provides \FloatBarrier command +\graphicspath{{images/}{figures/}} % so you don't have to provide the path for every image % Tables -\usepackage{booktabs} -\usepackage{marvosym} -\usepackage{multirow} +\usepackage{booktabs} % adds rules for tables in a formal style +\usepackage{multirow} % add support for multi-rows +\usepackage{multicol} % add support for multi-columns +\usepackage{longtable} % long tables can break pages +\usepackage{tabularx} % allows to fill table to linewidth +\newcolumntype{Y}{>{\centering\arraybackslash}X} % Y is centered X +\newcolumntype{P}[1]{>{\centering\arraybackslash}p{#1}} % P is p in centered +\usepackage[flushleft]{threeparttable} % text below tables % Math stuff and units \usepackage{latexsym, amsmath, amssymb, amsfonts, upgreek} @@ -49,65 +63,38 @@ % Enable quotes by \enquote{} \usepackage[autostyle, english=american, german=quotes]{csquotes} -% Necessary for frontpage, allows to create automata and fancy graphics +% Allows to create automata and fancy graphics \usepackage{tikz} -% Protocols and bytefields -\makeatletter -\def\input@path{{./misc/}} -\makeatother -\usepackage{protocol} -\usepackage{bytefield} - % Source code listings \newcommand{\code}[1]{\texttt{#1}} -\definecolor{colIdentifier}{rgb}{0,0,0} -\definecolor{colComments}{rgb}{0.5,0.5,0.5} -\definecolor{colKeys}{rgb}{0,0,1} -\definecolor{colString}{rgb}{0,0.6,0} - -\usepackage{caption} \usepackage{listings} -\lstset{% - float=hbp,% - basicstyle=\ttfamily\scriptsize, % - identifierstyle=\color{colIdentifier}, % - keywordstyle=\color{colKeys}, % - stringstyle=\color{colString}, % - commentstyle=\color{colComments}, % - columns=flexible, % - tabsize=2, % - aboveskip={1.5\baselineskip}, % - frame=single, % - extendedchars=true, % - showspaces=false, % - showstringspaces=false, % - numberstyle=\tiny, % - breaklines=true, % - backgroundcolor=, % - breakautoindent=true, % - captionpos=b% +\lstset{ + floatplacement=htp, + basicstyle=\ttfamily\footnotesize, + identifierstyle=\color{upbblue}, + keywordstyle=\color{upborange}, + stringstyle=\color{upbdarkgreen}, + commentstyle=\color{upbgray}, + columns=flexible, + tabsize=4, + aboveskip={1.5\baselineskip}, + frame=tb, + framerule=\heavyrulewidth, + extendedchars=true, + showspaces=false, + showstringspaces=false, + breaklines=true, + backgroundcolor=, + breakautoindent=true, + captionpos=b, + numbers=left, + numberstyle=\tiny, + numbersep=5pt, } -\makeatletter -\@ifclassloaded{scrreprt}{% - % Algorithms - \usepackage[ruled, vlined, linesnumbered, algochapter, algo2e]{algorithm2e} - - % Format page foot and header - \usepackage{scrlayer-scrpage} - \clearscrheadings% - \clearscrheadfoot% - \automark[section]{chapter} - \ohead{\pagemark} - \ihead{\headmark} - \pagestyle{scrheadings} -}{% - \usepackage[ruled, vlined, linesnumbered, algo2e]{algorithm2e} - \pagestyle{plain} -} -\makeatother +\usepackage[ruled, vlined, linesnumbered, algo2e]{algorithm2e} % use some standards for mathematical expressions: \newcommand{\red}{{\rm red}} @@ -115,20 +102,9 @@ \newtheorem{lemma}[theorem]{Lemma} \newtheorem{proposition}[theorem]{Proposition} \newtheorem{corollary}[theorem]{Corollary} -% \newtheorem{definition}[theorem]{Definition} \newtheorem{algorithm}[theorem]{Algorithm} \newenvironment{example}{\begin{quote}{\bf Example:}}{\end{quote}} - -% bibliography -% we don't use biber, because we it is very slow when parsing cryptobib and rfcbib -\usepackage[backend=bibtex]{biblatex} -\addbibresource{literature/literature.bib} -\addbibresource{literature/cryptobib/crypto.bib} -\addbibresource{literature/rfcbib/data/rfc.bib} - -\usepackage{url} -\def\UrlBreaks{\do\/\do-} - +% \newtheorem{definition}[theorem]{Definition} % gray definition boxes, that way you'll find them in the text \usepackage{shadethm} \newshadetheorem{sthm}[figure]{Definition} @@ -139,10 +115,38 @@ \end{sthm}% } +%% type setting +\usepackage[defaultlines=2,all]{nowidow} % prevents widows and orphans (single lines at beginning/end of page) enforces minimum of <defaultline> instead +\usepackage{microtype} % improves typesetting +\UseMicrotypeSet[protrusion]{basicmath} % disable protrusion for tt fonts + +% align footnotes +\usepackage[hang,marginal]{footmisc} +\def\footnotemargin{1em} + +% smaller dot for itemize +\renewcommand\labelitemi{$\vcenter{\hbox{\tiny$\bullet$}}$} + +% define paragraphs to have a dot at the end +\let\origparagraph\paragraph% +\renewcommand{\paragraph}[1]{\origparagraph{#1.}} + % apparently some packages used here utilize deprecated KOMA-Script functionalities % scrhack ensures, that those packages don't break suddenly and removes the deprecation warnings from the log \usepackage{scrhack} +% bibliography +% we don't use biber, because we it is very slow when parsing cryptobib and rfcbib +\usepackage[backend=bibtex]{biblatex} +\addbibresource{literature/literature.bib} +\addbibresource{literature/cryptobib/crypto.bib} +\addbibresource{literature/rfcbib/data/rfc.bib} + +% allow urls to break at hyphens - +\usepackage{url} +\def\UrlBreaks{\do\/\do-} + + % Hyperlinks and menu for your document \usepackage[% breaklinks,% @@ -157,19 +161,18 @@ pdftex% ]{hyperref} % pagebackref: Add page number to the references where they can be found -\input{misc/custom_preamble.tex} - % set autoref names \addto\extrasenglish{% - \renewcommand{\chapterautorefname}{Chapter}% - \renewcommand{\sectionautorefname}{Section}% - \renewcommand{\subsectionautorefname}{Section}% - \renewcommand{\subsubsectionautorefname}{Section}% - \renewcommand{\paragraphautorefname}{Paragraph}% - \renewcommand{\subparagraphautorefname}{Paragraph}% - \renewcommand{\appendixautorefname}{Appendix}% +\renewcommand{\chapterautorefname}{Chapter}% +\renewcommand{\sectionautorefname}{Section}% +\renewcommand{\subsectionautorefname}{Section}% +\renewcommand{\subsubsectionautorefname}{Section}% +\renewcommand{\paragraphautorefname}{Paragraph}% +\renewcommand{\subparagraphautorefname}{Paragraph}% +\renewcommand{\appendixautorefname}{Appendix}% } +\input{misc/custom_preamble.tex} % DO NOT LOAD ANY OF YOUR PACKAGES BEYOND THIS PACKAGE @@ -198,50 +201,3 @@ \hypersetup{linktocpage=true} % false=links are section names, true=links are page numbers, IMPORTANT: in dvi2ps mode, 'true' is required! \usepackage[hyphenbreaks]{breakurl} \fi - -%Ganttchart -\usepackage{pgfgantt} -%Customizing GanttChart -\definecolor{barblue}{RGB}{153,204,254} -\definecolor{groupblue}{RGB}{51,102,254} -\definecolor{linkred}{RGB}{165,0,33} -\renewcommand\sfdefault{phv} -\renewcommand\mddefault{mc} -\renewcommand\bfdefault{bc} -\setganttlinklabel{s-s}{START-TO-START} -\setganttlinklabel{f-s}{FINISH-TO-START} -\setganttlinklabel{f-f}{FINISH-TO-FINISH} -\sffamily -\ganttset{% - y unit chart=0.6cm, - canvas/.append style={fill=none, draw=black!35, line width=.5pt}, - hgrid={*1{draw=black!35, line width=.1pt}}, - hgrid style/.style={draw=black!35,line width=.1pt}, - vgrid={*1{draw=black!35, line width=.1pt}}, - today rule/.style={draw=black!64,dash pattern=on 3.5pt off 4.5pt,line width=1.5pt}, - today label font=\small\bfseries, - title/.style={draw=none, fill=none}, - title label font=\bfseries\footnotesize, - title label node/.append style={below=7pt}, - progress label text={\pgfmathprintnumber[precision=0, verbatim]{#1}\%}, - include title in canvas=false, - bar label font=\mdseries\small\color{black!70}, - bar label node/.append style={left=0cm}, - bar/.append style={draw=none, fill=black!63}, - bar incomplete/.append style={fill=barblue}, - bar progress label font=\mdseries\footnotesize\color{black!70}, - bar height=.8, - bar top shift=0.1, - group top shift=0.1, - group incomplete/.append style={fill=groupblue}, - group left shift=0, - group right shift=0, - group height=.8, - group peaks tip position=0, - group label node/.append style={left=.6cm}, - group progress label font=\bfseries\small, - link/.style={-latex, line width=1.5pt, linkred}, - link label font=\scriptsize\bfseries, - link label node/.append style={below left=-2pt and 0pt} -} - diff --git a/misc/protocol.sty b/misc/protocol.sty deleted file mode 100644 index edc9a508bb8b28453f07454c1505d1b5f32ca3e9..0000000000000000000000000000000000000000 --- a/misc/protocol.sty +++ /dev/null @@ -1,418 +0,0 @@ -%---------------------------------------------------------------------- -% This is: protocol.sty (sirene Version) -% $Id: protocol.sty,v 1.1 2004/06/27 08:56:50 selhorst Exp $ -%---------------------------------------------------------------------- -% - Original Author: Peter de Rooij, 93/09/06 -% - History: See end of file. -% -% Typical usage: -% -% \begin{minipage}{0.9\textwidth} -% \begin{center} -% \begin{protocol}{2} -% \protocolheader{Title of this protocol}\\ -% \participants{ -% \doesinabox{1st party \\ some more info}}{ -% \doesinabox{2nd party \\ some more info}} -% \doesA{$y := x^2$} -% \AtoB{y} -% \doesB{verify if $y=x^2$} -% \AfromB{\mbox{OK!}} -% \doesA{be happy} -% \end{protocol} -% \end{center} -% \end{minipage} -% -% -%---------------------------------------------------------------------- -% ARROWFILL WITH \textstyle SUPERSCRIPT. -% use in math-mode: -% \sends{a^b} makes a `rightarrowfill' with $a^b$ on top. -% \Sends[n]{a^b} idem but spans n columns -% \receives{a^b}, \Receives[n]{a^b} idem for leftarrowfill -% \exchange{a^b}, \Exchange[n]{a^b} idem for lefrightarrowfill -% -% \bsends (resp., \bSends) and \breceives (resp., \bReceives) produce -% broken-line versions of sends & receives -%---------------------------------------------------------------------- - -\NeedsTeXFormat{LaTeX2e}[1994/06/01] -% This command parses the CVS Date and uses it as the package date -\def\CvsDateToPackage Date: #1/#2/#3 #4:#5:#6 {% - \ProvidesPackage{protocol}[#1/#2/#3 Protocols Style (sirene version)]} -\catcode`\$=9\relax % Now, "$" is ignored -\CvsDateToPackage $Date: 2004/06/27 08:56:50 $ % Here, the CVS Date is parsed and used -\catcode`\$=11\relax % Now "$" is just a normal letter -% Print the CVS Id -\typeout{>>> Protocols Style $Id: protocol.sty,v 1.1 2004/06/27 08:56:50 selhorst Exp $.} -\catcode`\$=3\relax % Now "$" is the math-separator again -\typeout{>>> --- Includes 'boxes.sty'.} - -% shorthand for lowering the arrows -\def\@r@al{\raise\arrowlower} - -% rulefill made up of lowered $-$'s -\def\@lrulefill{\cleaders\hbox{$\mkern-2mu\@r@al\hbox{$-$}\mkern-2mu$}\hfill} - -% broken rulefill made up of lowered $-~$'s -\def\@blrulefill{\cleaders\hbox{$\mkern-2mu\@r@al\hbox{$-~$}\mkern-2mu$}\hfill} - -% end of rule (overlaps with arrowheads): -\def\@lendofrule{\@r@al\hbox{$-$}\mkern-4mu} -\def\@rendofrule{\mkern-4mu\@r@al\hbox{$-$}} - -% ends of arrows: -\def\@rafill{\mkern-6mu\@lrulefill\@rendofrule\@r@al\llap{$\rightarrow$}} -\def\@lafill{\m@th\@r@al\rlap{$\leftarrow$}\@lendofrule\@lrulefill\mkern-6mu} -\def\@rdfill{\mkern-6mu\@lrulefill\@rendofrule} -\def\@ldfill{\m@th\@lendofrule\@lrulefill\mkern-6mu} - -% ends of broken arrows: -\def\@brafill{\mkern-6mu\@blrulefill\@rendofrule\@r@al\llap{$\rightarrow$}} -\def\@blafill{\m@th\@r@al\rlap{$\leftarrow$}\@lendofrule\@blrulefill\mkern-6mu} -\def\@brdfill{\mkern-6mu\@blrulefill\@rendofrule} -\def\@bldfill{\m@th\@lendofrule\@blrulefill\mkern-6mu} - -\newdimen\minarrowwidth \minarrowwidth=0pt -\newdimen\arrowwidth -\newdimen\arrowlower \arrowlower=-4pt - -\def\@showmessage#1{\setbox\@tempboxa\hbox{$#1$} - \ifdim\wd\@tempboxa<\minarrowwidth - \arrowwidth\minarrowwidth - \else - \arrowwidth\wd\@tempboxa - \fi - \hbox{$\m@th\displaystyle\mathop{\hbox to \arrowwidth - {$\m@th\@lrulefill$}}\limits^{\hfill\box\@tempboxa\hfill}$}} - -% for broken arrows -\def\@bshowmessage#1{\setbox\@tempboxa\hbox{$#1$} - \ifdim\wd\@tempboxa<\minarrowwidth - \arrowwidth\minarrowwidth - \else - \arrowwidth\wd\@tempboxa - \fi - \hbox{$\m@th\displaystyle\mathop{\hbox to \arrowwidth - {$\m@th\@blrulefill$}}\limits^{\hfill\box\@tempboxa\hfill}$}} - -\def\sends{\@sends} -\def\Sends[#1]#2{\multispan{#1}$\@sends{#2}$} -\def\@sends#1{\@ldfill\@showmessage{#1}\@rafill} - -% broken send -\def\bsends{\@bsends} -\def\bSends[#1]#2{\multispan{#1}$\@bsends{#2}$} -\def\@bsends#1{\@bldfill\@bshowmessage{#1}\@brafill} - -\def\receives{\@receives} -\def\Receives[#1]#2{\multispan{#1}$\@receives{#2}$} -\def\@receives#1{\@lafill\@showmessage{#1}\@rdfill} - -% broken receive -\def\breceives{\@breceives} -\def\bReceives[#1]#2{\multispan{#1}$\@breceives{#2}$} -\def\@breceives#1{\@blafill\@bshowmessage{#1}\@brdfill} - -\def\exchange{\@exchange} -\def\Exchange[#1]#2{\multispan{#1}$\@exchange{#2}$} -\def\@exchange#1{\@lafill\@showmessage{#1}\@rafill} - -% broken exchange -\def\bexchange{\@bexchange} -\def\bExchange[#1]#2{\multispan{#1}$\@bexchange{#2}$} -\def\@bexchange#1{\@blafill\@bshowmessage{#1}\@brafill} - -%---------------------------------------------------------------------- -% NARROWING COLUMNS -% \narrowcol{ARG} produces ARG centered in an \hbox that is 2em too -% narrow for its contents. ARG is still in math-mode! -% \Narrowcol does the same with the double amount of shrinking. -% \phantomcol does the same with a column of zero width -% BUG: cannot be used for \send and relatives! - -\def\narrowcol#1{\hbox{\hskip-1em$#1$\hskip-1em}} -\def\Narrowcol#1{\hbox{\hskip-2em$#1$\hskip-2em}} -\def\phantomcol#1{\hbox to 0pt{\hss$#1$\hss}} - -%---------------------------------------------------------------------- -% HANDLING OF SUB-PROTOCOL IN ONE PROTOCOL ENVIRONMENT -% If you have several subprotocols and you would like to show them in -% one figure you don't won't several protocol environments as there -% would be no cross-alignment. -% => -% just issue \subprotocolcaption for captions of sub-protocols and -% \newparticipants if the participants change -% if you don't have any action and only short flows this might result -% in badly centered flows. You can remedy that by something along the -% lines of: \receives{\hspace*{7em}\Alf^{N_{n+1}}\hspace*{7em}} -\newcommand{\subprotocolcaption}[1]{% - \\[\baselineskip] - \multicolumn{3}{c}{\parbox{0.8\columnwidth}{\centering{#1}}}% - \\[2\baselineskip]} -\def\newparticipants{% initialize: - \noalign{\vspace{1em}}% - % and call standard participants - \participants} - - -%---------------------------------------------------------------------- -% A PROTOCOL ENVIRONMENT. -% args: #1: number of parties -% essentially, an array with # columns depending on the argument. -% furthermore, a macro \participants with the correct number of args -% is defined. \participants{A}{B}[{C}...] puts A resp. B (and C...) centered -% over columns 1 resp. 3 (resp. 5...) -% \protocolheader{#1} puts #1 in an \hbox centered over the entire -% array. -% -% use: -% \begin{protocol}{2} -% \protocolheader{HEADER}\\ -% \participants{Alice}{Bob}\\ -% y := x^2\\ -% & \sends{y}\\ -% & & \mbox{verify if $y=x^2$}\\ -% & \receives{\mbox{OK!}}\\ -% \mbox{be happy} -% \end{protocol} -% yields: -% HEADER -% -% Alice Bob -% -% y=x^2 -% y -% ------> -% verify if $y=x^2$ -% OK! -% <------ -% be happy -% -\newcount\@ncols \@ncols=3 -\newcount\@nccols \@nccols=1 -\newcount\@nparties \@nparties=2 -\newcount\@npartic - -\def\protocolheader#1{\multicolumn{\the\@ncols}{c}{\hbox{#1}}\\} -\def\participants{% initialize: - \noalign{\global\@npartic\@nparties\gdef\@more{}} - % and do the real stuff: - \@participants} -\def\@participants#1{% print next participant: - \@more\multicolumn{1}{c}{\hbox{#1}} - % next time, first put in &&: - \gdef\@more{&&} - \global\advance\@npartic by \m@ne - % if there's more to do: - \ifnum\@npartic>0 \let\next\@participants - \else\let\next\\\fi\next -} - -\newenvironment{protocol}[1]{% arg: # of parties - \relax\ifnum #1 < 2 - \typeout{Only n-party protocols for n>1 implemented!} - \typeout{I'll assume n=2.} - \@nparties=2 - \else - \@nparties=#1 - \fi - % # of cols = 2 * (# of parties) - 1 - \@ncols = \@nparties - \multiply \@ncols by 2 - \advance \@ncols by -1 - % # of centered cols = 2 * (# of parties) - 3 - \@nccols = \@ncols - \advance \@nccols by -2 - % arrowwidth based on # of columns: - \minarrowwidth = .5\textwidth - \divide\minarrowwidth by \@ncols - % lower all arrows halfway down to baseline: - \setbox\@tempboxa\hbox{$\leftarrow$} - \arrowlower-.5\ht\@tempboxa - $$\begin{array}{r*{\@nccols}{c}l} -}{\end{array}$$} - -\newenvironment{protocolm}[1]{% arg: # of parties - \relax\ifnum #1 < 2 - \typeout{Only n-party protocols for n>1 implemented!} - \typeout{I'll assume n=2.} - \@nparties=2 - \else - \@nparties=#1 - \fi - % # of cols = 2 * (# of parties) - 1 - \@ncols = \@nparties - \multiply \@ncols by 2 - \advance \@ncols by -1 - % # of centered cols = 2 * (# of parties) - 3 - \@nccols = \@ncols - \advance \@nccols by -2 - % arrowwidth based on # of columns: - \minarrowwidth = .5\textwidth - \divide\minarrowwidth by \@ncols - % lower all arrows halfway down to baseline: - \setbox\@tempboxa\hbox{$\leftarrow$} - \arrowlower-.5\ht\@tempboxa - $$\begin{array}{lr*{\@nccols}{c}l} -}{\end{array}$$} - - -% ---------------------------------------------------------------- -% Start of boxes.sty; no changes made to original file -% ---------------------------------------------------------------- -% First version: Matthias Schunter -% Modified by Peter de Rooij: long lines in the boxes now -% not only wrap, but also indent. -% Usages: -% \begin{ocolbox} ... \end{ocolbox} - - -\newcommand{\ind}{\hspace*{1em}} -\newcommand{\noind}{\hspace*{-1em}} - -\newdimen\figurewidth -\figurewidth\textwidth - -\newdimen\ocolboxwidth -\newenvironment{ocolbox}% -{% - \ocolboxwidth=0.95\figurewidth% - \divide\ocolboxwidth by \@ncols% - \colboxwidth=\ocolboxwidth% - \advance\colboxwidth by -1em% - \begin{minipage}[t]{\ocolboxwidth}% - \rightskip=0pt plus 1fil - \parskip=0pt - \everypar{\hangindent 1em \hangafter=1} - \let\\\par -}% -{\end{minipage}} - -\newdimen\colboxwidth -\newenvironment{colbox}% -{% - \advance\colboxwidth by -1em% - \ind\begin{minipage}[t]{\colboxwidth}% - \setlength{\rightskip}{0pt plus 1fil}% - \everypar{\hangindent 1em \hangafter=1}% - \let\\\par -}% -{\end{minipage}\\} - -\newdimen\framewidth -\def\framepage#1{% - \framewidth=\textwidth - \advance\framewidth by -7pt - \advance\framewidth by -\rightmargin - \advance\framewidth by -\leftmargin - \fbox{\begin{minipage}{\framewidth}#1\end{minipage}}% -} - -% ---------------------------------------------------------------- -% End of boxes.sty; no changes made to original file -% ---------------------------------------------------------------- - -% ---------------------------------------------------------------- -% Some macros to make writing protocols a bit easier. -% Michael Waidner (1999/02/13) -% ---------------------------------------------------------------- - -% DRAW A HORIZONTAL LINE IN THE MIDDLE OF A PROTOCOL. -\newcommand{\protocolline}{\protocolheader{\rule{0.9\textwidth}{0.1mm}}} - -% SPECIFY A PARTY'S PROCESSING STEPS. TEXT MODE. ALLOWS LINE -% BREAKS. -\newcommand{\doesAnb}[1]{\doesinabox{#1}} -\newcommand{\doesBnb}[1]{& & \doesinabox{#1}} -\newcommand{\doesCnb}[1]{& & & & \doesinabox{#1} \\} - -\newcommand{\doesA}[1]{\doesinabox{#1} \\} -\newcommand{\doesB}[1]{& & \doesinabox{#1} \\} -\newcommand{\doesC}[1]{& & & & \doesinabox{#1} \\} -\newcommand{\doesinabox}[1]{% - \begin{ocolbox} - \begin{center} - #1 - \end{center} - \end{ocolbox}} - -% SPECIFY WHAT A PARTY SENDS TO ANOTHER PARTY. MATH MODE. NO -% LINE BREAKS. SOLID AND BROKEN ARROWSu. -% -% X<op>Y{<MSG>} Communication of <MSG> between X and -% Y, with (X,Y) from (A,B), (A,C), (B,C). -% <op> is any of {to,bto,from,bfrom,exchange,bexchange}. -% 'to' and from' generate arrows from X to Y and from Y -% to X, respectively. 'bto' and 'bfrom' do the -% same, but with broken arrows. 'exchange' and -% 'bexchange' is the analogous for lines with -% arrowheads on both sides -% A<op>B<op>C{<MSG1>}{<MSG2>} -% As with X<op>Y, but now between three -% parties. The arrows are in the same row. -\newcommand{\AtoB}[1]{& \sends{#1} \\} -\newcommand{\AfromB}[1]{& \receives{#1} \\} -\newcommand{\AexchangeB}[1]{& \exchange{#1} \\} -\newcommand{\AtoC}[1]{& \Sends[3]{#1} \\} -\newcommand{\AfromC}[1]{& \Receives[3]{#1} \\} -\newcommand{\AexchangeC}[1]{& \Exchange[3]{#1} \\} -\newcommand{\BtoC}[1]{& & & \sends{#1} \\} -\newcommand{\BfromC}[1]{& & & \receives{#1} \\} -\newcommand{\BexchangeC}[1]{& & & \exchange{#1} \\} -\newcommand{\AtoBtoC}[2]{& \sends{#1} & & \sends{#2}\\} -\newcommand{\AtoBfromC}[2]{& \sends{#1} & & \receives{#2}\\} -\newcommand{\AfromBtoC}[2]{& \receives{#1} & & \sends{#2}\\} -\newcommand{\AfromBfromC}[2]{& \receives{#1} & & \receives{#2}\\} -\newcommand{\AbtoB}[1]{& \bsends{#1} \\} -\newcommand{\AbfromB}[1]{& \breceives{#1} \\} -\newcommand{\AbexchangeB}[1]{& \bexchange{#1} \\} -\newcommand{\AbtoC}[1]{& \bSends[3]{#1} \\} -\newcommand{\AbfromC}[1]{& \bReceives[3]{#1} \\} -\newcommand{\AbexchangeC}[1]{& \bExchange[3]{#1} \\} -\newcommand{\BbtoC}[1]{& & & \bsends{#1} \\} -\newcommand{\BbfromC}[1]{& & & \breceives{#1} \\} -\newcommand{\BbexchangeC}[1]{& & & \bexchange{#1} \\} -\newcommand{\AbtoBbtoC}[2]{& \bsends{#1} & & \bsends{#2}\\} -\newcommand{\AbtoBbfromC}[2]{& \bsends{#1} & & \breceives{#2}\\} -\newcommand{\AbfromBbtoC}[2]{& \breceives{#1} & & \bsends{#2}\\} -\newcommand{\AbfromBbfromC}[2]{& \breceives{#1} & & \breceives{#2}\\} -\newcommand{\AbtoBtoC}[2]{& \bsends{#1} & & \sends{#2}\\} -\newcommand{\AbtoBfromC}[2]{& \bsends{#1} & & \receives{#2}\\} -\newcommand{\AbfromBtoC}[2]{& \breceives{#1} & & \sends{#2}\\} -\newcommand{\AbfromBfromC}[2]{& \breceives{#1} & & \receives{#2}\\} -\newcommand{\AtoBbtoC}[2]{& \sends{#1} & & \bsends{#2}\\} -\newcommand{\AtoBbfromC}[2]{& \sends{#1} & & \breceives{#2}\\} -\newcommand{\AfromBbtoC}[2]{& \receives{#1} & & \bsends{#2}\\} -\newcommand{\AfromBbfromC}[2]{& \receives{#1} & & \breceives{#2}\\} - -\endinput -% $Log: protocol.sty,v $ -% Revision 1.1 2004/06/27 08:56:50 selhorst -% *** empty log message *** -% -% Revision 2.1 2000/06/27 13:39:37 lina -% * Version upgrade to 2.1 (MSc) -% -% Revision 1.2 2000/03/18 00:43:37 lina -% some small additional macros <steiner@acm.org -% -% Revision 1.1 2000/01/24 16:48:41 lina -% split sirene.sty and moved to separate directory <steiner@acm.org> -% -% Revision 1.4 1999/06/15 12:39:06 lina -% Minor changes (MSc) -% -% Revision 1.3 1999/06/15 12:33:56 lina -% Added cvs-support (MSc) -% -% Pre-CVS History: -% - Modified by Juan Garay to support broken arrows -% - Modified by Mihir Bellare to add a new macro protocolm which -% has an extra left hand side column for flow names. July 7, 1995. -% - Modified by Michael Waidner -% - included old boxes.sty as it is needed for most protocols -% anyway -% - added several macros for easier writing of protocols with 2 or -% 3 parties -- see end of file -%