%
% \iffalse
%
% scrlettr.dtx Copyright (C) 1995 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}
%</dtx>
%<scrlettr>\NeedsTeXFormat{LaTeX2e}[1994/12/01]
%<driver>\ProvidesFile{scrlettr.drv}
%<scrlettr>\ProvidesClass{scrlettr}
%<dir>\ProvidesFile{dir.tex}
%<phone>\ProvidesFile{phone.tex}
%<*scrlettr|dir|phone|dtx>
              [1995/05/28 v2.2d LaTeX2e KOMA
%</scrlettr|dir|phone|dtx>
%<driver>              [1995/05/28 v2.2d LaTeX2e KOMA
%<scrlettr>               document class]
%<dir>              interactiv address-directory generation]
%<phone>              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,\@nobreakvspace}
\DoNotIndex{\@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,\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}
\DoNotIndex{\DeclareOldFontCommand,\DeclareOption,\def,\DisableCrossrefs}
\DoNotIndex{\divide,\documentclass,\DoNotIndex,\dotfill}
\DoNotIndex{\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,\lineskip}
\DoNotIndex{\list,\long}
\DoNotIndex{\m@ne,\m@th,\marginpar,\marginparpush,\markboth,\markright,\mathbf}
\DoNotIndex{\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,\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{\WantKnow,\wd,\xdef,\y,\year,\yes,\z@}
%
\begin{document}
 \DocInput{scrlettr.dtx}
\end{document}
%</driver>
% \fi
%
% \GetFileInfo{scrlettr.dtx}
% \CheckSum{1792}
%
% \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}%
%   \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}
% \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.}
%
% \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}
% Die Implementierung von |scrlettr| stammt im wesentlichen von Frank Neukam.
% Axel Kielhorn hat sie nach \LaTeXe portiert. 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}
% 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}
\if@compatibility               % mk 941012
    \newcommand\sfb{\sf\bf}     % schlimme Kruecke
\else                           %
    \DeclareOldFontCommand{\sfb}{\normalfont\sffamily\bfseries}{\mathbf} %
\fi                             %
%    \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}
%  \begin{macro}{\pnumfont}
%  \begin{macro}{\headfont}
%  \begin{macro}{\capfont}
%  \begin{macro}{\caplabelfont}
% Auch in der |scrlettr|-class werden verschiedene Font-Variablen verwendet.
% Lediglich |sectfont| wird nicht ben"otigt und ist daher ausgeblendet.
%    \begin{macrocode}
\newcommand\descfont{\sffamily\bfseries}
%<!scrlettr>\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}
% 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}}
%    \end{macrocode}
%  \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}
% Dar"ufer hinaus ist auch das Datumsformat sprachabh"angig. Dies wird
% hier ebenfalls geachtet.
%    \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
%    \end{macrocode}
%  \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}
%    \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    40.5mm
\foldvskipiii   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
%</scrlettr>
% \fi
%    \begin{macrocode}
%<*dir|phone>
%    \end{macrocode}
%
% 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}
%<dir>\documentclass[headsepline,10pt,twoside]{scrartcl}
%<phone>\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}
%  \begin{macro}{\ja}
%  \begin{macro}{\y}
%  \begin{macro}{\yes}
%  \begin{macro}{\WantKnow}
%  \begin{macro}{\ifDecision}
%  \begin{macro}{\adrfile}
%  \begin{macro}{\adrtitle}
%    \begin{macrocode}
\newcommand\jj {j}
\newcommand\ja {ja}
\newcommand\y  {y}
\newcommand\yes{yes}
\newcommand\WantKnow[2]{\typein[#2]{#1}}
\newif\ifDecision
\newcommand\adrfile{}
\newcommand\adrtitle{}
%    \end{macrocode}
%  \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>   *** dir.tex v2.0 by Frank Neukam <01 Dec 1993>^^J%
%<phone> *** phone.tex v2.0 by Frank Neukam <01 Dec 1993>^^J%
         *** LaTeX2e-changes by Markus Kohm 1994/10/29^^J%
         ^^J%
%<dir>   To create a address-directory just answer the questions:^^J%
%<phone> 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}
\WantKnow{Use german? [y/n]^^J%
          Mit deutscher Sprachanpassung? [j/n]}{\answer}
\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}
%<dir>\InputIfFileExists{dir.cfg}{%
%<phone>\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}
\WantKnow{^^J%
          Name of address-file (without .adr)?^^J%
          Name der Adressdatei (ohne .adr)?}{\adrfile}
%    \end{macrocode}
% Jetzt wird noch ein Titel ben"otigt:
%    \begin{macrocode}
\WantKnow{^^J%
          Title of directory/list?^^J%
          Titel des Verzeichnisses?}{\adrtitle}
%    \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
%</dir>
\parindent 0in
%<phone>\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}
%<dir>\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}
%<dir>\def\adrchar#1{\clearpage\typeout{#1}\markboth{#1}{#1}}
%<phone>\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}
%</dir>
%    \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}
%</phone>
%    \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}
%<dir> \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}
%</dir>
%    \end{macrocode}
% F"ur |phone.tex| eine etwas abgesetzte, gro"se, horizontal zentrierte
% Titelzeile erzeugen.
%    \begin{macrocode}
%<phone>{\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}
%</dir|phone>
%    \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.
%    \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}
%  \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 \sffamily\bfseries \@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}
% 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\\[4ex]
 \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}
%</scrlettr>
%    \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