%%
%% This is file `struktex.sty',
%% generated with the docstrip utility.
%%
%% The original source files were:
%%
%% struktex.dtx  (with options: `struktex')
%% 
%% Copyright (C) 1989-2006 by Jobst Hoffmann.  All rights reserved.
%% 
%% IMPORTANT COPYRIGHT NOTICE:
%% 
%% No other permissions to copy or distribute this file in any form
%% are granted and in particular NO PERMISSION to modify its contents.
%% 
%% You are NOT ALLOWED to change this file.
%% 
%% Please address error reports and any problems in case of UNCHANGED versions
%% to
%%         j.hoffmann@fh-aachen.de
\NeedsTeXFormat{LaTeX2e}[1999/12/01]
\def\filedate{2006/08/20}
\def\fileversion{v8.3b}
\ProvidesPackage{struktex}
   [\filedate\space\fileversion\space Nassi Shneidermann Charts (Jobst Hoffmann)]
%%
\@ifundefined{StrukTeX}{}{\endinput}
\RequirePackage{ifthen}
\RequirePackage{struktxf}
\RequirePackage{struktxp}
\newboolean{curves}
\newboolean{emlines}
\newboolean{pictIIe}
\newboolean{anygradient}
\DeclareOption{curves}%
{%
    \setboolean{anygradient}{true}
    \setboolean{curves}{true}
    \setboolean{emlines}{false}
    \setboolean{pictIIe}{false}
}
\DeclareOption{emlines}%
{%
    \setboolean{anygradient}{true}
    \setboolean{curves}{false}
    \setboolean{emlines}{true}
    \setboolean{pictIIe}{false}
}
\DeclareOption{pict2e}%
{%
    \setboolean{anygradient}{true}
    \setboolean{curves}{false}
    \setboolean{emlines}{false}
    \setboolean{pictIIe}{true}
}
\newboolean{verification}
\DeclareOption{verification}%
{%
    \setboolean{verification}{true}
}
\newboolean{filler}
\setboolean{filler}{true}
\DeclareOption{nofiller}%
{%
    \setboolean{filler}{false}
}
\let\ifdraft@nss\iffalse
\let\iffinal@nss\iftrue
\DeclareOption{draft}%
{%
  \let\ifdraft@nss\iftrue
  \let\iffinal@nss\iffalse
}
\DeclareOption{final}%
{%
  \let\ifdraft@nss\iffalse
  \let\iffinal@nss\iftrue
}
\ProcessOptions
\ifcurves%
    \RequirePackage{curves}
\else\ifemlines
    \RequirePackage{emlines2}
\else\ifpictIIe
    \RequirePackage{pict2e}
\fi\fi\fi
\def\StrukTeX{S\kern-.05emt\kern-.05em\raise.5ex\hbox{r}%
              \kern-.1667emu\kern-.05em\lower.5ex\hbox{k}%
              \kern-.2emT\kern-.1667em\lower.7ex\hbox{E}\kern-.125emX}
\newdimen\savelength@nss
\newcount\gx@nss \newcount\gy@nss \newcount\gsize@nss
\countdef\param@nss=199
\countdef\x@nss=220     \countdef\y@nss=221      \countdef\xsize@nss=222
\countdef\ydepth@nss=223
\countdef\xx@nss=224    \countdef\yy@nss=225
\countdef\tempx@nss=226 \countdef\tempxx@nss=227
\countdef\tempy@nss=229 \countdef\tempyy@nss=230
\ifpictIIe%
     \countdef\tempxxx@nss=228  \countdef\tempyyy@nss=231
\fi
\newbox\TextBox@nss \newdimen\TextBoxHt@nss
\DeclareMathSymbol\varnothing{\mathord}{AMSb}{"3F}
\let\emptyset\varnothing
\def\filler@nss%
{%
    \iffiller\ensuremath{\emptyset}\fi%
}
\def\c@nter@nss%
{%
    \leftskip=0pt plus 2em \rightskip=\leftskip \parfillskip=0pt
    \spaceskip=.333em \xspaceskip=.5em
    \pretolerance=9999 \tolerance=9999
    \hyphenpenalty=9999 \exhyphenpenalty=9999%
}
\def\Position@nss{}%
\newcommand{\PositionNSS}[1]%
{%
    \def\Position@nss{#1}%
}
\def\struktogramm(#1,#2)%
{%
    \let\ifthenelse=\ifthenelse@nss%
    \let\ifend=\ifend@nss%
    \ifdraft@nss\let\struktogramm@nss=\struktogramm@Proof\fi%
    \@ifnextchar [{\struktogramm@nss(#1,#2)}{\struktogramm@nss(#1,#2)[]}%
}
\def\endstruktogramm%
{%
            \endstr@kt%
        \end{picture}%
    \end{minipage}%
    \setlength{\unitlength}{\savelength@nss}%
}
\def\struktogramm@NoProof(#1,#2)[#3]%
{%
    \def\next{#3}
    \setlength{\savelength@nss}{\unitlength}
    \setlength{\unitlength}{0.001mm}
    \begin{minipage}[\Position@nss]{#1mm}
        \ifx\next\empty\else #3\\[\smallskipamount]\fi%
        \begin{picture}(#1000,#2000)%
            \str@kt{0}{#2000}{#1000}%
}
\def\struktogramm@Proof(#1,#2)[#3]%
{%
    \def\next{#3}%
    \setlength{\savelength@nss}{\unitlength}%
    \setlength{\unitlength}{0.001mm}%
    \begin{minipage}[\Position@nss]{#1mm}%
        \ifx\next\empty\else #3\\[\smallskipamount]\fi%
        \begin{picture}(#1000,#2000)%
            \put(0,0){\makebox(0,0)[cc]{$\bullet$}}%
            \put(0,#2000){\makebox(0,0)[cc]{$\bullet$}}%
            \put(#1000,0){\makebox(0,0)[cc]{$\bullet$}}%
            \put(#1000,#2000){\makebox(0,0)[cc]{$\bullet$}}%
            \str@kt{0}{#2000}{#1000}%
}
\def\sProofOn%
{%
    \let\struktogramm@nss=\struktogramm@Proof%
}
\def\sProofOff%
{%
    \let\struktogramm@nss=\struktogramm@NoProof%
}
\let\struktogramm@nss=\struktogramm@NoProof%
\def\openstrukt#1#2%
{%
    \setlength{\savelength@nss}{\unitlength}
    \setlength{\unitlength}{0.001mm}
    \begin{picture}(#1000,#2000)
        \str@kt{0}{#2000}{#1000}%
}
\def\closestrukt%
{%
        \endstr@kt
    \end{picture}
    \setlength{\unitlength}{\savelength@nss}%
}
\def\getoption{\@ifnextchar [{\getnum}{\param@nss=0\next}}
\def\getnum[#1]{\param@nss=#1\next}
\def\str@kt#1#2#3%
{%
    \global\gx@nss=#1\global\gy@nss=#2\global\gsize@nss=#3%
    \begingroup%
        \x@nss=\gx@nss\y@nss=\gy@nss\xsize@nss=\gsize@nss%
}
\def\endstr@kt%
{%
        \global\gy@nss=\y@nss%
    \endgroup%
    \ydepth@nss=\gy@nss%
}
\def\set@nss#1#2%
{%
    \setbox\TextBox@nss=\hbox{#1}%
    \tempxx@nss=\xsize@nss\advance\tempxx@nss by-#2%
    \ifdim\wd\TextBox@nss>\tempxx@nss\unitlength%
        \setbox\TextBox@nss=\vbox{\hsize=\tempxx@nss\unitlength\noindent#1}%
    \fi%
}
\def\block@nss#1#2%
{%
    \tempy@nss=#1\TextBoxHt@nss=\ht\TextBox@nss%
    \advance\TextBoxHt@nss by\dp\TextBox@nss%
    \advance\TextBoxHt@nss by 2mm%
    \ifdim\TextBoxHt@nss<\tempy@nss\unitlength%
        \TextBoxHt@nss=\tempy@nss\unitlength%
    \fi%
    \TextBoxHt@nss=0.00536\TextBoxHt@nss%
    \ydepth@nss=\TextBoxHt@nss\advance\y@nss by-\ydepth@nss%
    \ifx#21%
        \put(\x@nss,\y@nss)%
        {%
            \framebox(\xsize@nss,\ydepth@nss){\box\TextBox@nss}%
        }%
    \else%
        \ifx#20%
            \put(\x@nss,\y@nss)%
            {%
                \makebox(\xsize@nss,\ydepth@nss){\box\TextBox@nss}%
            }%
        \else%
            \advance\y@nss by \ydepth@nss%
        \fi%
    \fi%
}
\def\declarationtitle{\ifnum\language=\languageNGerman Speicherplatz bereitstellen:
                      \else providing memory space\fi}
\newlength{\descriptionindent} \setlength{\descriptionindent}{1.5em}
\newlength{\descriptionwidth}  \setlength{\descriptionwidth}{40pt}
\newlength{\descriptionsep}    \setlength{\descriptionsep}{\tabcolsep}
\newlength{\descriptionwidth@nss}
\newcommand{\descriptionlabel@nss}[1]%
{%
    \settowidth{\descriptionwidth@nss}{#1}%
    \ifnum\descriptionwidth@nss>\descriptionwidth%  % term > labelwidth
        \parbox[b]{\descriptionwidth}%
        {%
            \makebox[0pt][l]{#1}\\%
        }%
    \else%                                      % term < labelwidth
        #1%
    \fi%
    \hfil\relax%
}
\newenvironment{declaration}[1][\declarationtitle]%
{%
    \def\next{#1}%
    \ifx\next\empty\else #1\\\fi
    \let\description=\description@nss
    \tempxx@nss=\xsize@nss\advance\tempxx@nss by -\tempx@nss%
    \begin{minipage}[t]{\tempxx@nss\unitlength}
    \begin{list}{}%
    {%
        \renewcommand{\makelabel}{\descriptionlabel@nss}%
        \setlength{\labelwidth}{\descriptionwidth}%
        \setlength{\itemsep}{0pt} \setlength{\topsep}{0pt}%
        \setlength{\parsep}{0pt} \setlength{\partopsep}{0pt}
        \setlength{\leftmargin}{\descriptionwidth}%
        \addtolength{\leftmargin}{\descriptionsep}%
        \addtolength{\leftmargin}{\descriptionindent}%
    }%
}%
{%
    \end{list}%
    \end{minipage}
}
\newcommand{\description@nss}[2]{\item[#1] \{#2\}}
\def\assign{\let\next=\@assign\getoption}%
\def\@assign#1%
{%
    \tempx@nss=\xsize@nss\divide\tempx@nss by 6%
    \set@nss{#1}{\tempx@nss}\tempy@nss=\number\param@nss000%
    \block@nss{\tempy@nss}{1}%
}
\def\sub{\let\next=\@sub\getoption}
\def\@sub#1%
{%
    \@assign{#1}\tempx@nss=\xsize@nss\divide\tempx@nss by 20%
    \tempxx@nss=\x@nss\advance\tempxx@nss by \tempx@nss%
    \put(\tempxx@nss,\y@nss){\line(0,1){\ydepth@nss}}%
    \tempxx@nss=\x@nss\advance\tempxx@nss by \xsize@nss%
    \advance\tempxx@nss by -\tempx@nss%
    \put(\tempxx@nss,\y@nss){\line(0,1){\ydepth@nss}}%
}
\def\exit{\let\next=\@exit\getoption}
\def\@exit#1%
{%
    \tempx@nss=\xsize@nss\divide\tempx@nss by 6%
    \set@nss{#1}{\tempx@nss}%
    \tempy@nss=\number\param@nss000%
    \block@nss{\tempy@nss}{1}%
    \divide\ydepth@nss by 2%
    \advance\y@nss by \ydepth@nss%
    \ifnum\ydepth@nss<3500%
    {%
       \multiply\ydepth@nss by 2%
       \put(\x@nss,\y@nss){\line(2,1){\ydepth@nss}}%
       \put(\x@nss,\y@nss){\line(2,-1){\ydepth@nss}}%
    }%
    \else%
       \put(\x@nss,\y@nss){\line(1,1){\ydepth@nss}}%
       \put(\x@nss,\y@nss){\line(1,-1){\ydepth@nss}}%
    \fi%
    \advance\y@nss by-\ydepth@nss%
}
\def\return{\let\next=\@return\getoption}
\def\@return#1%
{%
    \tempy@nss=\number\param@nss000%
    \ifnum\tempy@nss<7000 \tempy@nss=7000 \fi%
    \set@nss{#1}{\tempy@nss} \block@nss{\tempy@nss}{1}%
    \divide\ydepth@nss by 2%
    \advance\y@nss by \ydepth@nss%
    \put(\x@nss,\y@nss){\line(1,1){\ydepth@nss}}%
    \put(\x@nss,\y@nss){\line(1,-1){\ydepth@nss}}%
    \tempx@nss=\x@nss\advance\tempx@nss by \xsize@nss%
    \put(\tempx@nss,\y@nss){\line(-1,1){\ydepth@nss}}%
    \put(\tempx@nss,\y@nss){\line(-1,-1){\ydepth@nss}}%
    \advance\y@nss by-\ydepth@nss%
}
\countdef\condindent@nss=232 \countdef\index@nss=233%
\newdimen\indentmeasure@nss \newdimen\indentmeasureright@nss
\newdimen\thisindent@nss \newdimen\thisindentright@nss
\newdimen\thislength@nss
\countdef\gindhelp@nss=234
\def\ifthenelse@nss{\let\next=\@ifthenelse@nss\getoption}
\def\@ifthenelse@nss#1#2#3#4#5%
{%
    %\ifthenelse{\boolean{anygradient}}%
    %{%
    \ifanygradient
        \xx@nss=#1 \advance\xx@nss by #2%
        \ifnum\number\param@nss000>0%
            \tempyy@nss=\number\param@nss000%
            \tempx@nss=\xsize@nss%
            \multiply\tempx@nss by #1 \divide\tempx@nss by \xx@nss%
            \tempxx@nss=\xsize@nss%
            \multiply\tempxx@nss by #2 \divide\tempxx@nss by \xx@nss%
        \else%
            \tempyy@nss=\xsize@nss \divide\tempyy@nss by \xx@nss%
            \tempx@nss=\tempyy@nss \multiply\tempx@nss by #1%
            \tempxx@nss=\tempyy@nss \multiply\tempxx@nss by #2%
        \fi%
        \xx@nss=\tempx@nss \advance\xx@nss by \x@nss%
        \tempy@nss=\y@nss \advance\tempy@nss by -\tempyy@nss%
        \ifemlines%
            \emline{\x@nss}{\y@nss}{}{\xx@nss}{\tempy@nss}{}%
        \else\ifcurves%
            \curve(\x@nss, \y@nss, \xx@nss, \tempy@nss)%
        \else\ifpictIIe%
            \tempyyy@nss=\tempyy@nss
            \divide\tempyyy@nss by 1000
            \tempxxx@nss=\tempx@nss
            \divide\tempxxx@nss by 1000
            \put(\x@nss,\y@nss){\line(\tempxxx@nss, -\tempyyy@nss){\tempx@nss}}
        \fi\fi\fi%
        \advance\x@nss by \xsize@nss%
        \ifemlines%
            \emline{\x@nss}{\y@nss}{}{\xx@nss}{\tempy@nss}{}%
        \else\ifcurves%
            \curve(\x@nss, \y@nss, \xx@nss, \tempy@nss)
        \else\ifpictIIe%
            \tempxxx@nss=\tempxx@nss
            \divide\tempxxx@nss by 1000
            \put(\x@nss,\y@nss){\line(-\tempxxx@nss, -\tempyyy@nss){\tempxx@nss}}
        \fi\fi\fi%
     \advance\x@nss by -\xsize@nss \advance\y@nss by -\tempyy@nss%
    \tempy@nss=\tempyy@nss\divide\tempy@nss by 5000%
    \ifnum\tempy@nss<1 \tempy@nss=1\fi%
    \indentmeasure@nss=\xsize@nss\unitlength%
    \gindhelp@nss=#1\advance\gindhelp@nss by #2%
    \divide\indentmeasure@nss by \gindhelp@nss%
    \indentmeasureright@nss = \indentmeasure@nss%
    \multiply\indentmeasure@nss by #1%
    \multiply\indentmeasureright@nss by #2%
    \divide\indentmeasure@nss by \tempyy@nss%
    \divide\indentmeasureright@nss by \tempyy@nss%
    \phantom{\vbox{\hsize=0pt\global\gindhelp@nss=\the\baselineskip}}%
    \multiply\gindhelp@nss by 360%
    \multiply\indentmeasure@nss by \gindhelp@nss%
    \multiply\indentmeasureright@nss by \gindhelp@nss%
    \xdef\shape{}\index@nss=0%
    \loop%
        \advance\index@nss by 1% %Zahl der Zeile
        \thisindent@nss=\indentmeasure@nss%
        \multiply\thisindent@nss by \index@nss%
        \advance\thisindent@nss by 0.175cm%
        \xdef\shape{\shape\the\thisindent@nss}%
        \thisindentright@nss=\indentmeasureright@nss%
        \multiply\thisindentright@nss by \index@nss%
        \advance\thisindentright@nss by 0.175cm%
        \thislength@nss=\xsize@nss\unitlength%
        \advance\thislength@nss by -\thisindent@nss
        \advance\thislength@nss by -\thisindentright@nss
        \xdef\shape{\shape\the\thislength@nss}%
        \ifnum\index@nss<\tempy@nss%
    \repeat%
    %}%
    %{%
\else
    \ifnum\number\param@nss000>0%
        \typeout{struktex warning:}%
        \typeout{[...] not supplied without curves, emlines2, or pict2e}%
    \fi%
    \tempx@nss=#1 \advance\tempx@nss by #2%
    \tempyy@nss=\xsize@nss \divide\tempyy@nss by \tempx@nss%
    \tempx@nss=\tempyy@nss \multiply\tempx@nss by #1%
    \put(\x@nss,\y@nss){\line(#1,-1){\tempx@nss}}%
    \tempxx@nss=\tempyy@nss \multiply\tempxx@nss by #2%
    \advance\x@nss by \xsize@nss%
    \put(\x@nss,\y@nss){\line(-#2,-1){\tempxx@nss}}%
    \advance\x@nss by -\xsize@nss \advance\y@nss by -\tempyy@nss%
    \tempy@nss=\tempyy@nss\divide\tempy@nss by 5000%
    \ifnum\tempy@nss<1 \tempy@nss=1\fi%
    \xdef\shape{}\index@nss=0%
    \loop%
        \advance\index@nss by 1%
        \condindent@nss=#1\multiply\condindent@nss by\index@nss%
        \multiply\condindent@nss by 5000%
        \xdef\shape{\shape\the\condindent@nss\unitlength}%
        \condindent@nss=#1\advance\condindent@nss by #2%
        \multiply\condindent@nss by\index@nss%
        \multiply\condindent@nss by -5000%
        \advance\condindent@nss by \xsize@nss%
        \xdef\shape{\shape\the\condindent@nss\unitlength}%
        \ifnum\index@nss<\tempy@nss%
    \repeat%
    %}%
    \fi
    \put(\x@nss,\y@nss)%
    {%
        \framebox(\xsize@nss,\tempyy@nss)[tl]%
        {%
            \vbox%
            {%
                \hsize=\xsize@nss\unitlength%
                \parshape=\tempy@nss \shape \c@nter@nss%
                                                 %dies sorgt f"ur den Einzug
                \noindent\vrule width0pt height12pt \relax #3%
                                              %hier wird der Text ausgegeben
            }%
        }%
    }%
    \divide\tempyy@nss by 2%
    \xx@nss=\xsize@nss\advance\xx@nss by-\tempx@nss%
    \advance\xx@nss by-\tempxx@nss%
    \ifodd\xx@nss\advance\tempxx@nss by 1\fi%
    \divide\xx@nss by 2\advance\tempxx@nss by \xx@nss%
    \advance\tempx@nss by \xx@nss%
    \put(\x@nss,\y@nss){\makebox(\tempx@nss,\tempyy@nss){#4}}%
    \xx@nss=\x@nss\advance\xx@nss by \tempx@nss%
    \put(\xx@nss,\y@nss){\makebox(\tempxx@nss,\tempyy@nss){#5}}%
    \str@kt{\x@nss}{\y@nss}{\tempx@nss}%
}
\def\change%
{%
    \endstr@kt\str@kt{\xx@nss}{\y@nss}{\tempxx@nss}%
}
\def\ifend@nss%
{%
    \global\gy@nss=\y@nss\endgroup\tempy@nss=\gy@nss%
    \ifnum\tempy@nss<\ydepth@nss%
        \y@nss=\tempy@nss\advance\ydepth@nss by-\tempy@nss%
        \put(\x@nss,\y@nss)%
        {%
            \framebox(\tempx@nss,\ydepth@nss)%
            {%
                \ifnum\ydepth@nss>5000\filler@nss\fi%
            }%
        }%
    \else%
        \ifnum\tempy@nss>\ydepth@nss%
            \y@nss=\ydepth@nss\advance\tempy@nss by-\ydepth@nss%
            \put(\xx@nss,\y@nss)%
            {%
                \framebox(\tempxx@nss,\tempy@nss)%
                {%
                    \ifnum\tempy@nss>5000\filler@nss\fi%
                }%
            }%
        \else%
            \y@nss=\ydepth@nss%
        \fi%
    \fi%
}
\def\forever{\let\next=\@forever\getoption}
\def\@forever{
    \tempx@nss=\xsize@nss
    \divide\tempx@nss by 6
    \set@nss{\mbox{\rule{0mm}{3ex}}}{\tempx@nss}
    \tempy@nss=\number\param@nss000
    \block@nss{\tempy@nss}{2}
    \advance\x@nss by \ydepth@nss
    \advance\y@nss by -\ydepth@nss
    \tempxx@nss=\xsize@nss
    \advance\tempxx@nss by -\ydepth@nss
    \tempy@nss=\ydepth@nss
    \str@kt{\x@nss}{\y@nss}{\tempxx@nss}
}
\def\foreverend{
    \endstr@kt
    \advance\x@nss by-\tempy@nss
    \advance\ydepth@nss by -\tempy@nss
    \tempyy@nss=\ydepth@nss
    \ydepth@nss=-\ydepth@nss
    \advance\ydepth@nss by \y@nss
    \advance\ydepth@nss by \tempy@nss
    \y@nss=\tempyy@nss
    \put(\x@nss,\y@nss){\framebox(\xsize@nss,\ydepth@nss){}}
    \put(\x@nss,\y@nss){\makebox(\xsize@nss,\tempy@nss){\box\TextBox@nss}}
}
\let\dfr\forever
\let\dfrend\foreverend
\def\while{\let\next=\@while\getoption}
\def\@while#1{\tempx@nss=\xsize@nss\divide\tempx@nss by 6
    \set@nss{#1\hskip\xsize@nss\unitlength}{\tempx@nss}
    \tempy@nss=\number\param@nss000 \block@nss{\tempy@nss}{0}
    \tempy@nss=\y@nss\advance\y@nss by \ydepth@nss
    \tempx@nss=\x@nss\advance\tempx@nss by \ydepth@nss
    \tempxx@nss=\xsize@nss\advance\tempxx@nss by -\ydepth@nss
    \str@kt{\tempx@nss}{\tempy@nss}{\tempxx@nss} }
\def\whileend{\endstr@kt\tempy@nss=\y@nss\advance\tempy@nss by-\ydepth@nss
    \y@nss=\ydepth@nss
    \put(\x@nss,\y@nss){\framebox(\xsize@nss,\tempy@nss){}} }
\def\until{\let\next=\@until\getoption}
\def\@until#1{\tempx@nss=\xsize@nss\divide\tempx@nss by 6
    \set@nss{#1\hskip\xsize@nss\unitlength}{\tempx@nss}
    \tempy@nss=\number\param@nss000 \block@nss{\tempy@nss}{2}
    \advance\x@nss by \ydepth@nss\tempxx@nss=\xsize@nss
    \advance\tempxx@nss by -\ydepth@nss \tempy@nss=\ydepth@nss
    \str@kt{\x@nss}{\y@nss}{\tempxx@nss} }
\def\untilend{\endstr@kt\advance\x@nss by-\tempy@nss
    \advance\ydepth@nss by -\tempy@nss
    \tempyy@nss=\ydepth@nss\ydepth@nss=-\ydepth@nss%
    \advance\ydepth@nss by \y@nss
    \y@nss=\tempyy@nss
    \put(\x@nss,\y@nss){\framebox(\xsize@nss,\ydepth@nss){}}
    \put(\x@nss,\y@nss){\makebox(\xsize@nss,\tempy@nss)
    {\box\TextBox@nss}}}
\def\case{\let\next=\@case\getoption}
\def\@case#1#2#3#4%
{
    \tempxx@nss=\number#2
    \ifanygradient%
    %{%
        \ifnum\number\param@nss000>0
            \tempyy@nss=\number\param@nss000%
            \ifodd\number#1
                \advance\tempxx@nss by -1
            \fi
        \else
            \tempyy@nss=\xsize@nss
            \divide\tempyy@nss by #1
        \fi
        \ifnum\number#2=\tempxx@nss
            \xx@nss=\x@nss \advance\xx@nss by \xsize@nss
            \tempy@nss=\y@nss \advance\tempy@nss by -\tempyy@nss
            \ifemlines%
                \emline{\x@nss}{\y@nss}{}{\xx@nss}{\tempy@nss}{}%
            \else\ifcurves%
                \curve(\x@nss, \y@nss, \xx@nss, \tempy@nss)%
            \else\ifpictIIe%
                \tempxxx@nss=\xx@nss
                \advance\tempxxx@nss by -\x@nss
                \divide\tempxxx@nss by 1000
                \tempyyy@nss=\tempy@nss
                \advance\tempyyy@nss by -\y@nss
                \divide\tempyyy@nss by 1000
                \advance\xx@nss by -\x@nss
                \put(\x@nss,\y@nss){\line(\tempxxx@nss, \tempyyy@nss){\xx@nss}}
            \fi\fi\fi%
        \else
            \tempx@nss=\xsize@nss
            \multiply\tempx@nss by \tempxx@nss \divide\tempx@nss by #2
            \xx@nss=\x@nss \advance\xx@nss by \tempx@nss
            \tempy@nss=\y@nss \advance\tempy@nss by -\tempyy@nss
            \ifemlines%
                \emline{\x@nss}{\y@nss}{}{\xx@nss}{\tempy@nss}{}%
            \else\ifcurves%
                \curve(\x@nss, \y@nss, \xx@nss, \tempy@nss)%
            \else\ifpictIIe%
                \begingroup
                    \tempxxx@nss=\xx@nss
                    \advance\tempxxx@nss by -\x@nss
                    \divide\tempxxx@nss by 1000
                    \tempyyy@nss=\tempy@nss
                    \advance\tempyyy@nss by -\y@nss
                    \divide\tempyyy@nss by 1000
                    \advance\xx@nss by -\x@nss
                    \put(\x@nss,\y@nss){\line(\tempxxx@nss,
                        \tempyyy@nss){\xx@nss}}
                \endgroup
            \fi\fi\fi%
            \advance\x@nss by \xsize@nss
            \ifemlines%
                \emline{\x@nss}{\y@nss}{}{\xx@nss}{\tempy@nss}{}%
            \else\ifcurves%
                \curve(\x@nss, \y@nss, \xx@nss, \tempy@nss)%
            \else\ifpictIIe%
                \tempxxx@nss=\x@nss
                \advance\tempxxx@nss by -\xx@nss
                \divide\tempxxx@nss by 1000
                \tempyyy@nss=\tempy@nss
                \advance\tempyyy@nss by -\y@nss
                \divide\tempyyy@nss by 1000
                \xx@nss=-\xx@nss
                \advance\xx@nss by \x@nss
                \put(\x@nss,\y@nss){\line(-\tempxxx@nss, \tempyyy@nss){\xx@nss}}
            \fi\fi\fi%
            \advance\x@nss by -\xsize@nss
        \fi
    %}{
    \else% \ifanygradient
        \ifnum\number\param@nss000>0
            \typeout{struktex warning:}%
            \typeout{[...] not supplied without curves, emlines2, or pict2e}%
        \fi
        \put(\x@nss,\y@nss){\line(#1,-1){\xsize@nss}}
        \tempyy@nss=\xsize@nss
        \divide\tempyy@nss by #1
    %}
    \fi% \ifanygradient
    \tempx@nss=\xsize@nss
    \divide\tempx@nss by 2
    \divide\tempyy@nss by 2
    \advance\x@nss by \tempx@nss
    \advance\y@nss by -\tempyy@nss
    \put(\x@nss,\y@nss){\makebox(\tempx@nss,\tempyy@nss){#3}}
    \advance\x@nss by -\tempx@nss
    \advance\y@nss by \tempyy@nss
    \xx@nss=\x@nss
    \yy@nss=\y@nss
    \tempx@nss=\xsize@nss
    \divide\tempx@nss by #2
    \ifnum\number\param@nss000>0
        \tempy@nss=\number\param@nss000%
    \else
        \tempy@nss=\xsize@nss
        \divide\tempy@nss by #1
    \fi
    \condindent@nss=\tempy@nss
    \divide \condindent@nss by \tempxx@nss
    \advance\y@nss by -\tempy@nss
    \put(\x@nss,\y@nss)%
    {%
        \makebox(\tempx@nss,\tempy@nss)[lb]{\raise3pt\hbox{~#4}}%
    }%
    \ydepth@nss=1000000
    \str@kt{\x@nss}{\y@nss}{\tempx@nss}
}
\def\switch%
{%
    \@ifnextchar [{\@switch}{\@switch[l]}%
}
\def\@switch[#1]#2%
{
    \global\gy@nss=\y@nss\endgroup
    \tempyy@nss=\gy@nss
    \ifnum\tempyy@nss<\ydepth@nss
        \ydepth@nss=\tempyy@nss
    \fi
    \advance\x@nss by \tempx@nss
    \advance\tempy@nss by -\condindent@nss
    \put(\x@nss,\y@nss)%
            {\makebox(\tempx@nss,\tempy@nss)[#1b]{\raise3pt\hbox{~#2~}}}
    \str@kt{\x@nss}{\y@nss}{\tempx@nss}
}
\def\caseend%
{
    \global\gy@nss=\y@nss\endgroup
    \tempyy@nss=\gy@nss
    \ifnum\tempyy@nss<\ydepth@nss
        \ydepth@nss=\tempyy@nss
    \fi
    \x@nss=\xx@nss
    \y@nss=\ydepth@nss
    \tempyy@nss=\yy@nss
    \advance\tempyy@nss by -\ydepth@nss
    \put(\x@nss,\y@nss){\framebox(\xsize@nss,\tempyy@nss){}}
    \tempxx@nss=\x@nss
    \loop
        \put(\tempxx@nss,\y@nss){\line(0,1){\tempyy@nss}}
        \advance\tempyy@nss by -\condindent@nss
        \advance\tempxx@nss by \tempx@nss
        \xx@nss=\tempxx@nss
        \advance\xx@nss by -\x@nss
        \advance\xx@nss by 100
        \ifnum \xx@nss<\xsize@nss
    \repeat
}
\newbox\CenterBox@nss%
\def\centernss%
{%
    \begin{trivlist}%
    \item[] \strut%
        \setbox\CenterBox@nss=\hbox%
                              \bgroup%
}
\def\endcenternss%
{%
                              \egroup%
        \strut\hfill\box\CenterBox@nss\hfill\strut%
    \end{trivlist}%
}
\def\CenterNssFile#1%
{%
    \begin{trivlist}%
        \item[] \setbox\CenterBox@nss=\hbox{\input{#1.nss}}%
        \strut\hfill\box\CenterBox@nss\hfill\strut%
    \end{trivlist}%
}
\let\centernssfile=\CenterNssFile
  \newcommand\assert{\let\next=\assert@nss\getoption}%
  \newcommand\assert@nss[1]{}%
\ifthenelse{\boolean{verification}}
{
    \countdef\xsizeo@nss=232%
    \countdef\ydeptho@nss=233%
  \renewcommand{\assert@nss}[1]%
  {%
    \tempx@nss=\xsize@nss\divide\tempx@nss by 6%
    \set@nss{#1}{\tempx@nss}\tempy@nss=\number\param@nss000%
    \assertblock@nss{\tempy@nss}{1}%
  }
%%
  \newcommand{\assertblock@nss}[2]%
  {%
    \tempy@nss=#1\TextBoxHt@nss=\ht\TextBox@nss%
    \advance\TextBoxHt@nss by\dp\TextBox@nss%
    \advance\TextBoxHt@nss by 2mm%
    \ifdim\TextBoxHt@nss<\tempy@nss\unitlength%
        \TextBoxHt@nss=\tempy@nss\unitlength%
    \fi%
    \TextBoxHt@nss=0.00536\TextBoxHt@nss%
    \ydepth@nss=\TextBoxHt@nss\advance\y@nss by-\ydepth@nss%
    \xsizeo@nss=\xsize@nss \tempx@nss=\x@nss
    \divide\xsizeo@nss by 2%
    \advance\tempx@nss by+\xsizeo@nss%
    \ydeptho@nss=\ydepth@nss \tempy@nss=\y@nss
    \divide\ydeptho@nss by 2%
    \advance\tempy@nss by+\ydeptho@nss%
    \ifx#21%
        \put(\x@nss,\y@nss)%
        {%
            \framebox(\xsize@nss,\ydepth@nss){\box\TextBox@nss}%
        }%
        \put(\tempx@nss,\tempy@nss){\oval(\xsize@nss,\ydepth@nss)}%
    \else%
        \ifx#20%
            \put(\x@nss,\y@nss)%
            {%
                \makebox(\xsize@nss,\ydepth@nss){\box\TextBox@nss}%
            }%
            \put(\tempx@nss,\tempy@nss){\oval(\xsize@nss,\ydeptho@nss)}%
        \else%
            \advance\y@nss by \ydepth@nss%
        \fi%
    \fi%
  }
}
{} % end of \ifthenelse{\boolean{verification}}
\endinput
%%
%% End of file `struktex.sty'.
