\def\fileversion{1.2c} \def\filedate{94/03/24} % % Makrodatei f"ur die Realisierung der Stylebeschreibungsbefehle von % Stefan Pasche und Andreas Schrell, DANTE-\TeX-Stammtisch, Wuppertal. % Fehlermeldungen f"ur diese (unver"anderte) Datei an % Andreas.Schrell@FernUni-Hagen.de % % % Datei nur einmal einlesen! % \ifx\StyleName\undefined \let\next\relax \else \let\next\endinput \fi\next \message{^^JStylebeschreibungsmakrodatei Version \fileversion\space vom \filedate.^^J^^J} % % \newif darf bei uns nicht \outer sein! % \makeatletter \def\newif#1{\count@\escapechar \escapechar\m@ne \expandafter\expandafter\expandafter \edef\@if#1{true}{\let\noexpand#1=\noexpand\iftrue}% \expandafter\expandafter\expandafter \edef\@if#1{false}{\let\noexpand#1=\noexpand\iffalse}% \@if#1{false}\escapechar\count@} % the condition starts out false \makeatother % % Normalerweise wird nur eine SB-Datei ausgef"uhrt. % \newif\ifSingleBeschreibung \ifx\AlleDefined\undefined \SingleBeschreibungtrue \else \SingleBeschreibungfalse \fi \ifx\documentclass\undefined \ifSingleBeschreibung \documentstyle[german,twoside]{article} \else \documentstyle[german,twoside,xfinder]{article} \fi \else \documentclass[twoside]{article} \usepackage{german} \ifSingleBeschreibung\else \usepackage{xfinder} \fi \fi \ifSingleBeschreibung\else \fields={[\DatenZeile:\Name\Rest] } \reademptylinefalse \serienbrief{{% \message{^^JDatei \Name wird bearbeitet...^^J^^J}% \input{\Name}}} \def\SBFiles#1{% \begin{document} \addressfile{#1} \end{document}} \fi \makeatletter \newif\ifFuerPlain \FuerPlainfalse \newif\ifFuerLaTeX \FuerLaTeXfalse \newif\ifMitFonts \MitFontsfalse \newif\ifVRules \VRulesfalse \def\StyleName#1{% \def\TEST{#1}% \ifx\TEST\empty\else \StyleNametrue \fi \def\@StyleName{#1}% \def\@StyleNAME{\uppercase{#1}}}% \newif\ifStyleName \def\ifnotempty#1#2{% \def\TEST{#1}% \ifx\TEST\empty\else#2\fi} \def\InitialisiereIf#1{% \expandafter\newif\csname if#1\endcsname \csname #1false\endcsname} \def\ErstelleBefehl{\@ifstar{\ErstelleMit}{\ErstelleOhne}} \def\ErstelleOhne#1{% \InitialisiereIf{#1}% \expandafter\def\csname #1\endcsname##1{% \ifnotempty{##1}{\csname #1true\endcsname}% \expandafter\def\csname @#1\endcsname{##1}}} \def\ErstelleMit#1{% \InitialisiereIf{#1}% \expandafter\def\csname #1\endcsname##1{% \ifnotempty{##1}{\csname #1true\endcsname}% \expandafter\def\csname @#1\endcsname{##1}% \notwendig{#1}}} \newdimen\MaxAutorName \newcount\AutorCount \def\StyleAutor#1 #2{% \settowidth{\dimen0}{#1}% \ifdim\dimen0>\MaxAutorName \setlength\MaxAutorName{\dimen0}% \fi \csname StyleAutor\the\AutorCount\endcsname{#1}% \csname StyleAutorAdresse\the\AutorCount\endcsname{#2}% \advance\AutorCount by 1} \ErstelleBefehl{StyleVersion} \ErstelleBefehl{StyleDatum} \AutorCount=0 \MaxAutorName=0pt \loop \ErstelleBefehl{StyleAutor\the\AutorCount} \ErstelleBefehl{StyleAutorAdresse\the\AutorCount} \advance\AutorCount by 1 \ifnum\AutorCount<6 \repeat \AutorCount=0 \ErstelleBefehl*{StyleBezugsQuelle} \ErstelleBefehl*{StyleDokumentation} \ErstelleBefehl*{StyleKurzBeschreibung} \ErstelleBefehl{StyleVoraussetzungen} \ErstelleBefehl*{StyleStichWorte} \def\StyleFuerPlain#1{% \ifnum#1=1 \FuerPlaintrue \fi} \def\StyleFuerLaTeX#1{% \ifnum#1=1 \FuerLaTeXtrue \fi} \def\StyleMitFonts#1{% \ifnum#1=1 \MitFontstrue \fi} \def\BoxSize{6pt} \def\BoxMit{\vrule height \BoxSize width \BoxSize depth 0pt} \def\BoxOhne{{\fboxrule=0.4pt\fboxsep=-\fboxrule \fbox{\vbox to \BoxSize{\hbox to \BoxSize{\hss}\vss}}}} \def\BeschreibungAutor#1 #2{% \BeschreibungAutorIntern{#1} \BeschreibungAutorAdresse{#2}} \ErstelleBefehl*{BeschreibungDatum} \ErstelleBefehl*{BeschreibungAutorIntern} \ErstelleBefehl{BeschreibungAutorAdresse} \def\StyleFuerBeschreibung#1#2{% \ifnotempty{#1}{% \def\TEST{#2}\def\TESTX{sty}% \ifx\TEST\TESTX \makeatletter \input #1.#2 \makeatother \else \input #1.#2 \fi }} % % Layout % \evensidemargin=0mm \oddsidemargin=0mm \headheight=0pt \headsep=0pt \topmargin=0pt \textwidth=159.2mm \textheight=246.2mm \parindent=0pt \parskip=0.5\baselineskip \pagestyle{empty} \def\sfb{\ifx\undefined\sffamily\else\sffamily\fi \ifx\undefined\bfseries\bf\else\bfseries\fi} % % Entnommen aus script.sty: % \def\labelinglabel#1{\sfb#1\hfil\sc@septext} \def\labeling{\@ifnextchar [{\@labeling}{\@labeling[]}} \def\@labeling[#1]#2{\def\sc@septext{#1} \begin{list}{}{\settowidth{\labelwidth}{\sfb#2#1} \setlength{\leftmargin}{\labelwidth} \addtolength{\leftmargin}{\labelsep} \let\makelabel\labelinglabel}} \def\endlabeling{\end{list}} \def\notwendig#1{% \global\let\mynext\relax \csname if#1\endcsname\else \global\let\mynext\@@end \@latexerr{SB-Makro: \expandafter \string\csname #1\endcsname\space muss eingetragen werden!^^J} \fi\mynext} \def\notwendigor#1#2{% \global\let\mynext\relax {\count100=0 \csname if#1\endcsname \advance\count100 by 1 \fi \csname if#2\endcsname \advance\count100 by 1 \fi \ifnum\count100=0 \global\let\mynext\@@end \@latexerr{SB-Makro: \expandafter\string\csname #1\endcsname\space oder \expandafter\string\csname #2\endcsname\space muss eingetragen werden!^^J} \fi}\mynext} \def\LeseDatum#1.#2.#3.{% ohne "ausruhen" machts TeX wieder nicht: \day=#1\relax \month=#2\relax \year=#3\relax \let\Today\today \ifnum\day=0 \def\Today{\the\month.\the\year}% \fi \ifnum\month=0 \def\Today{\the\year}% \fi \ifnum\year=0 \def\Today{???????}% \fi \ifnum\year<82 \advance\year by 2000\relax\fi % Wir benutzen ein TeX82. Alles <82 ist >2000! % Damit funktionierts noch bis zum Jahr 2081 ;-) \ifnum\year<100 \advance\year by 1900\relax\fi} \def\KonvertiereDatum#1{% {\expandafter\LeseDatum#1.% \xdef#1{\Today}}} \newwrite\StichFile \def\SchreibeStichWorte{% \immediate\openout\StichFile=\jobname.stw \edef\@StyleStichWorteSp{\@StyleStichWorte\space}% \expandafter\SchreibeStichWort\@StyleStichWorteSp 0 } \def\StichClose{\immediate\closeout\StichFile} \def\SchreibeStichWort #1 {% \def\TEST{#1}% \def\RTEST{0}% \ifx\TEST\RTEST \let\Snext\StichClose \else \immediate\write\StichFile{#1\string\dotfill\space\jobname}% \let\Snext\SchreibeStichWort \fi \Snext} \def\ps@stylebesch{% \def\@evenhead{\hfil}% \def\@oddhead{\hfil}% \def\@evenfoot{\hfil\@StyleName\qquad -- \thepage\ --\hfil}% \let\@oddfoot\@evenfoot} \pagestyle{stylebesch} \newif\ifWeiter \def\Beschreibung{% \notwendig{StyleName} \notwendigor{StyleVersion}{StyleDatum} \notwendig{StyleAutor0} \notwendig{StyleBezugsQuelle} \notwendig{StyleDokumentation} \notwendig{StyleStichWorte} \notwendig{StyleKurzBeschreibung} \notwendig{BeschreibungDatum} \notwendig{BeschreibungAutorIntern} \ifSingleBeschreibung \begin{document} \else \cleardoublepage \fi \SchreibeStichWorte \begin{flushright} \Huge\sfb \@StyleNAME \end{flushright} \thispagestyle{empty} \begin{labeling}[ :]{Kurzbeschreibung} \item[Bezeichnung] \@StyleName \item[Version] \ifStyleVersion\@StyleVersion \ifStyleDatum\ vom \fi\fi \ifStyleDatum \KonvertiereDatum\@StyleDatum \@StyleDatum \fi \item[Autor] \AutorCount=0 \loop \leavevmode\hbox to \MaxAutorName{\csname @StyleAutor\the\AutorCount\endcsname\hfil}% \expandafter\ifx\csname @StyleAutorAdresse\the\AutorCount \endcsname\relax\else \ifVRules \ \vrule\ \else \hskip 1cm \fi \vtop{\def\\{\egroup\hbox\bgroup\strut\ignorespaces} \hbox\bgroup\strut \csname @StyleAutorAdresse\the\AutorCount\endcsname \egroup} \fi \advance\AutorCount by 1 {\expandafter\ifx\csname @StyleAutor\the\AutorCount\endcsname \relax\global\Weiterfalse\else\global\Weitertrue\fi} \ifWeiter \vskip0pt \repeat \item[Bezugsquelle] \@StyleBezugsQuelle \item[Dokumentation] \@StyleDokumentation \item[Voraussetzungen] {\sc Plain}-\TeX\ \ifFuerPlain\BoxMit\else\BoxOhne\fi\hskip1cm \LaTeX\ \ifFuerLaTeX\BoxMit\else\BoxOhne\fi\hskip1cm Mit Fonts \ifMitFonts\BoxMit\else\BoxOhne\fi \ifStyleVoraussetzungen\\ \@StyleVoraussetzungen \fi \item[Stichworte] (\,\@StyleStichWorte\,) \item[Kurzbeschreibung] \@StyleKurzBeschreibung \vskip 7mm \item[Beschreibung] \@BeschreibungAutorIntern \ifBeschreibungAutorAdresse \ifVRules \ \vrule\ \else \hskip 1cm \fi \vtop{\def\\{\egroup\hbox\bgroup\strut\ignorespaces} \hbox\bgroup\strut \@BeschreibungAutorAdresse \egroup} \fi \hfill \KonvertiereDatum\@BeschreibungDatum \@BeschreibungDatum \end{labeling}\par} \def\endBeschreibung{% \ifSingleBeschreibung \par\endgroup \def\@currenvir{document} \def\next{\end{document}} \else \def\next{\par\ifodd\c@page\clearpage\hbox{}\fi} \fi\next} \makeatother \endinput