summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/struktex
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
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')
-rw-r--r--Master/texmf-dist/tex/latex/struktex/strukdoc.sty262
-rw-r--r--Master/texmf-dist/tex/latex/struktex/struktex.sty742
-rw-r--r--Master/texmf-dist/tex/latex/struktex/struktxf.sty61
-rw-r--r--Master/texmf-dist/tex/latex/struktex/struktxp.sty155
4 files changed, 1220 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/latex/struktex/strukdoc.sty b/Master/texmf-dist/tex/latex/struktex/strukdoc.sty
new file mode 100644
index 00000000000..68288a5c496
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/struktex/strukdoc.sty
@@ -0,0 +1,262 @@
+%%
+%% This is file `strukdoc.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% struktex.dtx (with options: `strukdoc')
+%%
+%% 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}
+%%
+\RequirePackage{ifpdf}
+\ProvidesPackage{strukdoc}
+ [\filedate\space\fileversion\space (Jobst Hoffmann)]
+\newif\ifcolor \IfFileExists{color.sty}{\colortrue}{}
+\ifpdf \RequirePackage[colorlinks]{hyperref}\else
+ \def\href#1{\texttt}\fi
+\ifcolor \RequirePackage{color}\fi
+\RequirePackage{nameref}
+\RequirePackage{url}
+\renewcommand\ref{\protect\T@ref}
+\renewcommand\pageref{\protect\T@pageref}
+\@ifundefined{zB}{}{\endinput}
+\providecommand\pparg[2]{%
+ {\ttfamily(}\meta{#1},\meta{#2}{\ttfamily)}}
+\providecommand\envb[1]{%
+ {\ttfamily\char`\\begin\char`\{#1\char`\}}}
+\providecommand\enve[1]{%
+ {\ttfamily\char`\\end\char`\{#1\char`\}}}
+\newcommand{\zBspace}{z.\,B.}
+\let\zB=\zBspace
+\newcommand{\dhspace}{d.\,h.}
+\let\dh=\dhspace
+\let\foreign=\textit
+\newcommand\Abb[1]{Abbildung~\ref{#1}}
+\def\newexample#1{%
+ \@ifnextchar[{\@oexmpl{#1}}{\@nexmpl{#1}}}
+\def\@nexmpl#1#2{%
+ \@ifnextchar[{\@xnexmpl{#1}{#2}}{\@ynexmpl{#1}{#2}}}
+\def\@xnexmpl#1#2[#3]{%
+ \expandafter\@ifdefinable\csname #1\endcsname
+ {\@definecounter{#1}\@newctr{#1}[#3]%
+ \expandafter\xdef\csname the#1\endcsname{%
+ \expandafter\noexpand\csname the#3\endcsname \@exmplcountersep
+ \@exmplcounter{#1}}%
+ \global\@namedef{#1}{\@exmpl{#1}{#2}}%
+ \global\@namedef{end#1}{\@endexample}}}
+\def\@ynexmpl#1#2{%
+ \expandafter\@ifdefinable\csname #1\endcsname
+ {\@definecounter{#1}%
+ \expandafter\xdef\csname the#1\endcsname{\@exmplcounter{#1}}%
+ \global\@namedef{#1}{\@exmpl{#1}{#2}}%
+ \global\@namedef{end#1}{\@endexample}}}
+\def\@oexmpl#1[#2]#3{%
+ \@ifundefined{c@#2}{\@nocounterr{#2}}%
+ {\expandafter\@ifdefinable\csname #1\endcsname
+ {\global\@namedef{the#1}{\@nameuse{the#2}}%
+ \global\@namedef{#1}{\@exmpl{#2}{#3}}%
+ \global\@namedef{end#1}{\@endexample}}}}
+\def\@exmpl#1#2{%
+ \refstepcounter{#1}%
+ \@ifnextchar[{\@yexmpl{#1}{#2}}{\@xexmpl{#1}{#2}}}
+\def\@xexmpl#1#2{%
+ \@beginexample{#2}{\csname the#1\endcsname}\ignorespaces}
+\def\@yexmpl#1#2[#3]{%
+ \@opargbeginexample{#2}{\csname the#1\endcsname}{#3}\ignorespaces}
+\def\@exmplcounter#1{\noexpand\arabic{#1}}
+\def\@exmplcountersep{.}
+\def\@beginexample#1#2{%
+ \@nobreaktrue\list{}{\setlength{\rightmargin}{\leftmargin}}%
+ \item[{\bfseries #1\ #2}]\mbox{}\\\sf}
+\def\@opargbeginexample#1#2#3{%
+ \@nobreaktrue\list{}{\setlength{\rightmargin}{\leftmargin}}%
+ \item[{\bfseries #1\ #2}\ (#3)]\mbox{}\\\sf}
+\def\@endexample{\endlist}
+
+\newexample{tExample}{\ifnum\language=\languageNGerman Beispiel\else Example\fi}
+
+\newwrite\struktex@out
+\newenvironment{example}%
+ {\begingroup% Lets keep the changes local
+ \@bsphack
+ \immediate\openout \struktex@out \jobname.tmp
+ \let\do\@makeother\dospecials\catcode`\^^M\active
+ \def\verbatim@processline{%
+ \immediate\write\struktex@out{\the\verbatim@line}}%
+ \verbatim@start}%
+ {\immediate\closeout\struktex@out\@esphack\endgroup%
+ \par\small\addvspace{3ex plus 1ex}\vskip -\parskip
+ \noindent
+ \makebox[0.45\linewidth][l]{%
+ \begin{minipage}[t]{0.45\linewidth}
+ \vspace*{-2ex}
+ \setlength{\parindent}{0pt}
+ \setlength{\parskip}{1ex plus 0.4ex minus 0.2ex}
+ \begin{trivlist}
+ \item\input{\jobname.tmp}
+ \end{trivlist}
+ \end{minipage}}%
+ \hfill%
+ \makebox[0.5\linewidth][l]{%
+ \begin{minipage}[t]{0.50\linewidth}
+ \vspace*{-1ex}
+ \verbatiminput{\jobname.tmp}
+ \end{minipage}}
+ \par\addvspace{3ex plus 1ex}\vskip -\parskip
+}
+
+\newtoks\verbatim@line
+\def\verbatim@startline{\verbatim@line{}}
+\def\verbatim@addtoline#1{%
+ \verbatim@line\expandafter{\the\verbatim@line#1}}
+\def\verbatim@processline{\the\verbatim@line\par}
+\def\verbatim@finish{\ifcat$\the\verbatim@line$\else
+ \verbatim@processline\fi}
+
+\def\verbatimwrite#1{%
+ \@bsphack
+ \immediate\openout \struktex@out #1
+ \let\do\@makeother\dospecials
+ \catcode`\^^M\active \catcode`\^^I=12
+ \def\verbatim@processline{%
+ \immediate\write\struktex@out
+ {\the\verbatim@line}}%
+ \verbatim@start}
+\def\endverbatimwrite{%
+ \immediate\closeout\struktex@out
+ \@esphack}
+
+\@ifundefined{vrb@catcodes}%
+ {\def\vrb@catcodes{%
+ \catcode`\!12\catcode`\[12\catcode`\]12}}{}
+\begingroup
+ \vrb@catcodes
+ \lccode`\!=`\\ \lccode`\[=`\{ \lccode`\]=`\}
+ \catcode`\~=\active \lccode`\~=`\^^M
+ \lccode`\C=`\C
+ \lowercase{\endgroup
+ \def\verbatim@start#1{%
+ \verbatim@startline
+ \if\noexpand#1\noexpand~%
+ \let\next\verbatim@
+ \else \def\next{\verbatim@#1}\fi
+ \next}%
+ \def\verbatim@#1~{\verbatim@@#1!end\@nil}%
+ \def\verbatim@@#1!end{%
+ \verbatim@addtoline{#1}%
+ \futurelet\next\verbatim@@@}%
+ \def\verbatim@@@#1\@nil{%
+ \ifx\next\@nil
+ \verbatim@processline
+ \verbatim@startline
+ \let\next\verbatim@
+ \else
+ \def\@tempa##1!end\@nil{##1}%
+ \@temptokena{!end}%
+ \def\next{\expandafter\verbatim@test\@tempa#1\@nil~}%
+ \fi \next}%
+ \def\verbatim@test#1{%
+ \let\next\verbatim@test
+ \if\noexpand#1\noexpand~%
+ \expandafter\verbatim@addtoline
+ \expandafter{\the\@temptokena}%
+ \verbatim@processline
+ \verbatim@startline
+ \let\next\verbatim@
+ \else \if\noexpand#1
+ \@temptokena\expandafter{\the\@temptokena#1}%
+ \else \if\noexpand#1\noexpand[%
+ \let\@tempc\@empty
+ \let\next\verbatim@testend
+ \else
+ \expandafter\verbatim@addtoline
+ \expandafter{\the\@temptokena}%
+ \def\next{\verbatim@#1}%
+ \fi\fi\fi
+ \next}%
+ \def\verbatim@testend#1{%
+ \if\noexpand#1\noexpand~%
+ \expandafter\verbatim@addtoline
+ \expandafter{\the\@temptokena[}%
+ \expandafter\verbatim@addtoline
+ \expandafter{\@tempc}%
+ \verbatim@processline
+ \verbatim@startline
+ \let\next\verbatim@
+ \else\if\noexpand#1\noexpand]%
+ \let\next\verbatim@@testend
+ \else\if\noexpand#1\noexpand!%
+ \expandafter\verbatim@addtoline
+ \expandafter{\the\@temptokena[}%
+ \expandafter\verbatim@addtoline
+ \expandafter{\@tempc}%
+ \def\next{\verbatim@!}%
+ \else \expandafter\def\expandafter\@tempc\expandafter
+ {\@tempc#1}\fi\fi\fi
+ \next}%
+ \def\verbatim@@testend{%
+ \ifx\@tempc\@currenvir
+ \verbatim@finish
+ \edef\next{\noexpand\end{\@currenvir}%
+ \noexpand\verbatim@rescan{\@currenvir}}%
+ \else
+ \expandafter\verbatim@addtoline
+ \expandafter{\the\@temptokena[}%
+ \expandafter\verbatim@addtoline
+ \expandafter{\@tempc]}%
+ \let\next\verbatim@
+ \fi
+ \next}%
+ \def\verbatim@rescan#1#2~{\if\noexpand~\noexpand#2~\else
+ \@warning{Characters dropped after `\string\end{#1}'}\fi}}
+
+\newread\verbatim@in@stream
+\def\verbatim@readfile#1{%
+ \verbatim@startline
+ \openin\verbatim@in@stream #1\relax
+ \ifeof\verbatim@in@stream
+ \typeout{No file #1.}%
+ \else
+ \@addtofilelist{#1}%
+ \ProvidesFile{#1}[(verbatim)]%
+ \expandafter\endlinechar\expandafter\m@ne
+ \expandafter\verbatim@read@file
+ \expandafter\endlinechar\the\endlinechar\relax
+ \closein\verbatim@in@stream
+ \fi
+ \verbatim@finish
+}
+\def\verbatim@read@file{%
+ \read\verbatim@in@stream to\next
+ \ifeof\verbatim@in@stream
+ \else
+ \expandafter\verbatim@addtoline\expandafter{\expandafter\check@percent\next}%
+ \verbatim@processline
+ \verbatim@startline
+ \expandafter\verbatim@read@file
+ \fi
+}
+\def\verbatiminput{\begingroup\MacroFont
+ \@ifstar{\verbatim@input\relax}%
+ {\verbatim@input{\frenchspacing\@vobeyspaces}}}
+\def\verbatim@input#1#2{%
+ \IfFileExists {#2}{\@verbatim #1\relax
+ \verbatim@readfile{\@filef@und}\endtrivlist\endgroup\@doendpe}%
+ {\typeout {No file #2.}\endgroup}}
+\endinput
+%%
+%% End of file `strukdoc.sty'.
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'.
diff --git a/Master/texmf-dist/tex/latex/struktex/struktxf.sty b/Master/texmf-dist/tex/latex/struktex/struktxf.sty
new file mode 100644
index 00000000000..dc9882024dc
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/struktex/struktxf.sty
@@ -0,0 +1,61 @@
+%%
+%% This is file `struktxf.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% struktex.dtx (with options: `struktxf')
+%%
+%% 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{struktxf}
+ [\filedate\space\fileversion\space Fonts for Nassi Shneidermann Charts (Jobst Hoffmann)]
+%%
+\@ifundefined{nat}{}{\endinput}
+\DeclareSymbolFont{italics}{\encodingdefault}{\rmdefault}{m}{it}%
+\DeclareSymbolFont{AMSb}{U}{msb}{m}{n}
+\DeclareSymbolFontAlphabet{\mathbb}{AMSb}
+\def\nat{{\mathbb N}}
+\def\integer{{\mathbb Z}}
+\def\real{{\mathbb R}}
+\def\complex{{\mathbb C}}
+\DeclareFontFamily{OT1}{cmbtt}{}
+\DeclareFontShape{OT1}{cmtt}{bx}{n}{
+ <-8> cmbtt8 <9> cmbtt9 <10-> cmbtt10
+}{}
+
+\def\btt%
+{%
+ \fontencoding{\encodingdefault}\fontfamily{cmbtt}\fontseries{bx}%
+ \fontshape{n}\selectfont%
+}
+\def\@setmcodes#1#2#3{{\count0=#1 \count1=#3
+ \loop \global\mathcode\count0=\count1 \ifnum \count0<#2
+ \advance\count0 by1 \advance\count1 by1 \repeat}}
+\def\MathItalics%
+{%
+ \@setmcodes{`A}{`Z}{"7\hexnumber@\symitalics41}
+ \@setmcodes{`a}{`z}{"7\hexnumber@\symitalics61}
+}
+\def\MathNormal%
+{%
+ \@setmcodes{`A}{`Z}{"7141}
+ \@setmcodes{`a}{`z}{"7161}
+}
+\MathItalics
+\endinput
+%%
+%% End of file `struktxf.sty'.
diff --git a/Master/texmf-dist/tex/latex/struktex/struktxp.sty b/Master/texmf-dist/tex/latex/struktex/struktxp.sty
new file mode 100644
index 00000000000..fc42bc978f7
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/struktex/struktxp.sty
@@ -0,0 +1,155 @@
+%%
+%% This is file `struktxp.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% struktex.dtx (with options: `struktxp')
+%%
+%% 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{struktxp}
+ [\filedate\space\fileversion\space Keywords for Nassi Shneidermann Charts (Jobst Hoffmann)]
+%%
+\@ifundefined{pVariable}{}{\endinput}
+\newcommand{\pExpFont@nss}{\small\sffamily}
+\newcommand{\pKeyFont@nss}{\small\sffamily\bfseries}
+\newcommand{\pCommentFont@nss}{\small\sffamily\slshape}
+\newcommand{\pFonts}[3]%
+{%
+ \def\argi@nss{#1} \def\argii@nss{#2} \def\argiii@nss{#3}
+ \ifx\argi@nss\empty\else%
+ \renewcommand{\pExpFont@nss}{#1}%
+ \fi%
+ \ifx\argii@nss\empty\else%
+ \renewcommand{\pKeyFont@nss}{#2}%
+ \fi%
+ \ifx\argiii@nss\empty\else%
+ \renewcommand{\pCommentFont@nss}{#3}%
+ \fi%
+}
+\newcommand{\pExpression}%
+{%
+ \bgroup%
+ \catcode`\_=12 \catcode`\^=12 \catcode`\&=12 %
+ \pUseExpFont@nss%
+}
+\let\pExp=\pExpression
+\newcommand{\pVariable}%
+{%
+ \bgroup%
+ \catcode`\_=13 \let\_\textunderscore
+ \catcode`\#=12 \catcode`\^=12 \catcode`\&=12 %
+ \pVariabl@%
+}
+\let\pVar=\pVariable
+\let\pKeyword=\pVariable
+\let\pKey=\pVariable
+\newcommand{\pVariabl@}[1]
+{%
+ \def\arg{#1}%
+ \ifx\pLanguage@nss\Cee@nss%
+ \CheckForKeyword@nss{auto,break,case,char,const,continue,default,do,double,%
+ else,enum,extern,float,for,goto,if,int,long,register,return,%
+ short,signed,sizeof,static,struct,switch,typedef,union,unsigned,%
+ void,volatile,while}%
+ \else\ifx\pLanguage@nss\Java@nss%
+ \CheckForKeyword@nss{abstract,boolean,break,byte,case,catch,char,class,const,%
+ continue,default,do,double,else,extends,final,finally,float,for,%
+ goto,if,implements,import,instanceof,int,interface,long,native,%
+ new,null,package,private,protected,public,return,short,static,%
+ super,switch,synchronized,this,throw,throws,transient,try,void,%
+ volatile,while,true,false}%
+ \else\ifx\pLanguage@nss\Pascal@nss%
+ \CheckForKeyword@nss{alfa,and,array,begin,boolean,byte,case,char,const,div,do,%
+ downto,else,end,false,file,for,function,get,goto,if,in,integer,%
+ label,maxint,mod,new,not,of,or,pack,packed,page,program,put,%
+ procedure,read,readln,real,record,repeat,reset,rewrite,set,text,%
+ then,to,true,type,unpack,until,var,while,with,write,writeln}%
+ \else\ifx\pLanguage@nss\Python@nss%
+ \CheckForKeyword@nss{and,assert,break,class,continue,def,del,elif,else,%
+ except,exec,finally,for,from,global,if,import,in,is,lambda,not,or,%
+ pass,print,raise,return,try,while,yield}%
+ \else\ifx\pLanguage@nss\LaTeX@nss%
+ \CheckForKeyword@nss{center,description,enumerate,figure,itemize,
+ list,quote,tabbing,tabular,table,}%
+ \else%
+ \CheckForKeyword@nss{}%
+ \fi\fi\fi\fi\fi%
+ \egroup%
+}
+\newcommand{\pLanguage}[1]{\gdef\pLanguage@nss{#1}}
+\def\Cee@nss{C}
+\def\Java@nss{Java}
+\def\Pascal@nss{Pascal}
+\def\LaTeX@nss{LaTeX}
+\def\Python@nss{Python}
+\def\OSII@nss{OS/2}
+\def\CheckForKeyword@nss#1%
+{%
+ \let\exec\pExpFont@nss%
+ \def\endList{!}%
+ \def\yyI##1,%
+ {%
+ \def\token{##1}%
+ \ifx\token\endList%
+ \ifmmode\else\let\mbox=\relax\fi%
+ \mbox{\exec\selectfont\arg}%
+ \else%
+ \ifx\token\arg%
+ \let\exec\pKeyFont@nss%
+ \fi%
+ \expandafter\yyI%
+ \fi%
+ }%
+ \yyI#1,!,%
+}
+\def\pComment%
+{%
+ \bgroup%
+ \pCommentFont@nss%
+ \let\next=%
+}
+{
+ \catcode`\#=6%
+ \gdef\pUseKeyFont@nss#1%
+ {%
+ \ifmmode\else\let\mbox=\relax\fi%
+ \mbox{\pKeyFont@nss{#1}}\egroup%
+ }
+ \gdef\pUseExpFont@nss#1%
+ {%
+ \ifmmode\else\let\mbox=\relax\fi%
+ \mbox{\pExpFont@nss{#1}}\egroup%
+ }
+}
+\newcommand{\pTrue@nss}{\texttt{WAHR}}
+\newcommand{\pFalse@nss}{\texttt{FALSCH}}
+\newcommand{\pTrue}{\pTrue@nss}
+\newcommand{\pFalse}{\pFalse@nss}
+\newcommand{\pBoolValue}[2]%
+{%
+ \renewcommand{\pTrue@nss}{#1}%
+ \renewcommand{\pFalse@nss}{#2}%
+}
+\let\sBoolValue=\pBoolValue
+\let\sVar=\pVariable
+\let\sKey=\pKeyword
+\let\sTrue=\pTrue
+\let\sFalse=\pFalse
+\endinput
+%%
+%% End of file `struktxp.sty'.