summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/struktex/struktex.sty
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2006-01-13 00:07:54 +0000
committerKarl Berry <karl@freefriends.org>2006-01-13 00:07:54 +0000
commit6ecc8cbfd257eb7f97e87528164659d6c031ba07 (patch)
treee1d18facc38868e474b6f17e944fd09725c1af18 /Master/texmf-dist/tex/latex/struktex/struktex.sty
parentcf491829228ad403e1b75644e5bbe1c6d0f987fe (diff)
struktex
git-svn-id: svn://tug.org/texlive/trunk@1350 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/struktex/struktex.sty')
-rw-r--r--Master/texmf-dist/tex/latex/struktex/struktex.sty742
1 files changed, 742 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/latex/struktex/struktex.sty b/Master/texmf-dist/tex/latex/struktex/struktex.sty
new file mode 100644
index 00000000000..4f069cdbc36
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/struktex/struktex.sty
@@ -0,0 +1,742 @@
+%%
+%% This is file `struktex.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% struktex.dtx (with options: `struktex')
+%%
+%% Copyright (C) 1989-2005 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{2005/05/17}
+\def\fileversion{v8.0f}
+\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}
+}
+\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%
+{
+ \ifmmode%
+ \emptyset%
+ \else $\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%
+ \@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
+ \divide\tempxxx@nss by 1000
+ \tempyyy@nss=\tempy@nss
+ \advance\tempyyy@nss by -\y@nss
+ \divide\tempyyy@nss by 1000
+ \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%
+ \tempxxx@nss=\xx@nss
+ \divide\tempxxx@nss by 1000
+ \tempyyy@nss=\tempy@nss
+ \advance\tempyyy@nss by -\y@nss
+ \divide\tempyyy@nss by 1000
+ \put(\x@nss,\y@nss){\line(\tempxxx@nss, \tempyyy@nss){\xx@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=\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
+\ifthenelse{\boolean{verification}}
+{
+ \countdef\xsizeo@nss=232%
+ \countdef\ydeptho@nss=233%
+
+ \newcommand\assert{\let\next=\assert@nss\getoption}%
+ \newcommand{\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'.