diff options
author | Karl Berry <karl@freefriends.org> | 2006-01-13 00:00:19 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2006-01-13 00:00:19 +0000 |
commit | eab57a8facc6155cd720075b6da474f5c656dad9 (patch) | |
tree | 71b069ecb3437eeb37ae2ff8772095a64cc28cef /Master/texmf-dist/tex/latex/nassflow/flow.sty | |
parent | cee304b733b97f3e40ce2eba5d01ade4c92fec32 (diff) |
nassflow
git-svn-id: svn://tug.org/texlive/trunk@1127 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/nassflow/flow.sty')
-rw-r--r-- | Master/texmf-dist/tex/latex/nassflow/flow.sty | 373 |
1 files changed, 373 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/latex/nassflow/flow.sty b/Master/texmf-dist/tex/latex/nassflow/flow.sty new file mode 100644 index 00000000000..fa04248d6a6 --- /dev/null +++ b/Master/texmf-dist/tex/latex/nassflow/flow.sty @@ -0,0 +1,373 @@ +% flow.sty 5 september 1989, C.M. Lindhout. +% +% Copyright (C) by CAWCS, Royal Netherlands Navy. +% This program may be freely used and copied but may not be sold +% without the author's written permission. This notice must remain +% in any copy or derivative. +% +% Please send improvements, bug fixes, comments, etc., to +% Marion van Geest, +% CAWCS, +% Royal Netherlands Navy, +% P.O.BOX 10000, +% 1780 CA Den Helder, +% The Netherlands. + +% Modifications. +% -------------- +% Version 2, march 1993, +% 1) Error in empty \THEN in \IF statement corrected +% 2) \tenrm for typesetting second parameter in \STRUCT replaced by \rm\small. +% The reason for using \tenrm in the first place, was that originally +% flow.sty was designed to be used with a very specific documentstyle that +% was always typeset in 11pts. When flow.sty was adapted for more general +% use, this \tenrm was forgotten. \rm\small serves the same purpose in our +% document style, but is generally a better solution. + +\ProvidesPackage{flow}[1989/09/05 v2.0 Flow macro's.] +% +\newdimen\unitwidth% +\unitwidth=60pt% +\newbox\thentext% +\newbox\elsetext% +\newbox\savethentext% +\newbox\saveelsetext% +\newdimen\unitheight% +\newdimen\unitysize% +\newdimen\unitxsize% +\newdimen\unitspace% +\newdimen\wa% +\newdimen\ha% +\newdimen\wb% +\newdimen\hb% +\newdimen\wda% +\newdimen\hta% +\newdimen\wdb% +\newdimen\htb% +% +\def\setiftext#1#2{\setbox\thentext=\hbox{#1}\setbox\elsetext=\hbox{#2}}% +\setiftext{}{}% +% +\def\cvline#1{% + \hbox{\kern.5\unitwidth\rule{0.0067in}{#1}}% +}% +% +\def\chline#1{% + \hbox{% + \raise.5\unitheight% + \hbox to #1{\leaders\hrule height0.0067in\hfill}% + }% +}% +% +\def\VCENTER#1{% + \raise.5\unitspace% + \hbox{#1}% + \rule{0pt}{\unitheight}% +}% +% +\def\makepicture#1{% + \ifvmode% + \cvline{.5\unitspace} + \hbox to \unitwidth{\hfil\hbox{#1}\hfil}% + \cvline{.5\unitspace} + \else% + \chline{.5\unitspace}% + \VCENTER{#1}% + \chline{.5\unitspace}% + \fi% +}% +% +\def\ACTION#1{\makepicture{\makeaction{#1}}}% +% +\def\makeaction#1{% + \wa=0.86\unitwidth% + \begin{picture}(90,60)% + \put(00,00){\line( 0, 1){60}}% + \put(90,00){\line( 0, 1){60}}% + \put(00,00){\line( 1, 0){90}}% + \put(00,60){\line( 1, 0){90}}% + \put(02,00){% + \vbox to \unitysize{% + \vfil% + \parbox{\wa}{\raggedright#1}% + \vfil% + }% + }% + \end{picture}% +}% +% +\def\PROC#1#2{\makepicture{\makeproc{#1}{#2}}}% +% +\def\makeproc#1#2{% + \wa=.76\unitwidth% + \wb=.80\unitwidth% + \ha=.56\unitwidth% + \begin{picture}(90,60) + \put(00,00){\line( 0, 1){60}} + \put(05,00){\line( 0, 1){60}} + \put(85,00){\line( 0, 1){60}} + \put(90,00){\line( 0, 1){60}} + \put(00,00){\line( 1, 0){90}} + \put(00,60){\line( 1, 0){90}} + \put(07,02){% + \vbox to \ha{% + \vfil% + \parbox{\wa}{\raggedright#2}% + \vfil% + \vbox to 2ex{}% + }% + }% + \put(05,02){% + \vbox to 2ex{% + \hbox to \wb{\leaders\hrule height0.0067in\hfill}% + \vfil% + \hbox to \wb{\hfil#1\hfil}% + }% + }% + \end{picture}% +}% +% +\def\LABEL#1{\makepicture{\makelabel{#1}}}% +% +\def\makelabel#1{% + \begin{picture}(30,30) + \put(15,15){\circle{30}} + \put(00,00){\makebox(30,30){#1}} + \end{picture}% +}% +% +\def\makeif#1{% + \wa=\unitxsize% + \advance\wa by -2ex% + \wb=\unitxsize% + \advance\wb by -6ex% + \begin{picture}(90,60) + \put(00,30){\line( 3, 2){45}} + \put(45,60){\line( 3,-2){45}} + \put(90,30){\line(-3,-2){45}} + \put(45,00){\line(-3, 2){45}} + \put(90,33){\hbox to 0pt{\copy\elsetext\hss}} + \put(00,00){\vbox to 0pt{\hbox to 43\unitlength{\hfil\copy\thentext}\vss}} + \put(00,30){% + \parbox{\unitxsize}{% + \parshape=3 3ex\wb 1ex\wa 3ex\wb% + \begin{center}% + #1% + \end{center}% + }% + }% + \end{picture}% +}% +% +\def\IF#1\THEN#2\ELSE#3\ENDIF{% + \setbox0=\vbox{#2}% + \setbox1=\vbox{#3}% + \wda=\wd0% + \hta=\ht0% + \wdb=\wd1% + \htb=\ht1% + \hbox{% + \vbox{% + \makepicture{\makeif{#1}}% + }% + \kern-.5\unitspace\chline{.5\unitspace}% + \ifdim\wda=0pt% + \wa=.5\unitwidth% + \advance\wa by 0.0067in% + \else% + \wa=\wda% + \fi% + \ifdim\wdb=0pt% + \advance\wa by -\unitwidth% + \advance\wa by .5\unitspace% + \else% + \advance\wa by -.5\unitwidth% + \fi% + \chline{\wa}% + \rule{0.0067in}{.5\unitheight}% + }% + \hbox{% + \vbox{% + \ifdim\htb>\hta% + \hb=\htb% + \advance\hb by -\hta% + \cvline{\hb}% + \fi% + \box0% + }% + \ifdim\wdb=0pt% + \hbox{% + \kern.5\unitspace% + \rule{0.0067in}{\hta}% + \kern.5\unitspace% + }% + \else% + \vbox{% + \ifdim\hta>\htb% + \ha=\hta% + \advance\ha by -\htb% + \cvline{\ha}% + \fi% + \box1% + }% + \fi% + }% + \kern -0.0067in% + \hbox{% + \kern.5\unitwidth% + \ifdim\wda=0pt% + \wa=.5\unitwidth% + \advance\wa by .0067in% + \else + \wa=\wda% + \fi% + \ifdim\wdb=0pt% + \advance\wa by -.5\unitwidth% + \advance\wa by .5\unitspace% + \fi% + \rule{\wa}{0.0067in}% + }% +}% +% +\def\WHILE#1#2\ENDWHILE{% + \IF{#1}% + \THEN{% + \setbox\savethentext=\copy\thentext% + \setbox\saveelsetext=\copy\elsetext% + \setbox\elsetext=\copy\savethentext% + \setbox\thentext=\copy\saveelsetext% + \ifdim\wd\thentext=0pt% + \ifdim\wd\elsetext=0pt% + \setiftext{n}{y}% + \fi% + \fi% + \REPEAT{% + \setbox\thentext=\copy\savethentext% + \setbox\elsetext=\copy\saveelsetext% + #2% + }% + \UNTIL{#1}% + }% + \ELSE{}% + \ENDIF% +}% +% +\def\REPEAT#1\UNTIL#2{% + \setbox0=\vbox{#1}% + \wda=\wd0% + \hta=\ht0% + \hbox{% + \kern.5\unitwidth% + \ifdim\wda=0pt% + \wa=\unitwidth% + \else% + \wa=\wda% + \fi% + \advance\wa by -.5\unitwidth% + \advance\wa by .5\unitspace% + \rule{\wa}{0.0067in}% + }% + \kern -0.0067in% + \hbox{% + \box0% + \kern.5\unitspace% + \rule{0.0067in}{\hta}% + \kern.5\unitspace% + }% + \hbox{% + \vbox{% + \makepicture{\makeif{#2}}% + }% + \kern-.5\unitspace\chline{.5\unitspace}% + \ifdim\wda=0pt% + \wa=\unitwidth% + \else% + \wa=\wda% + \fi% + \advance\wa by -\unitwidth% + \advance\wa by .5\unitspace% + \chline{\wa}% + \rule[.5\unitheight]{0.0067in}{.5\unitheight}% + }% +}% +% +\def\WHEN#1#2{% + \hbox{% + \vbox{% + \hbox{% + \kern.5\unitspace% + \parbox{\unitxsize}{\raggedright#1}% + }% + \kern.5\unitspace% + \chline{\unitwidth}% + }% + {#2}% + \chline{.5\unitspace}% + }% +}% +% +\def\CASE#1#2\ENDCASE{% + \setbox0=\vbox{#2}% + \wda=\wd0% + \hta=\ht0% + \setbox\savethentext=\copy\thentext% + \setbox\saveelsetext=\copy\elsetext% + \setiftext{}{}% + \makepicture{\makeif{#1}}% + \setbox\thentext=\copy\savethentext% + \setbox\elsetext=\copy\saveelsetext% + \hbox{% + \cvline{\hta}% + \vbox{% + \box0% + \kern-0.0067in% + \hbox to \wda{\leaders\hrule height0.0067in\hfill}% + }% + \ha=\hta% + \advance\ha by -.5\unitheight% + \rule{0.0067in}{\ha}% + \kern.5\unitspace% + }% +}% +% +\def\STRUCT#1#2#3{% + \vbox{% + \unitheight=0.7\unitwidth% + \unitysize=0.6\unitwidth% + \unitxsize=0.9\unitwidth% + \unitspace=0.1\unitwidth% + \unitlength=0.01\unitwidth% + \baselineskip=0pt% + \lineskip=0pt% + \parindent=0pt% + \parskip=0pt% + \linethickness{0.0067in}% + \hbox{% + \hbox to .5\unitspace{}% + \hbox{% + \begin{picture}(90,50) + \put(45,15){\oval(90,30)} + \put(00,00){\makebox(90,30){#1}} + \end{picture}% + \hbox to .5\unitwidth{}% + \wa=\textwidth% + \advance\wa by -1.5\unitwidth% + \raise\unitspace% + \hbox{\rm\small\parbox{\wa}{#2}}% + }% + }% + \cvline{.5\unitspace}% + {#3}% + \cvline{.5\unitspace}% + \hbox{% + \hbox to .5\unitspace{}% + \hbox{% + \begin{picture}(90,30) + \put(45,15){\oval(90,30)} + \put(00,00){\makebox(90,30){return}} + \end{picture}% + }% + }% + }% +}% +\endinput
\ No newline at end of file |