% \CheckSum{2031}
% \iffalse
%
% scrlettr.dtx Copyright (C) 1995-1996 Markus Kohm
%
% This file is part of the LaTeX2e KOMA-Script-Bundle
%
% It should be distributed UNCHANGED and together with all other
% files in the KOMA-Script-Bundle. The file readme.txt contains a list
% of all these files.
%
% A modified version of this file may be distributed, but it should
% be distributed with a DIFFERENT name. Changed files must be
% distributed TOGETHER WITH A COMPLETE AND UNCHANGED distribution
% of these files.
%
% See also readme.txt for further information.
%
% This bundle is written specialy for use at german-language. So the
% main documentation is german. Perhaps there'll be a time, you may
% get a english documentation. If you want to write it, you may
% contact me, see readme.txt.
%
%
% Das ganze jetzt noch einmal kurz auf Deutsch:
%
% Diese Datei ist Teil des LaTeX2e KOMA-Script Pakets.
%
% Die Datei sollte nur UNVER"ANDERT und zusammen mit allen anderen
% Dateien aus dem Paket weitergegeben werden. Die Datei liesmich.txt
% enth"alt eine Liste all dieser Dateien.
%
% Eine ver"anderte Version dieser Datei darf weitergegeben werden,
% aber nur, wenn sie einen ANDEREN Namen bekommt. Ver"anderte Dateien
% d"urfen nur ZUSAMMEN MIT EINER KOMPLETTEN UND UNVER"ANDERTEN Version
% dieser Dateien weitergegeben werden.
%
% Unter keinen Umst"anden ist erlaubt, durch Weitergabe oder zur Verf"ugung
% stellen einer oder mehrerer Dateien aus dem KOMA-Script Paket einen
% wie auch immer gearteten Gewinn zu erzielen.
%
% Weitere Informationen sind in liesmich.txt zu finden.
%
% Dieses Paket ist f"ur den deutschen Sprachraum konzipiert. Daher ist
% auch die Haupt-Anleitung komplett in Deutsch. Vielleicht wird es irgendwann
% auch einmal eine englische Dokumentation geben. Wer eine solche
% erstellen m"ochte, kann sich gerne an mich wenden. Siehe dazu ebenfalls
% liesmich.txt.
%
% \CharacterTable
% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
% Digits \0\1\2\3\4\5\6\7\8\9
% Exclamation \! Double quote \" Hash (number) \#
% Dollar \$ Percent \% Ampersand \&
% Acute accent \' Left paren \( Right paren \)
% Asterisk \* Plus \+ Comma \,
% Minus \- Point \. Solidus \/
% Colon \: Semicolon \; Less than \<
% Equals \= Greater than \> Question mark \?
% Commercial at \@ Left bracket \[ Backslash \\
% Right bracket \] Circumflex \^ Underscore \_
% Grave accent \` Left brace \{ Vertical bar \|
% Right brace \} Tilde \~}
%
%<*dtx>
\ProvidesFile{scrlettr.dtx}
%
%\NeedsTeXFormat{LaTeX2e}[1995/12/01]
%\ProvidesFile{scrlettr.drv}
%\ProvidesClass{scrlettr}
%\ProvidesPackage{scraddr}
%\ProvidesFile{dir.tex}
%\ProvidesFile{phone.tex}
%<*scrlettr|dir|phone|dtx|driver>
[1996/05/31 v2.3e LaTeX2e KOMA
%
% document class]
% [1996/01/22 v1.0 LaTeX2e KOMA package]
% interactiv address-directory generation]
% interactiv phone-number-directory generation]
%
%<*driver>
Script bundle]
\documentclass{ltxdoc}
\usepackage[a4paper,BCOR15mm,DIV12]{typearea}
\usepackage{german}
\DoNotIndex{\.,\@@par,\@M,\@abstrtfalse,\@abstrttrue,\@addtoreset}
\DoNotIndex{\@afieldfalse,\@afieldtrue,\@afterheading}
\DoNotIndex{\@afterindentfalse,\@arabic,\@badmath,\@beginparpenalty}
\DoNotIndex{\@biglocfalse,\@bigloctrue,\@bsphack}
\DoNotIndex{\@car,\@cdr,\@centercr,\@cite,\@dblfloat,\@dotsep}
\DoNotIndex{\@dottedtocline,\@empty,\@endparpenalty,\@endpart,\@esphack}
\DoNotIndex{\@finclfalse,\@fincltrue,\@float,\@fontswitch,\@foldfalse}
\DoNotIndex{\@foldtrue,\@fslfalse,\@fsltrue,\@gobbletwo}
\DoNotIndex{\@hangfrom,\@highpenalty,\@hinclfalse,\@hincltrue,\@hslfalse}
\DoNotIndex{\@hsltrue,\@idxitem,\@ifnextchar,\@ifundefined,\@ifstar}
\DoNotIndex{\@itempenalty}
\DoNotIndex{\@latex@warning,\@m,\@mainmatterfalse,\@mainmattertrue}
\DoNotIndex{\@medpenalty,\@minus,\@mkboth,\@mparswitchfalse,\@mparswitchtrue}
\DoNotIndex{\@ne,\@nil,\@nobreakcr,\@nobreakfalse,\@nobreaktrue}
\DoNotIndex{\@nobreakvspace,\@nobreakvspacex,\@noitemerr,\@nomath,\@normalcr}
\DoNotIndex{\@openbibfalse,\@openbibtrue,\@openrightfalse,\@openrighttrue}
\DoNotIndex{\@plus,\@processto,\@reffalse,\@reftrue,\@restonecolfalse}
\DoNotIndex{\@restonecoltrue}
\DoNotIndex{\@subjfalse,\@subjtrue}
\DoNotIndex{\@tempa,\@tempboxa,\@tempdima,\@tempswafalse,\@tempswatrue}
\DoNotIndex{\@titlepagefalse,\@titlepagetrue,\@tocrmarg,\@topnewpage}
\DoNotIndex{\@topnum,\@twocolumnfalse,\@twocolumntrue,\@twosidefalse}
\DoNotIndex{\@twosidetrue}
\DoNotIndex{\@whiledim,\@whilenum,\@xnewline,\@xproc,\\,\ }
\DoNotIndex{\addcontentsline,\addpenalty,\addtocontents,\addtolength}
\DoNotIndex{\addvspace,\advance,\Alph,\alph,\arabic,\Ask,\AtBeginDocument}
\DoNotIndex{\begin,\begingroup,\bfseries,\bgroup,\box,\bullet}
\DoNotIndex{\c@figure,\c@page,\c@secnumdepth,\c@table,\c@tocdepth}
\DoNotIndex{\cal,\cdot,\centering,\changes,\ClassWarningNoLine}
\DoNotIndex{\cleardoublepage,\clearpage}
\DoNotIndex{\cmd,\col@number,\CurrentOption,\CodelineIndex,\csname}
\DoNotIndex{\day,\dblfloatpagefraction,\dbltopfraction,\Decisionfalse}
\DoNotIndex{\Decisiontrue,\DeclareOldFontCommand}
\DoNotIndex{\DeclareOption,\def,\defpar,\DisableCrossrefs}
\DoNotIndex{\divide,\documentclass,\DoNotIndex,\dotfill}
\DoNotIndex{\iden,\ifdim,\else,\fi,\egroup,\empty,\em,\EnableCrossrefs,\end}
\DoNotIndex{\end@dblfloat,\endcsname,\endletter}
\DoNotIndex{\end@float,\endgroup,\endlist,\endquotation,\endtitlepage}
\DoNotIndex{\everypar,\ExecuteOptions,\expandafter}
\DoNotIndex{\fboxrule,\fboxsep,\fontsize,\frenchspacing}
\DoNotIndex{\gdef,\global}
\DoNotIndex{\hangindent,\hbox,\hfil,\hfill,\hrule,\hsize,\hskip,\hspace,\hss}
\DoNotIndex{\if@tempswa,\ifcase,\or,\fi,\fi}
\DoNotIndex{\ifnum,\ifodd,\ifvmode,\ifx,\fi,\fi,\fi,\fi}
\DoNotIndex{\ignorespaces,\input,\InputIfFileExists,\item,\itshape,\j,\ja}
\DoNotIndex{\kern,\LARGE,\Large,\leavevmode,\leftmark,\leftskip,\let}
\DoNotIndex{\lineskip,\list,\long}
\DoNotIndex{\m@ne,\m@th,\marginpar,\marginparpush,\markboth,\markright}
\DoNotIndex{\mathbf,\mathcal}
\DoNotIndex{\mathit,\mathnormal,\mathrm,\mathsf,\mathtt,\MessageBreak,\month}
\DoNotIndex{\newblock,\newcommand,\newcount,\newcounter,\newdimen}
\DoNotIndex{\newenvironment,\newlength,\newpage,\nobreak,\noindent}
\DoNotIndex{\normalfont,\normallineskip,\normalsize,\null,\number}
\DoNotIndex{\numberline}
\DoNotIndex{\OldMakeindex,\OnlyDescription,\overfullrule}
\DoNotIndex{\p@,\PackageError,\PackageInfo,\PackageWarningNoLine}
\DoNotIndex{\pagenumbering,\pagestyle,\par,\paragraph,\parbox}
\DoNotIndex{\PassOptionsToPackage,\pcal,\penalty,\pmit,\PrintChanges}
\DoNotIndex{\PrintIndex,\ProcessOptions,\protect,\providecommand}
\DoNotIndex{\ProvidesClass}
\DoNotIndex{\raggedbottom,\raggedleft,\raggedright,\refstepcounter,\relax}
\DoNotIndex{\renewcommand,\RequirePackage,\reset@font,\reversemarginpar}
\DoNotIndex{\rightmargin,\rightmark,\rightskip,\rmfamily,\Roman,\roman,\rule}
\DoNotIndex{\sc@septext,\sc@temp,\sc@@temp,\scshape,\secdef,\setbox}
\DoNotIndex{\setcounter,\setlength}
\DoNotIndex{\settowidth,\sfcode,\sffamily,\skip,\sloppy,\slshape,\space}
\DoNotIndex{\string,\strip,\strut,\subjectoff,\subjecton}
\DoNotIndex{\ta@temp,\the,\thispagestyle,\triangleright,\ttfamily,\twocolumn}
\DoNotIndex{\typein,\typeout}
\DoNotIndex{\undefined,\underline,\unhbox,\usecounter,\usepackage}
\DoNotIndex{\vadjust,\vfil,\vfill,\vspace}
\DoNotIndex{\wd,\xdef,\y,\year,\yes,\z@}
%
\begin{document}
\DocInput{scrlettr.dtx}
\end{document}
%
% \fi
%
% \GetFileInfo{scrlettr.dtx}
%
% \makeatletter
% \def\macro{\begingroup
% \catcode`\\12
% \MakePrivateLetters \m@cro@ 0}
% \def\environment{\begingroup
% \catcode`\\12
% \MakePrivateLetters \m@cro@ 1}
% \def\option{\begingroup
% \catcode`\\12
% \MakePrivateLetters \m@cro@ 2}
% \long\def\m@cro@#1#2{\endgroup \topsep\MacroTopsep \trivlist
% \edef\saved@macroname{\string#2}%
% \ifcase #1%
% \edef\saved@@macroname{\expandafter\@gobble\saved@macroname}
% \or
% \edef\saved@@macroname{\expandafter\@gobble\saved@macroname}
% \else
% \let\saved@@macroname\saved@macroname
% \fi
% \def\makelabel##1{\llap{##1}}%
% \if@inlabel
% \let\@tempa\@empty \count@\macro@cnt
% \loop \ifnum\count@>\z@
% \edef\@tempa{\@tempa\hbox{\strut}}\advance\count@\m@ne \repeat
% \edef\makelabel##1{\llap{\vtop to\baselineskip
% {\@tempa\hbox{##1}\vss}}}%
% \advance \macro@cnt \@ne
% \else \macro@cnt\@ne \fi
% \edef\@tempa{\noexpand\item[%
% \ifcase #1%
% \noexpand\PrintMacroName
% \or
% \noexpand\PrintEnvName
% \else
% \noexpand\PrintOptionName
% \fi
% {\string#2}]}%
% \@tempa
% {\advance\c@CodelineNo\@ne
% \ifcase #1%
% \SpecialMainIndex{#2}\nobreak
% \DoNotIndex{#2}%
% \or
% \SpecialMainEnvIndex{#2}\nobreak
% \else
% \SpecialOptionIndex{#2}\nobreak
% \fi
% }%
% \ignorespaces}
% \let\endoption\endtrivlist
% \@ifundefined{PrintOptionName}
% {\def\PrintOptionName#1{\strut \MacroFont #1\ }}{}
% \def\SpecialOptionIndex#1{\@bsphack
% \index{#1\actualchar{\protect\ttfamily#1}
% (option)\encapchar usage}%
% \index{options:\levelchar{\protect\ttfamily#1}\encapchar
% usage}\@esphack}
% \def\changes@#1#2#3{%
% \protected@edef\@tempa{\noexpand\glossary{#1\levelchar
% \ifx\saved@macroname\@empty
% \space
% \actualchar
% \generalname
% \else
% \saved@@macroname
% \actualchar
% \string\verb\quotechar*\verbatimchar%
% \saved@macroname
% \verbatimchar
% \fi
% :\levelchar #3}}%
% \@tempa\endgroup\@esphack}
% \makeatother
%
% \title{Die Brief-class im \textsf{KOMA-Script} Paket\thanks{Diese Datei
% hat die Versionsnummer \fileversion, letzte "Anderung vom
% \filedate.}}
% \author{Frank Neukam\and Markus Kohm}
% \date{\filedate}
% \maketitle
%
% \tableofcontents
%
% \changes{v2.0e}{1994/10/28}{Erste Version, die \texttt{docstrip} verwendet.}
% \changes{v2.3b}{1996/01/14}{Diverse \cs{newcommand} mit und ohne
% Parameter durch \cs{newcommand*} ersetzt.}
% \changes{v2.3b}{1996/01/14}{Diverse \cs{renewcommand} mit und ohne
% Parameter durch \cs{renewcommand*} ersetzt.}
%
% \part{Anleitung}
%
% \section{Generelles}
%
% \subsection{Rechtliches}
% Es wird keinerlei Haftung "ubernommen f"ur irgendwelche Sch"aden,
% die aus der Benutzung der Programme und Dateien des hier
% beschriebenen Paketes folgen.
%
% \subsection{Das \textsf{KOMA-Script} Paket}
%
% Das gesamte \textsf{KOMA-Script} Paket besteht aus mehreren Teilen.
% Der Teil |scrclass.dtx| beinhaltet die Haupt-classes |scrartcl.cls|,
% |scrreprt.cls| und |scrbook.cls| sowie das von diesen ben"otigte package
% |typearea.sty|.
%
% Die urspr"unglich ebenfalls in |komascr.dtx| enthaltene Anleitung wurde von
% Harald Sommerfeldt "uberarbeitet und ist nun als getrennte Datei
% |scrguide.tex| zu finden. |scrguide.tex| sollte am selben Ort verf"ugbar
% sein, an dem Sie auch |scrlettr.dtx| gefunden haben.
%
% Die urspr"unglich in |komascr.dtx| enthaltene Brief-class |scrlettr.cls|
% liegt nun hier als |scrlettr.dtx| ebenfalls separat bei.
%
% Zum Gesamtpaket geh"oren weitere Dateien.
% Eine Aufz"ahlung finden Sie in der Installationsanleitung |liesmich.txt|.
% Dort ist auch angegeben, wie die classes, packages und anderer Dateien
% aus den |*.dtx|-Dateien extrahiert werden.
%
%
% \StopEventually
%
% \part{"`scrlettr"'-class}
%
% \section{Implementierung}
%
% \begin{macrocode}
%<*scrlettr>
% \end{macrocode}
%
% \changes{v2.0}{1993/12/01}{Letzte "`script\_l"'-\LaTeX~2.0-Version
% von Frank Neukam}
% \changes{v2.0-2e}{1994/10/08}{"`script\_l"'-\LaTeXe-Version
% von Axel Kielhorn}
% \changes{v2.0e}{1994/10/12}{Erste "`scrlettr"'-Version im
% \textsf{KOMA-Script} Paket}
% \changes{v2.3e}{1996/05/31}{Faltmarken korrigiert}
% Die Implementierung von |scrlettr| stammt im wesentlichen von Frank Neukam.
% Axel Kielhorn hat sie nach \LaTeXe portiert, wobei die von Roland T. Lichti
% modifizierte Version zugrunde gelegt wurde. Markus Kohm hat nur einige
% wenige, unwesentliche "Anderungen vorgenommen.
%
% \subsection{Optionen}
%
% \begin{macrocode}
\newcommand*\@ptsize{}
\newif\if@bigloc
% \end{macrocode}
%
% \subsubsection{Standardoptionen}
%
% \changes{v2.1a}{1994/10/29}{Meldung bei \texttt{twoside}-Option in
% "`scrlettr"' ge"andert}
% \begin{option}{10pt}
% \begin{option}{11pt}
% \begin{option}{12pt}
% \begin{option}{oneside}
% \begin{option}{twoside}
% \begin{option}{draft}
% \begin{option}{final}
% \begin{macrocode}
\DeclareOption{10pt}{\renewcommand*\@ptsize{0}}
\DeclareOption{11pt}{\renewcommand*\@ptsize{1}}
\DeclareOption{12pt}{\renewcommand*\@ptsize{2}}
\DeclareOption{oneside}{\@twosidefalse \@mparswitchfalse}
\DeclareOption{twoside}{\@twosidetrue \@mparswitchtrue%
\ClassWarningNoLine{scrlettr}{This is no twoside-layout but openright!}
}
\DeclareOption{draft}{\overfullrule 5pt}
\DeclareOption{final}{\setlength\overfullrule{0pt}}
% \end{macrocode}
% \end{option}
% \end{option}
% \end{option}
% \end{option}
% \end{option}
% \end{option}
% \end{option}
%
% \subsubsection{Optionen f"ur das Adre"sfenster}
%
% \begin{option}{wlocfield}
% \begin{option}{slocfield}
% Mit Hilfe der Optione |wlocfield| kann der Platz neben dem Adre"sfeld
% vergr"o"sert werden. Mit |slocfield| wird der normale, kleine Platz
% verwendet.
% \begin{macrocode}
\DeclareOption{wlocfield}{\@bigloctrue}
\DeclareOption{slocfield}{\@biglocfalse}
% \end{macrocode}
% \end{option}
% \end{option}
%
% \subsubsection{Optionenwahl}
%
% Standard sind bei |scrlettr| die Optionen |12pt|, |oneside|, |final| und
% |slocfield|. Diese k"onnen durch explizite Optionsangabe "uberschrieben
% werden.
% \begin{macrocode}
\ExecuteOptions{12pt,oneside,final,slocfield}
\ProcessOptions
\input{size1\@ptsize.clo}
% \end{macrocode}
%
% \subsection{"`Alte"' Fontauswahlbefehle}
%
% \begin{macro}{\rm}
% \begin{macro}{\sf}
% \begin{macro}{\tt}
% \begin{macro}{\bf}
% \begin{macro}{\it}
% \begin{macro}{\sl}
% \begin{macro}{\sc}
% \begin{macro}{\sfb}
% \changes{v2.3b}{1996/01/14}{nicht mehr mathematisch.}
% \changes{v2.3b}{1996/01/14}{Keine Unterscheidung mehr f"ur den
% Kompatibilit"atsmodus.}
% Die alten Font-Auswahlbefehle werden zwar noch unterst"utzt, sollten
% aber in der Regel nicht mehr verwendet werden, da sie nach dem alten
% Fontauswahlverfahren arbeiten. Im Kompatibilit"atsmodus wurde dies
% beim nicht standardgem"a"sen Befehl |\sfb| noch verst"arkt.
% \begin{macrocode}
\DeclareOldFontCommand{\rm}{\normalfont\rmfamily}{\mathrm}
\DeclareOldFontCommand{\sf}{\normalfont\sffamily}{\mathsf}
\DeclareOldFontCommand{\tt}{\normalfont\ttfamily}{\mathtt}
\DeclareOldFontCommand{\bf}{\normalfont\bfseries}{\mathbf}
\DeclareOldFontCommand{\it}{\normalfont\itshape}{\mathit}
\DeclareOldFontCommand{\sl}{\normalfont\slshape}{\@nomath\sl}
\DeclareOldFontCommand{\sc}{\normalfont\scshape}{\@nomath\sc}
\DeclareOldFontCommand{\sfb}{\normalfont\sffamily\bfseries}{\@nomath\sfb}
% \end{macrocode}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
%
% \subsection{Font-Variablen}
%
% \begin{macro}{\descfont}
% \begin{macro}{\sectfont}
% \changes{v2.3b}{1996/01/14}{\cs{sectfont} wird nun verwendet}
% \begin{macro}{\pnumfont}
% \begin{macro}{\headfont}
% \begin{macro}{\capfont}
% \begin{macro}{\caplabelfont}
% Auch in der |scrlettr|-class werden verschiedene Font-Variablen verwendet.
% \begin{macrocode}
\newcommand*\descfont{\sffamily\bfseries}
\newcommand*\sectfont{\sffamily\bfseries}
\newcommand*\pnumfont{\normalfont}
\newcommand*\headfont{\slshape}
\newcommand*\capfont{\normalfont}
\newcommand*\caplabelfont{\normalfont}
% \end{macrocode}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
%
% \subsection{Standard-Labels}
%
% \changes{v2.2b}{1995/02/16}{Sprachauswahl an german.sty Version 2.5b
% angepa"st}
% \begin{macro}{\captionsenglish}
% \begin{macro}{\captionsUSenglish}
% \begin{macro}{\captionsgerman}
% \changes{v2.2a}{1994/01/26}{{\cmd\subjectname} korrigiert}
% \begin{macro}{\captionsaustrian}
% \begin{macro}{\captionsfrench}
% \begin{macro}{\captionsitalian}
% \changes{v2.3e}{1996/05/31}{Sprachspende von Simone Naldi}
% Bei |scrlettr| gibt es eine gro"se Anzahl von Label-Variablen, die es
% in den Standard-classes nicht gibt, die also auch nicht in
% Sprachanpassungen wie |german.sty| oder |german3.sty| vorhanden sind.
% Deshalb ist es notwendig diese Labels hier neu zu definieren. Weil es
% in fr"uheren Versionen zu Problemen damit gekommen ist, werden diese
% jedoch erst bei |\begin{document}| definiert. Sollen sie nachtr"aglich
% ge"andert werden, mu"s dies \emph{nach} |\begin{document}| geschehen.
%
% \begin{macrocode}
\AtBeginDocument{
\def\captionsenglish{%
\def\yourrefname{Your ref.}
\def\yourmailname{Your letter of}
\def\myrefname{Our ref.}
\def\customername{Customer no.}
\def\invoicename{Invoice no.}
\def\subjectname{Subject}
\def\ccname{cc}
\def\enclname{encl}
\def\headtoname{To}
\def\datename{Date}
\def\pagename{Page}}
\let\captionsUSenglish=\captionsenglish
\def\captionsgerman{%
\def\yourrefname{Ihr Zeichen}
\def\yourmailname{Ihr Schreiben vom}
\def\myrefname{Unser Zeichen}
\def\customername{Kundennummer}
\def\invoicename{Rechnungsnummer}
\def\subjectname{Betr.}
\def\ccname{Kopien an}
\def\enclname{Anlagen}
\def\headtoname{An}
\def\datename{Datum}
\def\pagename{Seite}}
\let\captionsaustrian=\captionsgerman
\def\captionsfrench{%
\def\yourrefname{Vos r\'ef\'erences}
\def\yourmailname{Votre lettre du}
\def\myrefname{Nos r\'ef\'erences}
\def\customername{Num\'ero de client}
\def\invoicename{Num\'ero de facture}
\def\subjectname{Concernant}
\def\ccname{Copie \`a}
\def\enclname{Annexes}
\def\headtoname{A}
\def\datename{Date}
\def\pagename{Page}}
\def\captionsitalian{%
\def\yourrefname{Vs./Rif.}
\def\yourmailname{Vs.~lettera del}
\def\myrefname{Ns./Rif.}
\def\customername{Nr.~cliente}
\def\invoicename{Nr.~fattura}
\def\subjectname{Oggetto}
\def\ccname{Per conoscenza}
\def\enclname{Allegato}
\def\headtoname{A}
\def\datename{Data}
\def\pagename{Pagina}}
% \end{macrocode}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
%
% \begin{macro}{\dateenglish}
% \begin{macro}{\dateUSenglish}
% \begin{macro}{\dategerman}
% \begin{macro}{\dateaustrian}
% \begin{macro}{\datefrench}
% \begin{macro}{\dateitalian}
% \changes{v2.3e}{1996/05/31}{ich hoffe, da"s das stimmt}
% Dar"uber hinaus ist auch das Datumsformat sprachabh"angig. Dies wird
% hier ebenfalls beachtet.
% \begin{macrocode}
\def\dateenglish{\def\today{\number\day/\number\month/\number\year}}
\def\dateUSenglish{\def\today{\number\month/\number\day/\number\year}}
\def\dategerman{\def\today{\number\day.\,\number\month.\,\number\year}}
\let\dateaustrian=\dategerman
\let\datefrench=\dategerman
\let\dateitalian=\dategerman
% \end{macrocode}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% Zum Schlu"s findet noch die eigentliche Auswahl statt. Diese orientiert
% sich nun an der Auswahl nach german.sty 2.5b und verwendet keine festen
% Sprachzuordnungen mehr. Daf"ur sind nun keine Erweiterungen f"ur andere
% Sprachen mehr m"oglich.
% \changes{v2.2c}{1995/03/20}{Im Sprachenvergleich fehlten die "`="' hinter
% {\cmd\language}}
% \begin{macrocode}
\captionsenglish
\dateenglish
\ifx\l@USenglish\undefined\else\ifnum\language=\l@USenglish
\captionsUSenglish
\dateUSenglish
\fi\fi
\ifx\l@german\undefined\else\ifnum\language=\l@german
\captionsgerman
\dategerman
\fi\fi
\ifx\l@austrian\undefined\else\ifnum\language=\l@austrian
\captionsgerman
\dategerman
\fi\fi
\ifx\l@french\undefined\else\ifnum\language=\l@french
\captionsfrench
\datefrench
\fi\fi
\ifx\l@italian\undefined\else\ifnum\language=\l@italian
\captionsitalian
\dateitalian
\fi\fi}
% \end{macrocode}
%
% \subsection{Seitenspiegel}
%
% |scrlettr| arbeitet mit einem festen Seitenspiegel, der f"ur Briefe
% im A4-Format ausgelegt ist.
% \changes{v2.2c}{1995/05/25}{{\cmd\headheight} und {\cmd\textheight}
% ge"andert}
%
% \begin{macrocode}
\oddsidemargin 0in
\evensidemargin 0in
\marginparwidth 0.9in
\marginparsep 0.1in
\marginparpush 0.45\baselineskip
\topmargin -19mm % mk 941012, was: -15.5mm
\headheight 23mm % mk 950411, was: 22mm
\headsep 8mm % mk 941012, was: 9mm
\footskip 20mm % mk 941012, was: 30mm
\textheight 226mm % mk 950411, was: 217mm
\textwidth 159.2mm
\parskip 0.5\baselineskip % mk 941012
\parindent 0pt
\smallskipamount=0.5\parskip
\medskipamount =\parskip
\bigskipamount =2\parskip
\footnotesep 0.8\baselineskip
\skip\footins 0.75\baselineskip plus 2pt minus 4pt
\skip\@mpfootins =\skip\footins
\columnsep 1cc
\columnseprule 0pt
% \end{macrocode}
%
% \subsection{Flie"sumgebungen}
%
% Es folgen die Einstellungen f"ur Abbildungen
% \begin{macrocode}
\floatsep 1\baselineskip plus 2pt minus 2pt
\textfloatsep 20pt plus 2pt minus 4pt
\intextsep 1\baselineskip plus 2pt minus 2pt
\dblfloatsep 1\baselineskip plus 2pt minus 2pt
\dbltextfloatsep 20pt plus 2pt minus 4pt
\@fptop 0pt plus 1fil
\@fpsep 0.7\baselineskip plus 2fil
\@fpbot 0pt plus 1fil
\@dblfptop 0pt plus 1fil
\@dblfpsep 0.7\baselineskip plus 2fil
\@dblfpbot 0pt plus 1fil
% \end{macrocode}
% und f"ur Flie"stabellen
% \begin{macrocode}
\arraycolsep 5pt
\tabcolsep 6pt
\arrayrulewidth 0.4pt
\doublerulesep 2pt
\fboxsep 3pt
\fboxrule 0.4pt
\tabbingsep \labelsep
% \end{macrocode}
%
% \subsection{Listen-Umgebungen}
%
% Die Einstellungen f"ur Listenumgebungen entsprechen im Wesentlichen
% den gewohnten.
% \begin{macrocode}
\topsep 0.25\baselineskip
\partopsep 0pt
\itemsep 0.25\baselineskip
\parsep 0.25\baselineskip % ak: 1\baselineskip
\labelsep .5em
\leftmargini 2.5em
\leftmarginii 2.2em
\leftmarginiii 1.87em
\leftmarginiv 1.7em
\leftmarginv 1em
\leftmarginvi 1em
\leftmargin\leftmargini
\labelwidth\leftmargini
\advance\labelwidth-\labelsep
\def\@listI{\leftmargin\leftmargini}
\let\@listi\@listI
\def\@listii{\leftmargin\leftmarginii
\labelwidth\leftmarginii\advance\labelwidth-\labelsep}
\def\@listiii{\leftmargin\leftmarginiii
\labelwidth\leftmarginiii\advance\labelwidth-\labelsep}
\def\@listiv{\leftmargin\leftmarginiv
\labelwidth\leftmarginiv\advance\labelwidth-\labelsep}
\def\@listv{\leftmargin\leftmarginv
\labelwidth\leftmarginv\advance\labelwidth-\labelsep}
\def\@listvi{\leftmargin\leftmarginvi
\labelwidth\leftmarginvi\advance\labelwidth-\labelsep}
\@listi
\@lowpenalty 51
\@medpenalty 151
\@highpenalty 301
\@beginparpenalty -\@lowpenalty
\@endparpenalty -\@lowpenalty
\@itempenalty -\@lowpenalty
\def\theenumi{\arabic{enumi}}
\def\theenumii{\alph{enumii}}
\def\theenumiii{\roman{enumiii}}
\def\theenumiv{\Alph{enumiv}}
\def\labelenumi{\theenumi.}
\def\labelenumii{\theenumii)}
\def\labelenumiii{\theenumiii.}
\def\labelenumiv{\theenumiv.}
\def\p@enumii{\theenumi}
\def\p@enumiii{\theenumi\theenumii)}
\def\p@enumiv{\p@enumiii\theenumiii}
\def\labelitemi{$\bullet$}
\def\labelitemii{\bf --}
\def\labelitemiii{$\triangleright$}
\def\labelitemiv{$\cdot$}
% \end{macrocode}
%
% Es sind alle im \textsf{KOMA-Script} Paket "ublichen Listenumgebungen
% vorhanden:
%
% \subsubsection{"`description"'-Umgebung}
% \begin{macrocode}
\newenvironment{description}
{\list{}{\labelwidth\z@ \itemindent-\leftmargin
\let\makelabel\descriptionlabel}}
{\endlist}
\newcommand\descriptionlabel[1]{\hspace\labelsep
\descfont #1}
% \end{macrocode}
%
% \subsubsection{"`labeling"'-Umgebung}
% \begin{macrocode}
\newenvironment{labeling}[2][]
{\def\sc@septext{#1}
\list{}{\settowidth{\labelwidth}{#2#1}
\leftmargin\labelwidth \advance\leftmargin by \labelsep
\let\makelabel\labelinglabel}}
{\endlist}
\newcommand\labelinglabel[1]{#1\hfil\sc@septext}
% \end{macrocode}
%
% \subsubsection{"`verse"'-Umgebung}
% \begin{macrocode}
\newenvironment{verse}
{\let\\=\@centercr
\list{}{\itemsep \z@
\itemindent -1.5em%
\listparindent\itemindent
\rightmargin \leftmargin
\advance\leftmargin 1.5em}%
\item[]}
{\endlist}
% \end{macrocode}
%
% \subsubsection{"`quotation"'- und "`quote"'-Umgebung}
% \begin{macrocode}
\newenvironment{quotation}
{\list{}{\listparindent 1em%
\itemindent \listparindent
\rightmargin \leftmargin
\parsep \z@ \@plus\p@}%
\item[]}
{\endlist}
\newenvironment{quote}
{\list{}{\rightmargin\leftmargin}%
\item[]}
{\endlist}
% \end{macrocode}
%
% \subsection{Feld-Variablen}
%
% \begin{macro}{\fromname}
% \begin{macro}{\frombranch}
% \begin{macro}{\fromsig}
% \changes{2.2b}{1995/02/16}{Direkte Verwendung von {\cmd\fromname}}
% \begin{macro}{\fromaddress}
% \begin{macro}{\fromplace}
% \begin{macro}{\fromlocation}
% \begin{macro}{\frombackaddress}
% \begin{macro}{\telephonenum}
% \begin{macro}{\varyourref}
% \begin{macro}{\varyourmail}
% \begin{macro}{\varmyref}
% \begin{macro}{\varcustomer}
% \begin{macro}{\varinvoice}
% \begin{macro}{\varrefitemi}
% \begin{macro}{\varrefitemii}
% \begin{macro}{\varrefitemiii}
% \begin{macro}{\varrefitemnamei}
% \begin{macro}{\varrefitemnameii}
% \begin{macro}{\varrefitemnameiii}
% \begin{macro}{\@specialmail}
% \begin{macro}{\@title}
% \begin{macro}{\@subject}
% Es gibt in |scrlettr| verschiedene Feld-Variablen, die alle mit
% einer Zeichenkette belegt werden k"onnen, aber als leer
% initialisiert werden.
% \begin{macrocode}
\def\fromname{}
\def\frombranch{} % RTL 21.04.94
\def\fromsig{\fromname}
\def\fromaddress{}
\def\fromplace{}
\def\fromlocation{}
\def\frombackaddress{}
\def\telephonenum{}
\def\varyourref{}
\def\varyourmail{}
\def\varmyref{}
\def\varcustomer{}
\def\varinvoice{}
\def\varrefitemi{}
\def\varrefitemii{}
\def\varrefitemiii{}
\def\varrefitemnamei{}
\def\varrefitemnameii{}
\def\varrefitemnameiii{}
\def\@specialmail{}
\def\@title{}
\def\@subject{}
% \end{macrocode}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
%
% \begin{macro}{\name}
% \begin{macro}{\branch}
% \begin{macro}{\signature}
% \begin{macro}{\adress}
% \begin{macro}{\place}
% \begin{macro}{\location}
% \begin{macro}{\backaddress}
% \begin{macro}{\telephone}
% \begin{macro}{\yourref}
% \begin{macro}{\yourmail}
% \begin{macro}{\myref}
% \begin{macro}{\customer}
% \begin{macro}{\invoice}
% \begin{macro}{\refitemi}
% \begin{macro}{\refitemii}
% \begin{macro}{\refitemiii}
% \begin{macro}{\refitemnamei}
% \begin{macro}{\refitemnameii}
% \begin{macro}{\refitemnameiii}
% \begin{macro}{\specialmail}
% \begin{macro}{\title}
% \begin{macro}{\subject}
% F"ur jedes dieser Felder wird ein Befehl definiert, mit dem der
% Inhalt gesetzt werden kann, ohne da"s zu |\renewcommand| oder
% |\def| gegriffen werden mu"s. F"ur |\fromaddress| und
% |\fromlocation| kann mit |\address| bzw.
% |\location| auch eine komplexe \LaTeX-Definition
% gesetzt werden. F"ur die benutzerspezifischen Felder |\varrefitemi|,
% |\varrefitemii|, |\varrefitemiii| kann au"serdem jeweils ein Titel
% gesetzt werden.
% \begin{macrocode}
\def\name#1 {\def\fromname{#1}}
\def\branch#1 {\def\frombranch{#1}} % RTL 21.04.94
\def\signature#1{\def\fromsig{#1}}
\long\def\address#1{\def\fromaddress{#1}}
\def\place#1 {\def\fromplace{#1}}
\long\def\location#1{\def\fromlocation{#1}}
\def\backaddress#1{\def\frombackaddress{#1}}
\def\telephone#1{\def\telephonenum{#1}}
\def\yourref#1 {\def\varyourref{#1}}
\def\yourmail#1 {\def\varyourmail{#1}}
\def\myref#1 {\def\varmyref{#1}}
\def\customer#1 {\def\varcustomer{#1}}
\def\invoice#1 {\def\varinvoice{#1}}
\def\refitemi#1 {\def\varrefitemi{#1}}
\def\refitemii#1{\def\varrefitemii{#1}}
\def\refitemiii#1{\def\varrefitemiii{#1}}
\def\refitemnamei#1{\def\varrefitemnamei{#1}}
\def\refitemnameii#1{\def\varrefitemnameii{#1}}
\def\refitemnameiii#1{\def\varrefitemnameiii{#1}}
\def\specialmail#1{\def\@specialmail{#1}}
\def\title#1 {\def\@title{#1}}
\def\subject#1 {\def\@subject{{\bf #1}}}
% \end{macrocode}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
%
% \begin{macro}{\firsthead}
% \begin{macro}{\firstfoot}
% \begin{macro}{\nexthead}
% \begin{macro}{\nextfoot}
% Bei der Gelegenheit werden auch gleich die Befehle zum Setzen
% der Felder f"ur die Kopf- und Fu"szeilen der ersten und aller
% weiterer Seiten eines Briefes definiert.
% \begin{macrocode}
\long\def\firsthead#1{\def\@firsthead{#1}}
\long\def\firstfoot#1{\def\@firstfoot{#1}}
\long\def\nexthead#1{\def\@nexthead{#1}}
\long\def\nextfoot#1{\def\@nextfoot{#1}}
% \end{macrocode}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
%
% \subsection{Faltmarken, Adre"sfeld, Titel}
%
% Es werden Schalter f"ur Faltmarken, Adre"sfeld und Titel definiert.
% \begin{macrocode}
\newif\if@fold
\newif\if@afield
\newif\if@subj
% \end{macrocode}
%
% \begin{macro}{\foldmarkson}
% \begin{macro}{\foldmarksoff}
% Die Faltmarken k"onnen mit |\foldmarkson| ein- und mit |\foldmarksoff|
% abgeschaltet werden. Dies ist f"ur jeden Brief getrennt m"oglich.
% \begin{macrocode}
\def\foldmarkson {\@foldtrue}
\def\foldmarksoff {\@foldfalse}
% \end{macrocode}
% \end{macro}
% \end{macro}
%
% \begin{macro}{\addrfieldon}
% \begin{macro}{\addrfieldoff}
% Das Adre"sfeld f"ur Fensterumschl"age kann mit |\addrfieldon| ein- und
% mit |\addrfieldoff| abgeschaltet werden. Dies ist f"ur jeden Brief
% getrennt m"oglich.
% \begin{macrocode}
\def\addrfieldon {\@afieldtrue}
\def\addrfieldoff {\@afieldfalse}
% \end{macrocode}
% \end{macro}
% \end{macro}
%
% \begin{macro}{\subjecton}
% \begin{macro}{\subjectoff}
% Ein Betreff-Titel kann mit |\subjecton| ein- und mit |\subjectoff|
% abgeschaltet werden. Dies ist f"ur jeden Brief getrennt m"oglich.
% \begin{macrocode}
\def\subjecton {\@subjtrue}
\def\subjectoff {\@subjfalse}
% \end{macrocode}
% \end{macro}
% \end{macro}
%
% Zu Berechnung der Feldpositionen werden verschiedene
% Dimensions-Variablen ben"otigt.
% \begin{macrocode}
\newdimen\sc@temp
\newdimen\sc@@temp
\newdimen\foldhskip
\newdimen\foldvskipi
\newdimen\foldvskipii
\newdimen\foldvskipiii
\newdimen\addrvskip
\newdimen\addrindent
\newdimen\addrwidth
\newdimen\addrheight
\newdimen\locwidth
\newdimen\refvskip
\newdimen\sigindent
% \end{macrocode}
%
% F"ur alle Positionen gibt es Standardwerte. Diese Stellen sind leider
% extrem druckerabh"angig. Es ist daher "au"serst wichtig, da"s der
% Druckertreiber richtig eingestellt wird. Dazu kann die Testseite aus
% dem Standardpaket verwendet werden.
%
% Die Breite des "`locfield"'s h"angt von den Optionen |wlocfield| und
% |slocfield| ab und wird entweder zu $2/3$ oder $1/2$ der Restbreite
% neben dem Adre"sfeld berechnet.
%
% \begin{macrocode}
\foldhskip 3.5mm
\foldvskipi 62mm % war: 65mm RTL
\foldvskipii 45mm % mk 960531 (war: 40.5mm)
\foldvskipiii 54mm % mk 960531 (war: 58.5mm)
\addrvskip 7.5mm
\addrindent 0mm
\addrwidth 70mm
\addrheight 35mm
\locwidth\textwidth
\advance\locwidth by -\addrwidth
\if@bigloc % mk 940330
\advance\locwidth by \locwidth
\divide\locwidth by 3
\else
\divide\locwidth by 2
\fi
\refvskip 5.5mm
\sigindent 0mm
% \end{macrocode}
%
% \subsection{Serienbriefe und Adre"sdateien}
%
% \begin{macro}{\adrentry}
% \changes{v2.2b}{1995/05/25}{{\cmd\ifx} sicherer gemacht}
% \begin{macro}{\adrchar}
% Serienbriefe werden mit Hilfe der Funktionen |\adrentry| und
% |\adrchar| und einer Adressdatei realisiert. Dar"uber hinaus
% werden mit diesen Befehlen Abk"urzungen f"ur Adressen definiert.
% \begin{macrocode}
\def\adrentry#1#2#3#4#5#6#7#8{\def\@tempa{#1}\ifx \@tempa\@empty \else
\def\@tempa{#2}\ifx \@tempa\@empty
\expandafter\def\csname #8\endcsname{#1\\#3}
\else
\expandafter\def\csname #8\endcsname{#2 #1\\#3}
\fi \fi}
\def\adrchar#1{}
% \end{macrocode}
% \end{macro}
% \end{macro}
%
% \subsubsection{Adre"sliste oder Telefonverzeichnis}
%
% \iffalse
%
% \fi
% \begin{macrocode}
%<*dir|phone>
% \end{macrocode}
%
% \changes{v2.3}{1995/06/25}{In \texttt{dir.tex} und \texttt{phone.tex}
% {\cmd\@tempa} durch {\cmd\tempa} ersetzt.}
% Aus der Adre"sdatei kann mit Hilfe der \LaTeX-Datei |dir.tex| eine
% Adre"sliste f"ur Faltkalender erzeugt werden. Analog dazu kann mit
% Hilfe der \LaTeX-Datei |phone.tex| ein Televonverzeichnis erzeugt
% werden. Dazu mu"s |dir.tex| nur mit \LaTeX\ bearbeitet werden. Die
% Datei mu"s dazu nicht manipuliert werden. Die gesamte Arbeit erfolgt
% interaktiv.
%
% \begin{macrocode}
%
\documentclass[headsepline,10pt,twoside]{scrartcl}
%\documentclass[12pt]{scrartcl}
% \end{macrocode}
% Ein paar Definitionen, die anschlie"send die Arbeit erleichtern
% \begin{macro}{\jj}
% \changes{v2.2d}{1995/05/25}{changed {\cmd\j} into {\cmd\jj} because
% of dotles-j}
% \changes{v2.3a}{1995/07/08}{\cs{Ask} from \texttt{docstrip} copied}
% \begin{macro}{\ja}
% \begin{macro}{\y}
% \begin{macro}{\yes}
% \begin{macro}{\ttyin}
% \begin{macro}{\gobble}
% \begin{macro}{\iden}
% \begin{macro}{\strip}
% \begin{macro}{\defpar}
% \begin{macro}{\Ask}
% \begin{macro}{\ifDecision}
% \begin{macro}{\adrfile}
% \begin{macro}{\adrtitle}
% \begin{macrocode}
\newcommand*\jj {j}
\newcommand*\ja {ja}
\newcommand*\y {y}
\newcommand*\yes{yes}
\newread\ttyin
\newcommand*{\gobble}[1]{}
\def\iden#1{#1}
\def\strip#1#2 \gobble{\def #1{#2}}
\def\defpar{\par}
\def\Ask#1#2{%
\message{#2}\read\ttyin to #1\ifx#1\defpar\def#1{}\else
\iden{\expandafter\strip\expandafter#1#1\gobble\gobble} \gobble\fi}
\newif\ifDecision
\newcommand*\adrfile{}
\newcommand*\adrtitle{}
% \end{macrocode}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% Jetzt wird dar"uber informiert, da"s das ganze eigentlich von
% Frank Neukam stammt, und von mir nur etwas ver"andert wurde.
% \begin{macrocode}
\typeout{^^J%
% *** dir.tex v2.0 by Frank Neukam <01 Dec 1993>^^J%
% *** phone.tex v2.0 by Frank Neukam <01 Dec 1993>^^J%
*** LaTeX2e-changes by Markus Kohm 1994-1996^^J%
^^J%
% To create a address-directory just answer the questions:^^J%
% To create a phone-number-list just answer the questions:^^J%
^^J}
% \end{macrocode}
% Es wird gefragt und entschieden, ob die deutsche Anpassung ben"otigt
% wird.
% \begin{macrocode}
\Ask\answer{Use german? [y/n]^^J%
Mit deutscher Sprachanpassung? [j/n]}
\ifx\jj \answer \Decisiontrue\else
\ifx\ja \answer \Decisiontrue\else
\ifx\y \answer \Decisiontrue\else
\ifx\yes\answer \Decisiontrue\else
\Decisionfalse\fi\fi\fi\fi
\ifDecision
\usepackage{german}
\fi
% \end{macrocode}
% Nun kann noch eine Konfigurationsdatei eingelesen werden. Diese
% kann z.B. dazu verwendet werden, ein Umlaut-package einzubinden,
% o."a.
% \changes{v2.2d}{1995/05/25}{missing \} inserted at {\cmd\InputIfFileExits}}
% \begin{macrocode}
%\InputIfFileExists{dir.cfg}{%
%\InputIfFileExists{phone.cfg}{%
\typeout{Load local configuration-file.}}{%
\typeout{No local configuration-file found.}}
% \end{macrocode}
%
% Nun wird nach der Adre"sdatei gefragt:
% \begin{macrocode}
\Ask\adrfile{^^J%
Name of address-file (without .adr)?^^J%
Name der Adressdatei (ohne .adr)?}
% \end{macrocode}
% Jetzt wird noch ein Titel ben"otigt:
% \begin{macrocode}
\Ask\adrtitle{^^J%
Title of directory/list?^^J%
Titel des Verzeichnisses?}
% \end{macrocode}
%
% Der Seitenspiegel ist hier fest. Das Ergebnis mu"s dann nur noch ein
% wenig zurechtgeschnitten und gefaltet werden.
% \begin{macrocode}
%<*dir>
\newdimen\paperwidth
\newdimen\leftfield
\newdimen\rightfield
\newdimen\adrindent
\paperwidth 210mm
\leftfield 40mm
\rightfield 25mm
\adrindent 1em
\advance\leftfield by -\adrindent
\textwidth 70mm
\oddsidemargin -1in
\evensidemargin -1in
\advance\oddsidemargin by 9mm
\advance\evensidemargin by \paperwidth
\advance\evensidemargin by -9mm
\advance\evensidemargin by -\textwidth
\textheight 120mm
\headheight 1\baselineskip
\headsep 0.5\baselineskip
\footskip 1.5\baselineskip
\topmargin -1in
\advance\topmargin by 8mm
\marginparwidth 0in
\marginparsep 0in
\marginparpush 0in
\parskip 0.5\baselineskip
%
\parindent 0in
%\pagestyle{empty}
% \end{macrocode}
%
% Jetzt beginnt das eigentliche Document:
% \begin{macrocode}
\begin{document}
% \end{macrocode}
%
% F"ur die Kopfzeile wird |\sffamily\bfseries| verwendet.
% \begin{macrocode}
%\def\headfont{\sffamily\bfseries}
% \end{macrocode}
% Der |\adrchar| wird bei |dir.tex| f"ur die Kopfzeile verwendet.
% Bei |phone.tex| erzeugt |\adrchar| lediglich einen kleinen vertikalen
% Abstand.
% \begin{macrocode}
%\def\adrchar#1{\clearpage\typeout{#1}\markboth{#1}{#1}}
%\def\adrchar#1{\vspace{1ex}}
% \end{macrocode}
% Jeder |\adrentry| erzeugt einen Eintrag in der Adre"sliste
% \begin{macrocode}
%<*dir>
\def\adrentry#1#2#3#4#5#6#7#8{\hspace{\adrindent}%
\parbox[b]{\leftfield}{\raggedright \hspace{-\adrindent}{\sc #1}%
\def\tempa{#1}\ifx \tempa\empty \else , #2\fi%
\def\tempa{#3}\ifx \tempa\empty \else \par #3\fi%
\def\tempa{#7}\ifx \tempa\empty \else \par (#7)\fi}%
\hfill%
\parbox[b]{\rightfield}{\raggedright%
\def\tempa{#8}\ifx \tempa\empty \else {\scriptsize #8}\par \fi #4}\par}
%
% \end{macrocode}
% oder dem Telefonverzeichnis.
% \begin{macrocode}
%<*phone>
\def\adrentry#1#2#3#4#5#6#7#8{\setbox0\hbox{#4}
{\sc #1}%
\def\tempa{#2}\ifx \tempa\empty \else , #2\fi%
\def\tempa{#7}\ifx \tempa\empty \else \ (#7)\fi%
\ \dotfill\ \unhbox0\par}
%
% \end{macrocode}
% Nun wird die Adre"sdatei abgearbeitet, wenn eine solche existiert.
% \begin{macrocode}
\ifx\adrfile\empty \else
\InputIfFileExists{\adrfile.adr}{%
% \end{macrocode}
% Seitenstil festlegen (keine Kopfzeile, keine Fu"szeile).
% \begin{macrocode}
% \pagestyle{empty}
% \end{macrocode}
% F"ur |dir.tex| eine Titelseite mit leerer R"uckseite erzeugen. Der Titel
% wird vertikal und horizontal zentriert.
% \begin{macrocode}
%<*dir>
\null\vfil
\begin{center}
{\Large \sfb \adrtitle}
\end{center}
\vfil\vfil\null
\cleardoublepage
% \end{macrocode}
% Seitenstil nun mit Kopf- und Fu"szeile.
% \begin{macrocode}
\pagestyle{myheadings}
%
% \end{macrocode}
% F"ur |phone.tex| eine etwas abgesetzte, gro"se, horizontal zentrierte
% Titelzeile erzeugen.
% \begin{macrocode}
%{\LARGE \sfb \null\hfill\adrtitle\hfill\null\\[3ex]}
% \end{macrocode}
% Nun wird die Adre"sdatei eingelesen
% \begin{macrocode}
}{%
% \end{macrocode}
% Wenn die Adre"sdatei nicht existiert, eine Fehlermeldung ausgeben.
% \begin{macrocode}
\typeout{^^J%
*** File \adrfile.adr not found!^^J%
*** Datei \adrfile.adr nicht gefunden!^^J%
^^J}
}
% \end{macrocode}
% Das war's dann auch schon.
% \begin{macrocode}
\fi
\end{document}
%
% \end{macrocode}
%
% \subsection{Das scraddr-Package zur Auswertung von
% Adre"sdateien}
%
% \changes{v1.0}{1996/01/22}{Neues Package scraddr.}
% \begin{macrocode}
%<*scraddr>
% \end{macrocode}
% Dieses Paket liest beliebige - auch mehrere - Adre"sdateien im oben
% beschriebenen Format ein und legt f"ur jeden Eintrag eine Reihe von
% Markos an. Bedingung daf"ur ist, da"s das achte Element jedes
% |\adrentry|-Eintrags - der K"urzeleintrag - nichtleer ist. Im Falle von
% identischen K"urzeleintr"agen "uberschreiben sp"atere Eintr"age
% fr"uhere. Die Inhalte k"onnen dann "uber spezielle Befehle ermittelt
% werden.
%
% \subsubsection{Optionen}
% Das Paket besitzt keine Optionen.
% \begin{macrocode}
\ExecuteOptions\relax
\ProcessOptions\relax
% \end{macrocode}
%
% \subsubsection{Adre"sdatei einlesen}
% \begin{macro}{\InputAdressFile}
% Mit Hilfe des Befehls |\InputAddressFile| wird die angegebene
% Adre"sdatei eingelesen und in Adre"smakros gewandelt, die dann beliebig
% verwendet werden k"onnen. Die Adre"smakros werden global generiert.
% Andere Makros insbesondere die Definition von |\adrentry| bleiben
% erhalten.
% \begin{macrocode}
\newcommand{\InputAddressFile}[1]{\begingroup
\def\adrentry##1##2##3##4##5##6##7##8{%
\def\@tempa{##8}\ifx\@tempa\@empty\else
\expandafter\gdef\csname ##8.LN\endcsname{##1}
\expandafter\gdef\csname ##8.FN\endcsname{##2}
\expandafter\gdef\csname ##8.A\endcsname{##3}
\expandafter\gdef\csname ##8.P\endcsname{##4}
\expandafter\gdef\csname ##8.FI\endcsname{##5}
\expandafter\gdef\csname ##8.FII\endcsname{##6}
\expandafter\gdef\csname ##8.C\endcsname{##7}
\fi}
% \end{macrocode}
% Existiert die Datei nicht, so wird ein Fehler ausgegeben, ansonsten
% wird die Ladeaktion angezeigt.
% \begin{macrocode}
\InputIfFileExists{#1.adr}
{\typeout{Load addressfile: #1.adr.}}
{\PackageError{scraddr}
{File #1.adr not found}
{The addressfile you wanted is not
available}}
\endgroup}
% \end{macrocode}
% \end{macro}
%
% \subsubsection{Zugriff auf die Elemente der eingelesenen Adre"sdatei}
%
% Da keine Vorschriften existieren, wie genau das K"urzel aufgebaut sein
% mu"s, k"onnen innerhalb des K"urzels theoretisch auch solche Zeichen
% enthalten sein, die f"ur Makronamen normalerweise ungeeignet sind.
% Deshalb existiert ein Satz von Befehlen, "uber den auf die zu einem
% K"urzel geh"orenden Elemente zugegriffen werden kann. Dabei wird davon
% ausgegangen, da"s die Adre"sdatei dem zuvor vorgeschlagenen Aufbau
% entspricht.
%
% \begin{macro}{\Name}
% Der Name wird aus dem Vornamen (Firstname) und Nachnamen (Lastname)
% zusammengesetzt, wobei einfach ein Leerzeichen dazwischen geklemmt
% wird.
% \begin{macrocode}
\newcommand*{\Name}[1]{\FirstName{#1}\ \LastName{#1}}
% \end{macrocode}
% \end{macro}
% \begin{macro}{\FirstName}
% Der Vorname (Firstname) ist mit \emph{K"urzel}|.FN| codiert.
% \begin{macrocode}
\newcommand*{\FirstName}[1]{\csname #1.FN\endcsname}
% \end{macrocode}
% \end{macro}
% \begin{macro}{\LastName}
% Der Nachname (Lastname) ist mit \emph{K"urzel}|.LN| codiert.
% \begin{macrocode}
\newcommand*{\LastName}[1]{\csname #1.LN\endcsname}
% \end{macrocode}
% \end{macro}
% \begin{macro}{\Address}
% Die Adresse (Address) ist mit \emph{K"urzel}|.A| codiert.
% \begin{macrocode}
\newcommand*{\Address}[1]{\csname #1.A\endcsname}
% \end{macrocode}
% \end{macro}
% \begin{macro}{\Telephone}
% Die Telephonnummer (Telephone/Phone) ist mit \emph{K"urzel}|.P|
% codiert.
% \begin{macrocode}
\newcommand*{\Telephone}[1]{\csname #1.P\endcsname}
% \end{macrocode}
% \end{macro}
% \begin{macro}{\FreeI}
% \begin{macro}{\FreeII}
% Es existieren zwei freie Eintr"age, die mit \emph{K"urzel}|.FI| und
% \emph{K"urzel}.|FII| codiert sind.
% \begin{macrocode}
\newcommand*{\FreeI}[1]{\csname #1.FI\endcsname}
\newcommand*{\FreeII}[1]{\csname #1.FII\endcsname}
% \end{macrocode}
% \end{macro}
% \end{macro}
% \begin{macro}{\Comment}
% Zum Schlu"s existiert noch ein Kommentar (Comment), der mit
% \emph{K"urzel}|.C| codiert ist, aber nat"urlich auch etwas anderes als
% einen klassischen, reinen Kommentar enthalten kann.
% \begin{macrocode}
\newcommand*{\Comment}[1]{\csname #1.C\endcsname}
% \end{macrocode}
% \end{macro}
%
% \subsubsection{Ende des Packages}
% \begin{macrocode}
%
% \end{macrocode}
%
% \subsection{Adre"sdatenbankkonverter}
%
% \begin{macrocode}
%<*addrconv|birthday>
% \end{macrocode}
% \BibTeX\ ist eines der am vielseitigsten einsetzbaren Tools rund um \TeX.
% Der erste Anwendungszweck von \BibTeX\ liegt nat"urlich in der Verarbeitung
% von Literaturdatenbanken und der Erstellung von Literaturverzeichnissen aus
% den Datenbanken.
%
% Gerd Neugebauer hat 1994 mit dem Bibliographie-Stil \texttt{address.bst}
% und der Definition eines entsprechenden Datenbankformates gezeigt, wie
% einfach man \BibTeX\ au"ser f"ur Literatur- auch f"ur Adre"sdatenbanken
% verwenden kann. Ausgehend von dieser Idee, stellte sich Axel Kielhorn die
% Frage, ob man solche Adre"sdatenbanken nicht auch f"ur \texttt{scrlettr}
% (und seine eigenen \texttt{akletter}) verwenden k"onnte.
% Selbstverst"andlich kann man, was Axel auch gleich in Form von zwei
% Bibliographie-Stilen in die Tat umgesetzt hat. Ich selbst habe nur eine
% Umbenennung und eine kleine "Anderung vorgenommen.
%
% Ebenso wie die Dateien \texttt{dir.tex} und \texttt{phone.tex}, sollen die
% Bibliographie-Stile keine ultimativen L"osungen darstellen, sondern
% lediglich Anreiz zu eigenen Entwicklungen geben.
%
% \subsubsection{Der Datenbankkonverter \texttt{addrconv}}
%
% Der erste Konverter, tut nichts weiter als eine \BibTeX-Adre"sdatenbank
% einzulesen, alphabethisch zu sortieren und im Format der Adre"sdateien f"ur
% \texttt{scrlettr} wieder zu schreiben. Daf"ur ben"otigt man als erstes einen
% Bibliographie-Stil, \texttt{addrconv.bst}, der ein Programm f"ur \BibTeX
% darstellt.
%
% \begin{macrocode}
%<*addrconv&bst>
% The files generated from this file may be used for scrlettr.cls,
% phone.tex, dir.tex from the KOMA-Script-Bundle, akletter.cls (and some
% versions of myletter.cls which preceded akletter).
% They will even work with Frank Neukam's old LaTeX 2.09 version of Script.
ENTRY
{ name
title
organization
city
zip
country
street
phone
fax
net
note
key
birthday
nbirthday
}
{}
{ adr.char }
INTEGERS { cur.adr.char }
FUNCTION {get.names}
{ name empty$
{ organization empty$
{ "{}{}" }
{ organization "{}" * }
if$
}
{ "{" name #1 "{ll}" format.name$ "}" * *
"{" name #1 "{ff}" format.name$ "}" * * *
}
if$
}
FUNCTION {print.adrchr}
{ adr.char chr.to.int$ cur.adr.char >
{ newline$ "\adrchar{" adr.char "}" * * write$ newline$
adr.char chr.to.int$ 'cur.adr.char :=
}
'skip$
if$
}
FUNCTION{address}
{ print.adrchr
"\adrentry" write$
get.names write$ newline$
"{"
street empty$
{ "" }
{ street }
if$
" \\ " * *
zip empty$
{ "" }
{ zip }
if$
" " * *
city empty$
{ "" }
{ city }
if$
"}{" * *
phone empty$
{ "" }
{ phone }
if$
"}" * *
"{}{}{}{}" * write$ newline$
}
FUNCTION{presort}
{
name empty$
{ organization empty$
{ key empty$
{ "No name, organization, or key to sort " cite$ * warning$
"???"
}
{ key }
if$
}
{ organization }
if$
}
{ name #1 "{ll},{f }{v }{, j}" format.name$ }
if$
duplicate$
'sort.key$ :=
#1 #1 substring$
'adr.char :=
% the adr.char is the first letter of the sort.key
}
READ
ITERATE {presort}
SORT
FUNCTION {begin.bib}
{ preamble$ empty$
'skip$
{ preamble$ write$ newline$ }
if$
#0 'cur.adr.char :=
}
EXECUTE {begin.bib}
ITERATE {call.type$}
% Print a newline and flush the write buffer
FUNCTION {end.bib}
{ newline$ }
EXECUTE {end.bib}
%
% \end{macrocode}
%
% \subsubsection{Der Datenbankkonverter \texttt{birthday}}
% Alternativ haben wir noch einen zweiten Stil zu bieten, der eine
% Gebutstagsliste erstellt:
% \begin{macrocode}
%<*birthday&bst>
% This file prints the entries with birthdays only.
% The entries are sorted by month and inside one month by date.
ENTRY
{ name
title
organization
city
zip
country
street
phone
fax
net
note
key
birthday
nbirthday
}
{}
{ b.month }
STRINGS { cur.month num.index alpha.index}
FUNCTION {get.names}
{ name empty$
{ organization empty$
{ "{}{}" }
{ organization "{}" * }
if$
}
{ "{" name #1 "{ll}" format.name$ "}" * *
"{" name #1 "{ff}" format.name$ "}" * * *
}
if$
}
% \end{macrocode}
% Die |\convdate| Funktion ist in \texttt{begin.bib} definiert.
% \begin{macrocode}
FUNCTION {print.adrchr}
{ b.month cur.month =
'skip$
{ newline$ "\adrchar{\convdate{" b.month "}}" * * write$ newline$
b.month 'cur.month :=
}
if$
}
% \end{macrocode}
% Datenbankeintr"age ohne Geburtstagseintrag, werden weggelassen.
% \begin{macrocode}
FUNCTION{address}
{ birthday empty$
'skip$
{
print.adrchr
"\adrentry" write$
get.names write$ newline$
"{"
street empty$
{ "" }
{ street }
if$
" \\ " * *
zip empty$
{ "" }
{ zip }
if$
" " * *
city empty$
{ "" }
{ city }
if$
"}{" * *
phone empty$
{ "" }
{ phone }
if$
"}{}{}{" * *
birthday empty$
{ "" }
{ birthday }
if$
"}{}" * * write$ newline$
}
if$
}
% \end{macrocode}
% F"ur die Sortierung wird \texttt{nbirthday} (numerical birthday) verwendet.
% \begin{macrocode}
FUNCTION{presort}
{nbirthday empty$
{ "" }
{ nbirthday }
if$
duplicate$
'sort.key$ :=
#1 #2 substring$
'b.month :=
}
READ
ITERATE {presort}
SORT
% \end{macrocode}
% |\convdate| konvertiert die Eintr"age in
% \begin{itemize}
% \item Zahlen ohne f"uhrende 0,
% \item Monatsnamen
% \end{itemize}
% je nach verwendeter Funktion.
% \begin{macrocode}
FUNCTION {begin.bib}
{
"\def\convdate#1{\ifcase#1 \or 1 \or 2 \or 3 \or 4 \or 5 "
"\or 6 \or 7 \or 8 \or 9 \or 10 \or 11 \or 12 \fi}" * 'num.index :=
"\def\convdate#1{\ifcase#1 \or Januar \or Februar \or M{^^b a}rz "
"\or April \or Mai \or Juni \or Juli \or August \or September "
"\or November \or Dezember \fi}" * * 'alpha.index :=
% \end{macrocode}
% Hier werden die Monatsnamen verwendet.
% \begin{macrocode}
% num.index write$
alpha.index write$
newline$
preamble$ empty$
'skip$
{ preamble$ write$ newline$ }
if$
"00" 'cur.month :=
}
EXECUTE {begin.bib}
ITERATE {call.type$}
FUNCTION {end.bib}
{ newline$
}
EXECUTE {end.bib}
%
% \end{macrocode}
%
% \subsubsection{Interaktive Treiber f"ur die Datenbankkonvertierung}
% Damit \BibTeX\ "uberhaupt aktiv werden kann, wird aber noch eine
% \TeX-Datei ben"otigt. Mit dieser ist zun"achst ein \TeX-Lauf
% durchzuf"uhren, damit \BibTeX\ anschlie"send die dabei erzeugte
% \texttt{aux}-Datei einlesen und analysieren kann.
%
% Erst dadruch wird der Konverter aktiv und erzeugt aus der
% \BibTeX-Adre"sdatenbank die gew"unschte Datenbank f"ur \texttt{scrlettr}
% etc. Diese tr"agt dann noch die Endung \texttt{bbl}, die man anschlie"send
% von Hand oder per Shell-Script in \texttt{adr} "andern sollte.
% \begin{macrocode}
%<*tex>
\catcode`\@=11
\newlinechar`\^^J
\message{%
Now you have to typein the name of the BibTeX addressfile, you want to^^J%
convert to script-address-file-format (without extension `.bib'):^^J%
Geben Sie nun den Namen der BibTeX-Adressdatei ein, die sie in das^^J%
Script-Adressdateiformat konvertieren wollen (ohne `.bib'):^^J%
^^J%
addressfile=%
}
\def\skiplastspace#1 \@e@o@l@{#1}
\read-1 to \addressfile
\edef\addressfile{\expandafter\skiplastspace\addressfile\@e@o@l@}
\newwrite\auxfile
\immediate\openout\auxfile=\addressfile.aux
\immediate\write\auxfile{%
\string\citation{*}^^J%
% \string\bibstyle{addrconv}^^J%
% \string\bibstyle{birthday}^^J%
\string\bibdata{\addressfile}%
}
\immediate\closeout\auxfile
\message{%
After running BibTeX rename file `\addressfile.bbl' to
`\addressfile.adr'!^^J%
% Run LaTeX with e. g. `dir.tex' after that.^^J%
Nach dem BibTeX-Lauf benennen Sie bitte die Datei `\addressfile.bbl' in^^J%
`\addressfile.adr' um!^^J%
% Sie koennen die Datei dann z. B. mit `dir.tex'
% weiterbearbeiten.^^J%
}
\ifx\@@end\undefined\let\@@end\end\fi
\@@end
%
%
% \subsubsection{Eine Beispieladre"sdatenbank im \BibTeX-Format}
% Zur Verdeutlichung des Ganzen hier noch eine Beispieladre"sdatenbank:
% \begin{macrocode}
%<*example>
@address{mustermann,
name = {Hans Mustermann},
city = {Heimstatt},
zip = 01234,
country = {Germany},
street = {Einbahnstra{\ss}e 1},
phone = {01234 / 5 67 89},
fax = {01234 / 5 67 89},
net = {hm{@}work.com},
note = {Alles nur Erfindung},
}
@address{AxelK,
name = {Axel Kielhorn},
city = {Braunschweig},
zip = 38118,
street = {Stra{\ss}e des 16.~Mai 17},
phone = {0531 / 89 34 39},
net = {a.kielhorn{@}tu-bs.de},
note = {Author of the modified addressen.bst},
birthday = {16.05.1967},
nbirthday = 0516,
}
@address{RalfK,
name = {Ralf Kielhorn},
city = {Braunschweig},
zip = 38118,
street = {Stra{\ss}e des 17.~Juni 17},
phone = {0531 / 89 34 39},
net = {a.kielhorn{@}tu-bs.de},
note = {Send e-mail with subject forward to ralf},
birthday = {05.08.1967},
nbirthday = 0805,
}
@address{KOMA,
name = {Markus Kohm},
city = {Karlsruhe},
zip = 76137,
street = {Augartenstra{\ss}e 27},
net = {unlf@rz.uni-karlsruhe.de},
note = {Mails less than 32 KByte also to Markus{\_}Kohm@ka2.maus.de},
}
%
% \end{macrocode}
% \begin{macrocode}
%
% \end{macrocode}
%
% \iffalse
%<*scrlettr>
% \fi
%
% \subsection{Die Brief-Umgebung}
%
% \begin{environment}{letter}
% \begin{macro}{\stopletter}
% Diese Umgebung ist etwas anders definiert, als normalerweise von
% \LaTeX gewohnt. Mit ihr k"onnen innerhalb eines Dokuments beliebig
% viele Briefe erzeugt werden.
% \begin{macrocode}
\long\def\letter#1{\newpage
\if@twoside\ifodd\c@page\else \thispagestyle{empty}\null\newpage \fi\fi
\c@page\@ne \interlinepenalty=200 \@processto{#1}}
\def\stopletter{}
\def\endletter{\stopletter\@@par\pagebreak\@@par}
\long\def\@processto#1{\expandafter\@xproc #1\\@@@\ifx\toaddress\@empty
\else\expandafter\@yproc #1@@@\fi}
\long\def\@xproc #1\\#2@@@{\def\toname{#1}\def\toaddress{#2}}
\long\def\@yproc #1\\#2@@@{\def\toaddress{#2}}
% \end{macrocode}
% \end{macro}
% \end{environment}
%
% \begin{macro}{\stopbreaks}
% \begin{macro}{\startbreaks}
% Innerhalb von Briefen wird der Umbruch etwas anders gehandhabt.
% Dadurch soll der Brieftext besser positioniert werden.
% \begin{macrocode}
\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}}
% \end{macrocode}
% \end{macro}
% \end{macro}
%
% \begin{macro}{\@foldmarks}
% F"ur die Faltmarken m"ussen nicht nur Abst"ande definiert werden, es
% wird auch ein Befehl ben"otigt, um die Faltmarken zu setzen.
% \begin{macrocode}
\def\@foldmarks{\if@fold \bgroup
\reversemarginpar\vspace{\foldvskipi}
\marginpar{\hspace{\foldhskip}\rule{2mm}{.2pt}} \vspace{\foldvskipii}
\marginpar{\hspace{\foldhskip}\rule{4mm}{.2pt}} \vspace{\foldvskipiii}
\marginpar{\hspace{\foldhskip}\rule{2mm}{.2pt}}
\vspace{-\foldvskipiii}\vspace{-\foldvskipii}\vspace{-\foldvskipi}
\egroup \fi}
% \end{macrocode}
% \end{macro}
%
% \begin{macro}{\@addrfield}
% Dasselbe gilt auch f"ur das Adre"sfeld f"ur Fensterumschl"age. Die
% R"ucksendeadresse und die Briefart wird dabei unterstrichen.
% \begin{macrocode}
\def\@addrfield{\bgroup
\setbox0\vbox{\hsize\addrwidth
\ifx\frombackaddress\@empty \else
\underline{\scriptsize \sf \frombackaddress} \fi}
\setbox1\vbox{\hsize\addrwidth
\ifx\@specialmail\@empty \else
\underline{\@specialmail} \fi}
\setbox2\vbox{\hsize\addrwidth
\toname \\ \toaddress}
\vskip\addrvskip \hskip\addrindent
\vbox to \addrheight{%
\ifx\frombackaddress\@empty \else \box0 \fi
\ifx\@specialmail\@empty \else \vfil\box1 \fi
\vfil\box2\vfil}\egroup}
% \end{macrocode}
% \end{macro}
%
% \begin{macro}{\@locfield}
% Das "`locfield"' wird mittels einer |minipage| gesetzt.
% \begin{macrocode}
\def\@locfield{\begin{minipage}[b]{\locwidth}\fromlocation\end{minipage}}
% \end{macrocode}
% \end{macro}
%
% \begin{macro}{\@datefield}
% Je nachdem, welche Felder definiert sind, mu"s eine gesch"aftsm"a"siger
% Standardbrief oder ein eher pers"onliches Aussehen gew"ahlt werden.
% \changes{v2.3e}{1996/05/31}{Abstand zwischen Ort und Datum eingef"ugt}
% \begin{macrocode}
\newif\if@ref
\def\@datefield{\@reffalse
\ifx\varyourref\@empty \else \@reftrue \fi
\ifx\varyourmail\@empty \else \@reftrue \fi
\ifx\varmyref\@empty \else \@reftrue \fi
\ifx\varcustomer\@empty \else \@reftrue \fi
\ifx\varinvoice\@empty \else \@reftrue \fi
\ifx\varrefitemi\@empty \else \@reftrue \fi
\ifx\varrefitemii\@empty \else \@reftrue \fi
\ifx\varrefitemiii\@empty \else \@reftrue \fi
\vskip -\parskip
\vskip \refvskip
\if@ref
\ifx\varyourref\@empty \else
\settowidth{\sc@temp}{\varyourref}
\setbox0\hbox{\scriptsize \sf \yourrefname}
\ifdim \sc@temp > \wd0 \sc@@temp\sc@temp \else \sc@@temp\wd0 \fi
\parbox[t]{\sc@@temp}{\noindent \box0\par \varyourref}\hfill
\fi
\ifx\varyourmail\@empty \else
\settowidth{\sc@temp}{\varyourmail}
\setbox0\hbox{\scriptsize \sf \yourmailname}
\ifdim \sc@temp > \wd0 \sc@@temp\sc@temp \else \sc@@temp\wd0 \fi
\parbox[t]{\sc@@temp}{\noindent \box0\par \varyourmail}\hfill
\fi
\ifx\varmyref\@empty \else
\settowidth{\sc@temp}{\varmyref}
\setbox0\hbox{\scriptsize \sf \myrefname}
\ifdim \sc@temp > \wd0 \sc@@temp\sc@temp \else \sc@@temp\wd0 \fi
\parbox[t]{\sc@@temp}{\noindent \box0\par \varmyref}\hfill
\fi
\ifx\varcustomer\@empty \else
\settowidth{\sc@temp}{\varcustomer}
\setbox0\hbox{\scriptsize \sf \customername}
\ifdim \sc@temp > \wd0 \sc@@temp\sc@temp \else \sc@@temp\wd0 \fi
\parbox[t]{\sc@@temp}{\noindent \box0\par \varcustomer}\hfill
\fi
\ifx\varinvoice\@empty \else
\settowidth{\sc@temp}{\varinvoice}
\setbox0\hbox{\scriptsize \sf \invoicename}
\ifdim \sc@temp > \wd0 \sc@@temp\sc@temp \else \sc@@temp\wd0 \fi
\parbox[t]{\sc@@temp}{\noindent \box0\par \varinvoice}\hfill
\fi
\ifx\varrefitemi\@empty \else
\settowidth{\sc@temp}{\varrefitemi}
\setbox0\hbox{\scriptsize \sf \varrefitemnamei}
\ifdim \sc@temp > \wd0 \sc@@temp\sc@temp \else \sc@@temp\wd0 \fi
\parbox[t]{\sc@@temp}{\noindent \box0\par \varrefitemi}\hfill
\fi
\ifx\varrefitemii\@empty \else
\settowidth{\sc@temp}{\varrefitemii}
\setbox0\hbox{\scriptsize \sf \varrefitemnameii}
\ifdim \sc@temp > \wd0 \sc@@temp\sc@temp \else \sc@@temp\wd0 \fi
\parbox[t]{\sc@@temp}{\noindent \box0\par \varrefitemii}\hfill
\fi
\ifx\varrefitemiii\@empty \else
\settowidth{\sc@temp}{\varrefitemiii}
\setbox0\hbox{\scriptsize \sf \varrefitemnameiii}
\ifdim \sc@temp > \wd0 \sc@@temp\sc@temp \else \sc@@temp\wd0 \fi
\parbox[t]{\sc@@temp}{\noindent \box0\par \varrefitemiii}\hfill
\fi
\ifx\@date\@empty \else
\settowidth{\sc@temp}{\@date}
\setbox0\hbox{\scriptsize \sf \datename}
\ifdim \sc@temp > \wd0 \sc@@temp\sc@temp \else \sc@@temp\wd0 \fi
\parbox[t]{\sc@@temp}{\noindent \box0\par \@date}
\fi
\par
\vspace{2.5\baselineskip}
\else
{\ifx\@date\@empty \else \raggedleft\fromplace\ \@date\par \fi}
\vspace{1.5\baselineskip}
\fi}
% \end{macrocode}
% \end{macro}
%
% \begin{macro}{\maketitle}
% \changes{v2.3b}{1996/01/14}{Verwendung von \cs{sectfont} f"ur den
% \cs{title}.}
% \begin{macro}{\@subjfield}
% Der eigentliche Titel wir mit |\maketitle| gesetzt. Dies sollte
% jedoch ebenso wie der Betreff \emph{nicht} manuell geschehen.
% \begin{macrocode}
\def\maketitle{\ifx\@title\@empty \else
{\centering \LARGE \sectfont \@title\par}
\vspace{1\baselineskip} \fi}
\def\@subjfield{\if@subj%
\ifx\@subject\@empty\else\subjectname: \fi
\fi \@subject \par \vspace{1\baselineskip}}
% \end{macrocode}
% \end{macro}
% \end{macro}
%
% \begin{macro}{\opening}
% Denn beim Er"offnungsgru"s mit |\opening| wird neben s"amtlichen
% Feldern auch der Titel und der Betreff gesetzt.
% \begin{macrocode}
\def\opening#1{\thispagestyle{firstpage} \null \@foldmarks
\if@afield \@addrfield \hfill \@locfield \par \fi
\@datefield
\maketitle
\@subjfield
#1\par%
\vspace{0.5\baselineskip}% added by unknown
\nobreak}
% \end{macrocode}
% \end{macro}
%
% \begin{macro}{\closing}
% \changes{2.2b}{1995/02/16}{{\cmd\fromsig} wird nicht mehr auf {\cmd\empty}
% getestet sondern direkt eingesetzt}
% \changes{2.3b}{1996/01/14}{Abstand zwischen Schlu"sgru"s und Signatur
% erh"oht}
% Au"ser dem Er"offnungsgru"s mit |\opening| gibt es nat"urlich auch
% einen Schlu"sgru"s mit |\closing|, bei dem au"serdem die
% Unterschrift u."a. gesetzt wird.
% \begin{macrocode}
\long\def\closing#1{\par\nobreak\vspace{0.5\baselineskip}
\stopbreaks \noindent \sc@temp\textwidth \advance\sc@temp by
-\sigindent \hspace{\sigindent}%
\parbox{\sc@temp}{\raggedright \ignorespaces #1\\[2\baselineskip]
\fromsig\strut}\par
\vspace{1.5\baselineskip}}
% \end{macrocode}
% \end{macro}
%
% \begin{macro}{\ps}
% Ebenfalls m"oglich ist ein Postscriptum. Dieser Befehl erwartet
% das Postscriptum nicht als Argument, sondern schaltet zum Nachtext
% um.
% \begin{macrocode}
\def\ps{\par\startbreaks}
% \end{macrocode}
% \end{macro}
%
% \begin{macro}{\cc}
% Dar"uber hinaus gibt es noch einen Verteiler. Dieser wird
% sauber formatiert.
% \begin{macrocode}
\def\cc#1{\par\noindent \parbox[t]{\textwidth}{\@hangfrom{\ccname: }%
\ignorespaces #1\strut}\par}
% \end{macrocode}
% \end{macro}
%
% \begin{macro}{\encl}
% Auch Anlagen werden ordentlich gesetzt.
% \begin{macrocode}
\def\encl#1{\par\noindent \parbox[t]{\textwidth}{\@hangfrom{\enclname: }%
\ignorespaces #1\strut}\par}
% \end{macrocode}
% \end{macro}
%
% \begin{macro}{\footnoterule}
% \begin{macro}{\@makefntext}
% Fu"snoten werden durch eine Linie abgetrennt. Sie werden wie im gesamten
% \textsf{KOMA-Script} Paket gewohnt formatiert.
% \begin{macrocode}
\def\footnoterule{\kern-1\p@
\hrule width 0.4\columnwidth
\kern .6\p@}
\long\def\@makefntext#1{\noindent \sc@temp\columnwidth%
\advance\sc@temp by -1.5em \hbox to 1em{\hss$^{\@thefnmark}$}\hskip .5em%
\parbox[t]{\sc@temp}{\parindent 0pt\parskip 0pt\hskip -.5em #1}}
% \end{macrocode}
% \end{macro}
% \end{macro}
%
% Aufz"ahlungen werden mit arabischen Zahlen numeriert.
% \begin{macrocode}
\def\theequation{\arabic{equation}}
% \end{macrocode}
% \subsection{Verteilung von Text- und Flie"sumgebungen}
% \begin{macrocode}
\setcounter{topnumber}{2}
\def\topfraction{.7}
\setcounter{bottomnumber}{1}
\def\bottomfraction{.3}
\setcounter{totalnumber}{3}
\def\textfraction{.2}
\def\floatpagefraction{.5}
\setcounter{dbltopnumber}{2}
\def\dbltopfraction{.7}
\def\dblfloatpagefraction{.5}
% \end{macrocode}
%
% \subsection{Seitenstil}
%
% \begin{macro}{\pagestyle}
% Neben den "ublichen Seitenstilen |plain|, |headings|, |myheadings|, |empty|
% gibt es bei |scrlettr| noch einen Stil f"ur die erste Seite eines Briefs.
% \begin{macrocode}
\def\@firsthead{%
\parbox[b]{\textwidth}
{\begin{center}
{\sc \ignorespaces \fromname}\\[-8pt]
\rule{\textwidth}{.4pt}\\
\ignorespaces \fromaddress
\end{center}}}
\def\@firstfoot{}
\def\@nexthead{%
\parbox[b]{\textwidth}
{{\sc \ignorespaces \fromname}\\[8pt]
\headtoname\ \ignorespaces \toname \hfill \datename:\ \@date \hfill
\pagename\ \thepage\\[-8pt]
\rule{\textwidth}{.4pt}}}
\def\@nextfoot{}
\def\ps@plain{%
\def\@evenhead{\sffamily\bfseries\fontsize{10pt}{12}\selectfont
\hfil-- \thepage\ --\hfil}%
\let\@oddhead\@evenhead%
\def\@evenfoot{}%
\def\@oddfoot{}}
\def\ps@firstpage{%
\def\@evenhead{\@firsthead}%
\let\@oddhead\@evenhead%
\def\@evenfoot{\@firstfoot}%
\let\@oddfoot\@evenfoot}
\def\ps@headings{%
\def\@evenhead{\@nexthead}%
\let\@oddhead\@evenhead%
\def\@evenfoot{\@nextfoot}%
\let\@oddfoot\@evenfoot}
% \end{macrocode}
% \end{macro}
%
% \subsection{Voreinstellungen}
%
% Voreingestellt sind Faltmarken,
% \begin{macrocode}
\@foldtrue
% \end{macrocode}
% Adre"sfeld,
% \begin{macrocode}
\@afieldtrue
% \end{macrocode}
% kein Betrefftitel,
% \begin{macrocode}
\@subjfalse
% \end{macrocode}
% Einfache Kopfzeilen,
% \begin{macrocode}
\ps@plain
% \end{macrocode}
% Seitennumerierung mit arabischen Zahlen,
% \begin{macrocode}
\pagenumbering{arabic}
% \end{macrocode}
% kein Abgleich des unteren Randes
% \begin{macrocode}
\raggedbottom
% \end{macrocode}
% und europ"aische Handhabung des Leerschritts. Letzteres sollte eigentlich
% von der Sprachanpassung (z.B. |german.sty| oder |german3.sty| erledigt)
% werden und wird in einer der n"achsten Versionen vermutlich entfernt.
% \begin{macrocode}
\frenchspacing
% \end{macrocode}
%
% \subsection{Das Ende}
%
% \begin{macrocode}
%
% \end{macrocode}
%
% \IndexPrologue{\clearpage
% \section*{Index}
% \markboth{Index}{Index}
% Die kursiven Zahlen geben die Seiten an, auf denen
% der entsprechende Eintrag beschrieben ist.
% Die unterstrichenden Zahlen geben die Stelle der
% Definition des Eintrags an.
% Alle anderen Zahlen benennen Stellen, an denen der
% entsprechende Eintrag verwendet ist.
% \vspace{1em}\noindent}
%
% \GlossaryPrologue{\section*{"Anderungsverzeichnis}
% \markboth{"Anderungsverzeichnis}{"Anderungsverzeichnis}
% \addcontentsline{toc}{section}{"Anderungsverzeichnis}
% Die erste Version des \textsf{KOMA-Script} Pakets
% stammt vom 7.\,Juli~1994. Es werden nur die
% "Anderungen ab diesem Zeitpunkt dokumentiert.\par%
% \vspace{1em}\noindent}
%
% \Finale
%
\endinput
%
% Ende der Datei `scrlettr.dtx'