diff options
author | Karl Berry <karl@freefriends.org> | 2006-01-13 00:07:54 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2006-01-13 00:07:54 +0000 |
commit | 6ecc8cbfd257eb7f97e87528164659d6c031ba07 (patch) | |
tree | e1d18facc38868e474b6f17e944fd09725c1af18 /Master/texmf-dist/tex/latex/struktex/struktex.sty | |
parent | cf491829228ad403e1b75644e5bbe1c6d0f987fe (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.sty | 742 |
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'. |