% DOCUMENT OPTION STYLE -- Released 21-MAR-1991 % % adapted from LETTER DOCUMENT STYLE by Leslie Lamport % % This style has to be used as an optional style. % Tests have been made with the article.sty as the basis sty. % This style was also used together with the finder.sty. % Advice: Use the STBrief.Sty in connection with the DefUser.Sty. % (Of course ist works without it) % % Copyright (c) 1991,1991 by Steffen Steinhaeuser % Permission to copy all or part of this work is granted, provided % that the copies are not made or distributed for resale, and that % the copyright notice and this notice are retained. % % THIS WORK IS PROVIDED ON AN "AS IS" BASIS. THE AUTHOR PROVIDES NO % WARRANTY WHATSOEVER, EITHER EXPRESS OR IMPLIED, REGARDING THE WORK, % INCLUDING WARRANTIES WITH RESPECT TO ITS MERCHANTABILITY OR FITNESS % FOR ANY PARTICULAR PURPOSE. % % If you make any improvements, I'd like to hear about them. % % Steffen Steinh\"auser % Landwehrstr. 47 % 6100 Darmstadt % Federal Republic of Germany % steinhaeuser@ddagsi5.bitnet % steffen_steinhaeuser@mz.maus.de % \def~{ } \typeout{-------------------------------------------------------} \typeout{| STBRIEF.STY V1.4 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~|} \typeout{| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~c'15-Feb-91 R.Th/Stone |} \typeout{-------------------------------------------------------} \typeout{} % % Die Liste der folgenden Makros sollte mit den benutzerspezifischen % Daten in eine Datei als Optionstyle in \documentstyle[]{} angegeben % werden. Diese Arbeit sollte aber, falls vorhanden, der DefUser.Sty % uebernehmen. % % Folgenden Makros sollten die eigenen Einstellungen uebergeben werden: % % \name{} % \strasse{} % \stadt{} % \signature{} % \telefon{} % \faxnummer{} % \kontonr{} % \bank{} % \bankleitzahl{} % \smallogo{} % \logo{} % \logosymbol{} % \datum{} % % Folgende Makros sollten ggf. nur angegeben werden (oder nicht) % % \fax % % Folgende Flags bzgl. eigener Einstellung setzen % % \toplogo[true] oder \toplogofalse % \toprule[true] oder \toprulefalse % \bottomrule[true] oder \bottomrulefalse % \bankvtrue oder \bankv[false] % \from[true] oder \fromfalse % \symlogotrue oder \symlogo[false] % % [...] ist die Defaulteinstellung im STBrief.sty % % Ende der Liste % % % Font fuer das Logo im Briefkopf % \newfont{\toplogofnt}{cmtt10 scaled 2074} % % Skip zwischen zwei Absaetzen ist so gross wie etwa eine Leerzeile % Begin des Absatzes ist nicht eingerueckt % \parskip1.5ex plus.5ex minus.5ex \parindent0pt % % **************************************** % * laengen - definitionen * % **************************************** % % This is from documentsubstyle DINA4 for DIN A4 pagesize. GMD Z1.BN 12.06.85 \oddsidemargin 0pt \evensidemargin 0pt \marginparwidth 0pt \marginparsep 0pt \marginparpush 0pt \topmargin -1.2cm \headheight 2.5cm \headsep 1cm \footheight 0.7cm \footskip 1cm \textheight 17cm \textwidth 16.2cm % % individuelle Einstellung je nach Computertyp und Druckertreiber % \voffset-8mm %\hoffset % % **************************************** % * logische flags - definitionen * % **************************************** % % Steuerung von etwaigen Ausgaben (oder nicht) durch neue IF-Kommandos % \newif\iftoplogo % Ausgabe des toplogos \newif\iftoprule % Linie oben (unter dem TopLogo) \newif\ifbottomrule % Linie unten (ueber der Bankverbindung) \newif\ifsmallfrom % Absender ueber der Adresse \newif\iffrom % from (-address) kann angeschaltet werden \newif\ifbankv % Ausgabe der Bankverbindung in der Fu_zeile \newif\ifsymlogo % Ausgabe eines Logosymbols % \newif\ifdefuser % % Defaulteinstellungen % \fromtrue \smallfromtrue \bankvfalse \toplogotrue \symlogofalse \topruletrue \bottomruletrue % % **************************************** % * textmakro - definitionen * % **************************************** % \def\fax{ % \smallfromfalse \toprulefalse \bottomrulefalse} \def\kontonr#1{\def\kontono{#1}} \def\kontono{} \def\bank#1{\def\bankname{#1}} \def\bankname{} \def\bankleitzahl#1{\def\bankzahl{#1}} \def\bankzahl{} \def\name#1{\def\fromname{#1}\def\fromsig{#1}} \def\fromname{} \def\strasse#1{\def\fromstreet{#1}} \def\fromstreet{} \def\stadt#1{\def\fromcity{#1}} \def\fromcity{} \def\signature#1{\def\fromsig{#1}} \def\fromsig{} \def\faxnummer#1{\def\faxnum{#1}} \def\faxnum{} \newlength{\telenumwidth} \newlength{\telewidth} \settowidth{\telewidth}{Telefon} \def\telefon#1{\def\telephonenum{#1}\settowidth{\telenumwidth}{#1}} \def\telephonenum{} \def\smallogo#1{\def\sfromlogo{#1}} \def\sfromlogo{} \def\logo#1{\def\fromlogo{#1}\def\sfromlogo{#1}} \def\fromlogo{} \def\logosymbol#1{\def\symlogo{#1} % \iftoplogo\else\def\fromlogo{#1}\fi % \ifx\@empty\symlogo\symlogofalse\else\symlogotrue\fi} \def\datum#1{\def\date{#1}} \def\date{\today} % % **************************************** % * stbrief environment - definitionen * % **************************************** % \def\opening#1{ \thispagestyle{firstpage} {\hbox{} \par} \vspace*{5mm} % \vfill \par #1\par\nobreak } \long\def\closing#1{\par\nobreak\vspace{\parskip} \stopbreaks \noindent \parbox{0.5\textwidth}{\raggedright \ignorespaces #1\\[12mm] \ifx\@empty\fromsig\else \fromsig \fi\strut}\vfill \par} \def\cc#1{\par\noindent \parbox[t]{\textwidth}{\@hangfrom{\rm \ccname }\ignorespaces #1\strut}\par} \def\encl#1{\par\noindent \parbox[t]{\textwidth}{\@hangfrom{\rm \enclname }\ignorespaces #1\strut}\par} \def\stopletter{} % % Labels % \def\returnaddress{} \newcount\labelcount % % The following \startlabels command sets things up for producing % labels in two columns of five 2" X 4-1/4" labels each, suitable % for reproducing onto Avery brand number 5352 address labels. % \def\startlabels{\labelcount=0 \baselineskip=0pt \lineskip=0pt \pagestyle{empty} \let\@texttop=\relax \topmargin -50pt \headsep 0pt \oddsidemargin -35pt \evensidemargin -35pt \textheight 10in \@colht\textheight \@colroom\textheight \vsize\textheight \textwidth 550pt \columnsep 25pt \xpt \baselineskip=0pt \lineskip=0pt \boxmaxdepth=0pt \twocolumn\relax} \def\mlabel#1#2{\setbox0\vbox{\parbox[b]{3.6in}{\strut\ignorespaces #2}} \vbox to 2in{\vss \box0 \vss}} % % **************************************** % * THE GENERIC STBRIEF COMMANDS * % **************************************** % \long\def\letter#1{\newpage \c@page\@ne \interlinepenalty=200 % smaller than the TeXbook value \@processto{#1}} \def\endletter{\stopletter\@@par\pagebreak \@@par \if@filesw \begingroup \def\protect{\string} \let\\=\relax \def\protect##1{\string##1\space} \immediate\write\@auxout{\string\mlabel{\returnaddress}{\toname \\\toaddress}} \endgroup \fi} \long\def\@processto#1{\@xproc #1\\@@@\ifx\toaddress\@empty \else \@yproc #1@@@\fi} \long\def\@xproc #1\\#2@@@{\def\toname{#1}\def\toaddress{#2}} \long\def\@yproc #1\\#2@@@{\def\toaddress{#2}} \def\stopbreaks{\interlinepenalty \@M \def\par{\@@par\nobreak}\let\\=\@nobreakcr \let\vspace\@nobreakvspace} \def\@nobreakvspace{\@ifstar{\@nobreakvspacex}{\@nobreakvspacex}} \def\@nobreakvspacex#1{\ifvmode\nobreak\vskip #1\relax\else \@bsphack\vadjust{\nobreak\vskip #1}\@esphack\fi} \def\@nobreakcr{\vadjust{\penalty\@M}\@ifstar{\@xnewline}{\@xnewline}} \def\startbreaks{\let\\=\@normalcr \interlinepenalty 200\def\par{\@@par\penalty 200}} \def\document{\endgroup \@colht\textheight \@colroom\textheight \vsize\textheight \columnwidth\textwidth \@clubpenalty\clubpenalty \if@twocolumn \advance\columnwidth -\columnsep \divide\columnwidth\tw@ \hsize\columnwidth \@firstcolumntrue \fi \hsize\columnwidth \linewidth\hsize \begingroup\@floatplacement\@dblfloatplacement\endgroup \if@filesw \immediate\openout\@mainaux=\jobname.aux \immediate\write\@mainaux{\string\startlabels\string\@startlabels}\fi \def\do##1{\let ##1\@notprerr} \@preamblecmds \let\do\noexpand \@normalsize\everypar{} % % Sollten noch keine benutzerspezifischen Daten definiert sein, % gibt es jetzt die Moegloichkeit dazu % \ifdefuser\else\defuser\fi } \def\enddocument{\@checkend{document}\newpage\begingroup \if@filesw \immediate\closeout\@mainaux \makeatletter\input \jobname.aux\clearpage \fi\endgroup\deadcycles\z@\@@end} \def\makelabels{\@fileswtrue} \def\@startlabels{} % % **************************************** % * PAGE STYLES * % **************************************** % \gdef\@knickpoint{% \vbox to0pt{% \vskip1.8cm% \noindent\hbox to0pt{\hskip-1.8cm \null\vrule height.3pt width.5cm \hss}% \vss}% } \def\ps@firstpage{ % \headheight 7.5cm \def\@smallfrom{% \hbox{% \ifx\@empty\sfromlogo % \tiny \fromname\ $\cdot$ \fromstreet\ $\cdot$ \fromcity % \else % \tiny \sfromlogo\ $\cdot$ \fromstreet\ $\cdot$ \fromcity % \fi } } \def\@from{% \parbox[t]{0.33\textwidth}{\raggedright \vspace{8mm} % \iffrom % \scriptsize % \fromname \\ % \fromstreet \\ % \fromcity \\ % \parbox[t]{\telewidth}{Telefon} % \parbox[t]{\telenumwidth}{\telephonenum} \\ \ifx\@empty\faxnum \else% \parbox[t]{\telewidth}{Telefax} % \parbox[t]{\telenumwidth}{\faxnum} \\ \fi% \normalsize % \else % \par \vspace{5mm} \par % \fi \vspace{12mm} \date}} \gdef\@firsthed{ \vbox { \iftoplogo% \ifx\@empty\fromlogo% \parbox{\textwidth}{\Huge \fromname}% \else % \ifsymlogo% \parbox{\textwidth}{\symlogo}% \else % {\toplogofnt \fromlogo}% \fi% \fi% \fi% \vskip 3mm \iftoprule % \rule[0pt]{\textwidth}{1pt} % \fi% } } \def\@firsthef{ % \hbox to0pt{\@knickpoint\hss}% \vbox to \headheight{ % \@firsthed \vspace*{21mm}\par \vbox{ \parbox[t]{.6\textwidth}{ \vspace{8mm} \ifsmallfrom % \raggedright \@smallfrom % \vskip 1mm % \hrule % \fi \vskip 5mm \hspace*{.05\textwidth} \parbox[t]{.5\textwidth}{ \ifx\toname\@empty \ifx\toaddress\@empty \vbox{.} \vspace{3cm} \vbox{.} \fi \else \toname \\ \toaddress \fi } } \hfil \@from } \vspace*{10mm} % \vfill } } \def\@oddhead{% \kern-9pt % \@firsthef } \def\@oddfoot{% \kern-3pt \vbox{ \ifbottomrule % \rule[0pt]{\textwidth}{1pt} % \ifbankv % \scriptsize Bankverbindung: \bankname\ $\cdot$ BLZ.\bankzahl\ $\cdot$ Kto.\kontono % \hfill % \fi % \fi } } \def\@evenfoot{ \iftoprule % \vbox{\rule[0pt]{\textwidth}{1pt} } % \fi } \global\textheight 21.7cm \global\@colht\textheight \global\@colroom\textheight \global\vsize\textheight } \def\ps@plain{ % \def\@plainhef{ % \vbox to \headheight { \@firsthed \vskip 10mm \vbox{\rm \hfil Seite \thepage } \vfill} } \def\@oddhead{ \kern-9pt % \@plainhef } \def\@oddfoot{ \vbox{ \ifbottomrule\rule[0pt]{\textwidth}{1pt}\fi} } \let\@evenhead\@oddhead \def\@evenfoot{ \vbox{ \iftoprule\rule[0pt]{\textwidth}{1pt}\fi } } } \let\anlage\encl \let\kopie\cc % % stbrief default preparation % \ps@plain % 'plain' page style \pagenumbering{arabic} % Arabic page numbers \onecolumn % Single-column \@fileswfalse % Inhibits writing of .AUX file. % % **************************************** % * DEFINE USER * % **************************************** % \gdef\defuser{ % \openin1 defuser.sty \ifeof1 \closein1\relax \typeout{} \typeout{TeX kann den DefUser.Sty nicht finden. Sie muessen die von Hand} \typeout{erstellte Datei mit den benutzerspezifischen Daten in die Liste} \typeout{der Optionen im \string\documentstyle~ eintragen. Sie sollten versuchen} \typeout{sich den DefUser.Sty zu besorgen, da er ihnen viel Arbeit erspart} \typeout{und immer ueber den neusten Stand des STBrief.Sty informiert ist.} \typeout{} \typeout{Da Ihr Brief ohne die benutzerspezifischen Daten nicht auskommt,} \typeout{wird an dieser Stelle der TeXlauf abgebrochen.} \typeout{} \typein[\return]{Druecken Sie !} \end{document} \else \closein1\relax \def\ja{j} \def\Ja{J} \typeout{} \typeout{Achtung:} \typeout{} \typeout{Wie sie wissen, benoetigt man fuer den STBrief.Sty eine Datei mit} \typeout{benutzerspezifischen Daten. Hier gibt es nun die Moeglichkeit} \typeout{diese Datei interaktiv anzulegen und gleich zu verwenden. Sollten} \typeout{jedoch eine solche Datei schon existieren, so geben sie einfach} \typeout{deren Namen ein.} \typeout{} \typein[\filename]{Bitte den Namen des DefUser-Files eingeben (ohne Extension):} \typeout{} \typeout{Merken Sie sich den Dateinamen \filename[.sty], damit Sie ihn} \typeout{demnaechst im \string\documentstyle~ als Option angeben koennen.} \openin2\filename.sty \ifeof2 \closein2\relax \typeout{} \typeout{Keine Datei namens \filename.sty~ gefunden.} \typeout{Der DefUser.Sty wird Ihnen helfen eine zu erstellen.} \input{defuser.sty} \else \closein2\relax \typeout{} \typein[\antwort]{Soll die Datei \filename.sty~ geaendert werden (J/N)? [N]} \if\antwort\ja\let\antwort\Ja\fi \if\antwort\Ja \input{defuser.sty} \else \input{\filename.sty} \fi \fi \fi }