%% %% This is file `strukdoc.sty', %% generated with the docstrip utility. %% %% The original source files were: %% %% struktex.dtx (with options: `strukdoc') %% %% Copyright (C) 1989-2017 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_(at)_fh-aachen.de \NeedsTeXFormat{LaTeX2e}[1999/12/01]{% \def\@git@ $#1Date: #2-#3-#4 #5$$#6Revision: #7$ {% \ProvidesPackage{strukdoc}[#2/#3/#4 v#7 support for reading and writing files verbatim (Jobst Hoffmann)]} %% git revision information }% %% \RequirePackage{ifpdf} \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'.