From 6ecc8cbfd257eb7f97e87528164659d6c031ba07 Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Fri, 13 Jan 2006 00:07:54 +0000 Subject: struktex git-svn-id: svn://tug.org/texlive/trunk@1350 c570f23f-e606-0410-a88d-b1316a301751 --- Master/texmf-dist/tex/latex/struktex/strukdoc.sty | 262 ++++++++ Master/texmf-dist/tex/latex/struktex/struktex.sty | 742 ++++++++++++++++++++++ Master/texmf-dist/tex/latex/struktex/struktxf.sty | 61 ++ Master/texmf-dist/tex/latex/struktex/struktxp.sty | 155 +++++ 4 files changed, 1220 insertions(+) create mode 100644 Master/texmf-dist/tex/latex/struktex/strukdoc.sty create mode 100644 Master/texmf-dist/tex/latex/struktex/struktex.sty create mode 100644 Master/texmf-dist/tex/latex/struktex/struktxf.sty create mode 100644 Master/texmf-dist/tex/latex/struktex/struktxp.sty (limited to 'Master/texmf-dist') 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'. -- cgit v1.2.3