summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/source/latex/koma-script/scrknpap.dtx
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/source/latex/koma-script/scrknpap.dtx')
-rw-r--r--Master/texmf-dist/source/latex/koma-script/scrknpap.dtx2171
1 files changed, 2171 insertions, 0 deletions
diff --git a/Master/texmf-dist/source/latex/koma-script/scrknpap.dtx b/Master/texmf-dist/source/latex/koma-script/scrknpap.dtx
new file mode 100644
index 00000000000..35743f0ff55
--- /dev/null
+++ b/Master/texmf-dist/source/latex/koma-script/scrknpap.dtx
@@ -0,0 +1,2171 @@
+% \CheckSum{1687}
+% \iffalse meta-comment
+% ======================================================================
+% scrknpap.dtx
+% Copyright (c) Markus Kohm, 2006
+%
+% This file is part of the LaTeX2e KOMA-Script bundle.
+%
+% This work may be distributed and/or modified under the conditions of
+% the LaTeX Project Public License, version 1.3b of the license.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.3b or later is part of all distributions of LaTeX
+% version 2005/12/01 or later and of this work.
+%
+% This work has the LPPL maintenance status "author-maintained".
+%
+% The Current Maintainer and author of this work is Markus Kohm.
+%
+% This work consists of all files listed in manifest.txt.
+% ----------------------------------------------------------------------
+% scrknpap.dtx
+% Copyright (c) Markus Kohm, 2006
+%
+% Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz,
+% Version 1.3b, verteilt und/oder veraendert werden.
+% Die neuste Version dieser Lizenz ist
+% http://www.latex-project.org/lppl.txt
+% und Version 1.3b ist Teil aller Verteilungen von LaTeX
+% Version 2005/12/01 oder spaeter und dieses Werks.
+%
+% Dieses Werk hat den LPPL-Verwaltungs-Status "author-maintained"
+% (allein durch den Autor verwaltet).
+%
+% Der Aktuelle Verwalter und Autor dieses Werkes ist Markus Kohm.
+%
+% Dieses Werk besteht aus den in manifest.txt aufgefuehrten Dateien.
+% ======================================================================
+% \fi
+%
+% \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 \~}
+%
+% \iffalse
+%%% From File: scrknpap.dtx
+%<*driver>
+% \fi
+\ProvidesFile{scrknpap.dtx}[2006/06/06 v2.95 KOMA-Script (note-paper)]
+% \iffalse
+\documentclass{scrdoc}
+\usepackage[english,ngerman]{babel}
+\usepackage[latin1]{inputenc}
+\CodelineIndex
+\RecordChanges
+\GetFileInfo{scrknpap.dtx}
+\title{\KOMAScript{} \partname\ \texttt{\filename}%
+ \footnote{Dies ist Version \fileversion\ von Datei \texttt{\filename}.}}
+\date{\filedate}
+\author{Markus Kohm}
+
+\begin{document}
+ \maketitle
+ \tableofcontents
+ \DocInput{\filename}
+\end{document}
+%</driver>
+% \fi
+%
+% \selectlanguage{ngerman}
+%
+% \changes{v2.95}{2006/03/16}{%
+% erste Version aus der Aufteilung von \textsf{scrclass.dtx}}
+%
+% \section{Briefbogen und Briefpapier}
+%
+% Bei Briefen kommt dem Briefbogen, also dem ersten Blatt des Briefes eine
+% besondere Bedeutung zu. Dieser ist bei \texttt{scrlttr2} durch diverse
+% Optionen, Variablen, Pseudo-Längen und Anweisungen bestimmt. Die weiteren
+% Briefseiten werden hier verinfacht als das Briefpapier bezeichnet. Natürlich
+% ist genau genommen auch der Briefbogen Briefpapier, aber eben ein besonderes.
+%
+% \StopEventually{\PrintIndex\PrintChanges}
+%
+% \iffalse
+%<*option>
+% \fi
+%
+% \iffalse
+%<*letter>
+% \fi
+%
+% \subsection{Option für den Briefbogen}
+%
+% Gerade der Briefbogen ist durch eine ganze Anzahl von Optionen
+% konfigurierbar. Daher wird hier weiter thematisch untergliedert.
+%
+%
+% \subsubsection{Optionen für den Briefkopf}
+%
+% Die Gestaltung des Briefkopfes war bei der alten \texttt{scrlettr}
+% Klasse eng begrenzt. Deshalb hatte ich für mich selbst das
+% \texttt{briefkopf} Paket geschrieben und ohne Support
+% veröffentlicht. Die Funktionalität ist nun direkt verfügbar. Dazu
+% werden verschiedene Optionen benötigt.
+%
+% \begin{option}{fromalign}
+% \changes{v2.8q}{2002/01/25}{Neu}
+% Diese Option legt fest, ob der Absender linksbündig, mittig oder
+% rechtsbündig gesetzt werden soll.
+% \begin{macro}{\@alignfrom}
+% \changes{v2.8q}{2002/01/25}{Neu}
+% Die Einstellung wird in einem nummerisch auszuwertenden Makro
+% gespeichert. Dabei gelten folgende Werte:
+% \begin{center}
+% \begin{tabular}{rl}
+% Wert & Ausrichtung \\\hline
+% 0 & linksbündig \\
+% 1 & zentriert \\
+% 2 & rechtsbündig \\
+% 10000 & nicht antasten \\
+% \end{tabular}
+% \end{center}
+% Voreingestellt ist "`nicht antasten"'.
+% \begin{macrocode}
+\newcommand*{\@alignfrom}{0}
+\KOMA@ncmdkey{fromalign}{@alignfrom}{%
+ {left}{0},%
+ {center}{1},{centered}{1},{middle}{1},%
+ {right}{2},%
+ {no}{10000},{false}{10000},{off}{10000}%
+}
+% \end{macrocode}
+% \end{macro}
+% \end{option}
+%
+% \begin{option}{fromrule}
+% \changes{v2.8q}{2002/01/25}{Neu}
+% Es kann gewählt werden, ob im Absender nach dem Namen oder nach dem
+% gesamten Absender eine Linie gesetzt werden soll.
+% \begin{macro}{\@rulefrom}
+% \changes{v2.8q}{2002/01/25}{Neu}
+% Die Einstellung wird in einem nummerisch auszuwertenden Makro
+% gespeichert. Dabei gelten folgende Werte:
+% \begin{center}
+% \begin{tabular}{rl}
+% Wert & Absenderlinie \\\hline
+% 0 & keine \\
+% 1 & unter dem Name \\
+% 2 & unter der Adresse \\
+% \end{tabular}
+% \end{center}
+% Voreingestellt ist keine Linie.
+% \begin{macrocode}
+\newcommand*{\@rulefrom}{0}
+\KOMA@ncmdkey{fromrule}[below]{@rulefrom}{%
+ {false}{0},{no}{0},{off}{0},{aftername}{1},%
+ {below}{2},{afteraddress}{2},{true}{2},{yes}{2},{on}{2}%
+}
+% \end{macrocode}
+% \end{macro}
+% \end{option}
+%
+% \begin{option}{fromphone}
+% \changes{v2.8q}{2002/01/25}{Neu}
+% Ob die Telefonnummer im Absender gesetzt werden soll oder nicht,
+% kann hier angegeben werden.
+% \begin{macro}{\if@phone}
+% \changes{v2.8q}{2002/01/25}{Neu}
+% \begin{macro}{\@phonetrue}
+% \changes{v2.8q}{2002/01/25}{Neu}
+% \begin{macro}{\@phonefalse}
+% \changes{v2.8q}{2002/01/25}{Neu}
+% Gespeichert wird die Information in einem einfachen Schalter.
+% Voreingestellt ist keine Telefonnummer im Absender.
+% \begin{macrocode}
+\KOMA@ifkey{fromphone}{@phone}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{option}
+%
+% \begin{option}{fromfax}
+% \changes{v2.8q}{2002/01/25}{Neu}
+% Ob die Faxnummer im Absender gesetzt werden soll oder nicht,
+% kann hier angegeben werden.
+% \begin{macro}{\if@fax}
+% \changes{v2.8q}{2002/01/25}{Neu}
+% \begin{macro}{\@faxtrue}
+% \changes{v2.8q}{2002/01/25}{Neu}
+% \begin{macro}{\@faxfalse}
+% \changes{v2.8q}{2002/01/25}{Neu}
+% Gespeichert wird die Information in einem einfachen Schalter.
+% Voreingestellt ist keine Faxnummer im Absender.
+% \begin{macrocode}
+\KOMA@ifkey{fromfax}{@fax}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{option}
+%
+% \begin{option}{fromemail}
+% \changes{v2.8q}{2002/01/25}{Neu}
+% Ob die E-Mail-Adresse im Absender gesetzt werden soll oder nicht,
+% kann hier angegeben werden.
+% \begin{macro}{\if@email}
+% \changes{v2.8q}{2002/01/25}{Neu}
+% \begin{macro}{\@emailtrue}
+% \changes{v2.8q}{2002/01/25}{Neu}
+% \begin{macro}{\@emailfalse}
+% \changes{v2.8q}{2002/01/25}{Neu}
+% Gespeichert wird die Information in einem einfachen Schalter.
+% Voreingestellt ist keine E-Mail-Adresse im Absender.
+% \begin{macrocode}
+\KOMA@ifkey{fromemail}{@email}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{option}
+%
+% \begin{option}{fromurl}
+% \changes{v2.8q}{2002/01/25}{Neu}
+% Ob die URL auf eine Homepage im Absender gesetzt werden soll oder
+% nicht, kann hier angegeben werden.
+% \begin{macro}{\if@www}
+% \changes{v2.8q}{2002/01/25}{Neu}
+% \begin{macro}{\@wwwtrue}
+% \changes{v2.8q}{2002/01/25}{Neu}
+% \begin{macro}{\@wwwfalse}
+% \changes{v2.8q}{2002/01/25}{Neu}
+% Gespeichert wird die Information in einem einfachen Schalter.
+% Voreingestellt ist keine URL im Absender.
+% \begin{macrocode}
+\KOMA@ifkey{fromurl}{@www}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{option}
+%
+% \begin{option}{fromlogo}
+% \changes{v2.8q}{2002/01/25}{Neu}
+% Ob ein Logo in den Briefkopf gesetzt werden soll oder
+% nicht, kann hier angegeben werden.
+% \begin{macro}{\if@logo}
+% \changes{v2.8q}{2002/01/25}{Neu}
+% \begin{macro}{\@logotrue}
+% \changes{v2.8q}{2002/01/25}{Neu}
+% \begin{macro}{\@logofalse}
+% \changes{v2.8q}{2002/01/25}{Neu}
+% Gespeichert wird die Information in einem einfachen Schalter.
+% Voreingestellt ist kein Logo im Briefkopf.
+% \begin{macrocode}
+\KOMA@ifkey{fromlogo}{@logo}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{option}
+%
+%
+% \subsubsection{Optionen für Anschrift und Absenderergänzung}
+%
+% \begin{option}{addrfield}
+% \changes{v2.8q}{2001/10/09}{Neu}
+% Das Adressfeld für Fensterumschläge kann mit \texttt{addrfield} ein- und
+% ausgeschaltet werden
+% \begin{macro}{\if@afield}
+% \begin{macro}{\if@afieldtrue}
+% \begin{macro}{\if@afieldfalse}
+% Die Speicherung erfolgt wiederum in einem Schalter.
+% \begin{macrocode}
+\newif\if@afield\@afieldtrue
+\KOMA@ifkey{addrfield}{@afield}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{option}
+%
+% \begin{option}{backaddress}
+% \changes{v2.8q}{2002/01/22}{Neu}
+% Im Adressfeld kann die Rücksendeadresse gesetzt werden. Dies geschieht nun
+% nicht mehr allein durch Definition einer Rücksendeadresse, sondern auch
+% durch eine Option.
+% \begin{macro}{\if@baddr}
+% \begin{macro}{\@baddrtrue}
+% \begin{macro}{\@baddrfalse}
+% Die Einstellung der Option wird in einem Schalter gespeichert.
+% \begin{macrocode}
+\newif\if@baddr\@baddrtrue
+\KOMA@ifkey{backaddress}{@baddr}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{option}
+%
+% \begin{option}{locfield}
+% \changes{v2.8q}{2001/10/09}{Neu}
+% Mit Hilfe der Optione \texttt{locfield} kann der Platz neben dem Adressfeld
+% groß oder klein gewählt werden.
+% \begin{macro}{\if@bigloc}
+% \begin{macro}{\@bigloctrue}
+% \begin{macro}{\@biglocfalse}
+% Die Einstellung wird in einem Schalter gespeichert.
+% \begin{macrocode}
+\newif\if@bigloc
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \begin{macrocode}
+\KOMA@key{locfield}[wide]{%
+ \begingroup
+ \KOMA@set@ncmdkey{locfield}{@tempa}{{wide}{0},{narrow}{1}}{#1}%
+ \ifcase\@tempa
+ \endgroup
+ \@biglocfalse
+ \else
+ \endgroup
+ \@bigloctrue
+ \fi
+}
+\DeclareOption{wlocfield}{\@ObsoleteOption{locfield=wide}}
+\DeclareOption{slocfield}{\@ObsoleteOption{locfield=narrow}}
+% \end{macrocode}
+% \end{option}
+%
+%
+% \subsubsection{Optionen für Faltmarken}
+%
+% \begin{option}{foldmarks}
+% \changes{v2.8q}{2001/09/10}{Neu}
+% Die Faltmarken können mit \texttt{foldmarks} aktiviert und deaktiviert
+% werden.
+% \begin{macro}{\if@fold}
+% \begin{macro}{\@foldtrue}
+% \begin{macro}{\@foldfalse}
+% Ob Faltmarken gesetzt werden sollen oder nicht, wird in einem
+% Schalter gespeichert.
+% \begin{macrocode}
+\newif\if@fold\@foldtrue
+\KOMA@ifkey{foldmarks}{@fold}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{option}
+%
+%
+% \subsubsection{Optionen für die Geschäftszeile}
+%
+% \begin{option}{refline}
+% \changes{v2.8n}{2001/09/08}{Neue Option}
+% Kopf und Fuß der ersten Seite sind normalweise so breit, dass sie
+% zur Adresse des Empfängers passen. Für die Geschäftszeile gibt es
+% zwei Alternativen, eine breite und eine, deren Breite der Textbreite
+% entspricht. Voreingestellt ist die Textbreite.
+% \begin{macro}{\if@refwide}
+% \changes{v2.8n}{2001/09/08}{Neuer Schalter}
+% \begin{macro}{\@refwidetrue}
+% \begin{macro}{\@refwidefalse}
+% Gespeichert wird die Information in einem Schalter.
+% \begin{macrocode}
+\newif\if@refwide
+\KOMA@key{refline}[wide]{%
+ \begingroup
+ \KOMA@set@ncmdkey{refline}{@tempa}{{wide}{0},{narrow}{1}}{#1}%
+ \ifcase\@tempa
+ \endgroup
+ \@refwidefalse
+ \else
+ \endgroup
+ \@refwidetrue
+ \fi
+}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{option}
+%
+%
+% \subsubsection{Optionen für den Betreff}
+%
+% \begin{option}{subject}
+% \changes{v2.8q}{2001/10/09}{Neu}
+% Ein Betreff-Titel kann mit \texttt{subject} ein- und abgeschaltet
+% werden. In England und Frankreich scheint es teilweise üblich zu
+% sein, den Betreff erst nach der Anrede und dafür zentriert zu
+% setzen\footnote{Ich kann mir nur mühsahm eine Bemerkung dazu
+% verkneifen.}.
+% Deshalb kann alternativ zum Einschalten des Betreff-Titels hier auch
+% dies aktiviert werden.
+% \begin{macro}{\if@subj}
+% \begin{macro}{\@subjtrue}
+% \begin{macro}{\@subjfalse}
+% \begin{macro}{\if@subjafter}
+% \begin{macro}{\@subjaftertrue}
+% \begin{macro}{\@subjafterfalse}
+% Die Speicherung erfolgt in zwei Schaltern.
+% \begin{macrocode}
+\newif\if@subj
+\newif\if@subjafter
+\KOMA@key{subject}{%
+ \begingroup
+ \KOMA@set@ncmdkey{locfield}{@tempa}{%
+ {titled}{0},%
+ {untitled}{1},%
+ {afteropening}{2},%
+ {beforeopening}{3}%
+ }{#1}%
+ \ifcase\@tempa
+ \endgroup
+ \@subjtrue
+ \or
+ \endgroup
+ \@subjfalse
+ \or
+ \endgroup
+ \@subjaftertrue
+ \else
+ \endgroup
+ \@subjafterfalse
+ \fi
+}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{option}
+%
+%
+% \subsubsection{Optionen für den Satzspiegel}
+%
+% \begin{option}{enlargefirstpage}
+% \changes{v2.8o}{2001/09/18}{Neue Option}
+% Normalerweise wird der Text des Briefboges entsprechend dem
+% normalen Satzspiegel gesetzt. Ist allerdings der Fuß der ersten
+% Seite zu hoch, dann wird der Satzspiegel vertikal entsprechend
+% verkürzt. Mit der Option \texttt{firstpageenlarge} kann erzwungen
+% werden, dass im umgekehrten Fall, der Satzspiegel vertikal
+% verlängert wird.
+% \begin{macro}{\if@enlargefp}
+% \begin{macro}{\@enlargefptrue}
+% \begin{macro}{\@enlargefpfalse}
+% Gespeichert wird die Information über die Optionen in einem
+% Schalter.
+% \begin{macrocode}
+\KOMA@ifkey{enlargefirstpage}{@enlargefp}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{option}
+%
+%
+% \subsection{Optionen für den Kopf des weiteren Briefpapiers}
+%
+% Diese Optionen haben zwar nichts mit dem eigentlichen Briefbogen zu tun. Das
+% Briefpapier schließt sich aber an, weshalb die Optionen hier zu finden sind.
+%
+% \begin{option}{pagenumber}
+% \changes{v2.8q}{2002/01/31}{Neu}
+% Bei Briefen kann gewählt werden, ob auf Folgeseiten die Seitenzahl
+% im Kopf oder im Fuß stehen soll. Dabei kann zwischen Seitenzahl
+% rechts, links oder zentriert gewählt werden. Voreingestellt ist der
+% Fuß und mittig.
+% \begin{macro}{\@pageat}
+% \changes{v2.8q}{2002/01/31}{Neu}
+% In dieser nummerisch auswertbaren Variablen wird gespeichert, wo die
+% Seitenzahl stehen soll. Dabei gilt:
+% \begin{center}\begin{tabular}{rl}
+% Wert & Bedeutung für die Seitenzahl\\\hline
+% -1 & keine \\
+% 0 & im Kopf links \\
+% 1 & im Kopf mittig \\
+% 2 & im Kopf rechts \\
+% 3 & im Fuß links \\
+% 4 & im Fuß mittig \\
+% 5 & im Fuß rechts \\
+% \end{tabular}\end{center}
+% \begin{macrocode}
+\newcommand*{\@pageat}{4}
+\KOMA@key{pagenumber}{%
+ \begingroup
+ \KOMA@set@ncmdkey{pagenumber}{@tempa}{%
+ {no}{-1},{off}{-1},{false}{-1},%
+ {topleft}{0},{headleft}{0},%
+ {topmiddle}{1},{topcenter}{1},{topcentered}{1},%
+ {headmiddle}{1},{headcenter}{1},{headcentered}{1},%
+ {topright}{2},{headright}{2},%
+ {botleft}{3},{footleft}{3},%
+ {botmiddle}{4},{botcenter}{4},{botcentered}{4},%
+ {footmiddle}{4},{footcenter}{4},{footcentered}{4},%
+ {botright}{5},{footright}{5},%
+ {top}{10},{head}{10},{bot}{11},{foot}{11},%
+ {left}{20},{middle}{21},{center}{21},{centered}{21},{right}{22}%
+ }{#1}%
+ \ifnum\@tempa<10
+ \edef\@tempa{\endgroup\edef\noexpand\@pageat{\@tempa}}%
+ \else
+ \ifnum\@tempa<20
+ \@tempcnta\@pageat\relax
+ \ifnum\@tempcnta>2
+ \advance\@tempcnta by -3
+ \fi
+ \ifnum\@tempa=11
+ \advance\@tempcnta by 3
+ \fi
+ \edef\@tempa{\endgroup\edef\noexpand\@pageat{\the\@tempcnta}}%
+ \else
+ \ifnum\@pageat>2
+ \edef\@pageat{3}%
+ \else
+ \edef\@pageat{0}%
+ \fi
+ \@tempcnta\@tempa
+ \advance\@tempcnta by -20
+ \advance\@tempcnta by\@pageat
+ \edef\@tempa{\endgroup\edef\noexpand\@pageat{\the\@tempcnta}}%
+ \fi
+ \fi
+ \@tempa
+}
+% \end{macrocode}
+% \end{macro}
+% \end{option}
+%
+%
+% \iffalse
+%</letter>
+%</option>
+%<*body>
+%<*letter>
+% \fi
+%
+% \subsection{Anweisungen für den Briefbogen}
+%
+% Auch bei den Anweisungen zunächst alles, was mit dem Briefbogen zu tun hat.
+%
+% \subsubsection{Der Kopf des Briefbogens}
+%
+% \begin{macro}{\firsthead}
+% \changes{v2.8q}{2002/01/28}{\cs{@alignfrom} auf 10000 gesetzt}
+% \begin{macro}{\@firsthead}
+% \begin{macro}{\@gen@firsthead}
+% \changes{v2.8q}{2002/01/28}{Neu}
+% Bei \texttt{scrlttr2} gibt es die üblichen Seitenstile, allerdings
+% ist deren Verhalten etwas anders als gewohnt. Dies ist in den
+% Besonderheiten für Briefen begründet. Zunächst die Voreinstellung für
+% Briefbögen.
+% \begin{macrocode}
+\newcommand*{\@firsthead}{\noindent%
+ \parbox[b]{\useplength{firstheadwidth}}%
+ {\centering\usekomafont{fromaddress}{%
+ \ifkomavarempty{fromname}{}{%
+ {\usekomafont{fromname}%
+ {\ignorespaces\usekomavar{fromname}}}\\[-8pt]
+ \rule{\useplength{firstheadwidth}}{.4pt}\\
+ }%
+ \ifkomavarempty{fromaddress}{}{%
+ \ignorespaces\usekomavar{fromaddress}%
+ }%
+ }%
+ }%
+}
+\newcommand*{\@gen@firsthead}{%
+% Damit wird ggf. die Kopfzeile der ersten Seite umdefiniert, nämlich dann,
+% wenn dies per Option aktiviert wurde.
+% \begin{macrocode}
+ \ifcase\@alignfrom
+% \end{macrocode}
+% Wir befinden uns nun in dem Bereich für \verb|\@alignfrom|=0.
+% Entsprechend unserer Festlegung wird daher als Erstes der
+% linksbündige Absender definiert. Wir verwenden dafür eine
+% \emph{parbox}, in der der Text linksbündig angeordnet wird. Diese
+% Box soll über die gesamte Breite gehen dürfen:
+% \begin{macrocode}
+ \renewcommand*{\@firsthead}{\noindent
+ \parbox[b]{\textwidth}{\raggedright
+% \end{macrocode}
+% Zuerst wird der Name gesetzt. Dabei soll eine eigene Schriftart für
+% den Namen verwendet werden.
+% \begin{macrocode}
+ {\usekomafont{fromname}\strut\ignorespaces
+ \usekomavar{fromname}%
+% \end{macrocode}
+% Hat \verb|\@rulefrom| den nummerischen Wert 1, so soll direkt auf den
+% Absender eine Linie folgen. Die Länge dieser Linie kann vom Anwender
+% bestimmt oder automatisch gewählt werden. Es wird dabei die
+% Pseudo-Länge \texttt{fromrulewidth} verwendet. Ist diese negativ,
+% so wird sie automatisch bestimmt. Bei der automatischen
+% Längenbestimmung wird dafür gesorgt, dass die Linie nicht bis in das
+% Logo ragt, das eventuell rechtsbündig neben dem Absender steht:
+% \begin{macrocode}
+ {%
+ \ifnum\@rulefrom=1\\[-.5\baselineskip]%
+ \setlength{\@tempdima}{\useplength{fromrulewidth}}%
+ \ifdim\@tempdima=\z@
+ \setlength{\@tempdima}{\textwidth}%
+ \if@logo
+ \settowidth{\@tempdimb}{\usekomavar{fromlogo}}%
+ \addtolength{\@tempdima}{-\@tempdimb}%
+ \fi
+ \fi
+ \expandafter\rule\expandafter{\the\@tempdima}{.4pt}%
+ \fi
+ }%
+ \\
+ }%
+% \end{macrocode}
+% Als Nächstes wird die Absenderadresse einschließlich aller
+% optionalen Felder gesetzt. Dabei werden optionale Felder nur
+% gesetzt, wenn der entsprechende Schalter \emph{true} ist. Die
+% Adresse wird ebenfalls innerhalb einer Gruppe in einer eigenen
+% Schriftart gesetzt.
+% \begin{macrocode}
+ {\usekomafont{fromaddress}\strut\ignorespaces
+ \usekomavar{fromaddress}%
+ \if@phone\\\usekomavar*{fromphone}\usekomavar{fromphone}\fi%
+ \if@fax\\\usekomavar*{fromfax}\usekomavar{fromfax}\fi%
+ \if@email\\\usekomavar*{fromemail}\usekomavar{fromemail}\fi%
+ \if@www\\\usekomavar*{fromurl}\usekomavar{fromurl}\fi%
+% \end{macrocode}
+% Wie weiter oben erwähnt, kann auch an dieser Stelle eine Linie
+% gesetzt werden. Wir gehen davon aus, dass die Linie automatisch
+% nicht in das Logo ragt, da es in diesem Fall über der Linie zu
+% stehen hat. Die entsprechende Berechnung kann also entfallen.
+% \begin{macrocode}
+ \ifnum\@rulefrom=2\\[-.5\baselineskip]%
+ \setlength{\@tempdima}{\useplength{fromrulewidth}}%
+ \ifdim\@tempdima=\z@
+ \setlength{\@tempdima}{\textwidth}%
+ \fi
+ \expandafter\rule\expandafter{\the\@tempdima}{.4pt}%
+ \fi
+ \\
+ }%
+ }%
+% \end{macrocode}
+% Die parbox ist damit ebenfalls beendet. Es muss nun ggf. noch das
+% Logo gesetz werden. Es wird in diesem Fall von der aktuellen
+% Position am rechten Rand nach links ausgegeben.
+% \begin{macrocode}
+ \if@logo
+ \llap{\usekomavar{fromlogo}}%
+ \fi
+ }%
+% \end{macrocode}
+% Damit ist die Definition des linksbündigen Absenders abgeschlossen.
+% Es geht weiter mit dem zentrierten Absender. Dieser hat als
+% Besonderheit, dass das Logo nicht in den Briefkopf, sondern in den
+% Bereich rechts neben dem Empfänger gesetzt wird. Dort ist bereits
+% das location-Feld, daher wird dieser Fall auch dort behandelt.
+% \begin{macrocode}
+ \or
+ \renewcommand*{\@firsthead}{\noindent
+ \parbox[b]{\textwidth}{\centering
+ {\usekomafont{fromname}\strut\ignorespaces
+ \usekomavar{fromname}%
+ {%
+ \ifnum\@rulefrom=1\\[-.5\baselineskip]%
+ \setlength{\@tempdima}{\useplength{fromrulewidth}}%
+ \ifdim\@tempdima=\z@
+ \setlength{\@tempdima}{\textwidth}%
+ \fi
+ \expandafter\rule\expandafter{\the\@tempdima}{.4pt}%
+ \fi
+ }%
+ \\
+ }%
+ {\usekomafont{fromaddress}\strut\ignorespaces
+ \usekomavar{fromaddress}%
+ \if@phone\\\usekomavar*{fromphone}\usekomavar{fromphone}\fi%
+ \if@fax\\\usekomavar*{fromfax}\usekomavar{fromfax}\fi%
+ \if@email\\\usekomavar*{fromemail}\usekomavar{fromemail}\fi%
+ \if@www\\\usekomavar*{fromurl}\usekomavar{fromurl}\fi%
+ \ifnum\@rulefrom=2\\[-.5\baselineskip]%
+ \setlength{\@tempdima}{\useplength{fromrulewidth}}%
+ \ifdim\@tempdima=\z@
+ \setlength{\@tempdima}{\textwidth}%
+ \fi
+ \expandafter\rule\expandafter{\the\@tempdima}{.4pt}%
+ \fi
+ \\
+ }%
+ }%
+ }%
+% \end{macrocode}
+% Damit ist die Definition des zentrierten Absenders abgeschlossen. Es
+% geht weiter mit dem rechtsbündigen Absender. Das ganze wird einfach
+% beim linksbündigen Absender abgeschaut.
+% \begin{macrocode}
+ \or
+ \renewcommand*{\@firsthead}{\noindent
+ \if@logo
+ \rlap{\usekomavar{fromlogo}}%
+ \fi
+ \parbox[b]{\textwidth}{\raggedleft
+ {\usekomafont{fromname}\strut\ignorespaces
+ \usekomavar{fromname}%
+ {%
+ \ifnum\@rulefrom=1\\[-.5\baselineskip]%
+ \setlength{\@tempdima}{\useplength{fromrulewidth}}%
+ \ifdim\@tempdima=\z@
+ \setlength{\@tempdima}{\textwidth}%
+ \if@logo
+ \settowidth{\@tempdimb}{\usekomavar{fromlogo}}%
+ \addtolength{\@tempdima}{-\@tempdimb}%
+ \fi
+ \fi
+ \expandafter\rule\expandafter{\the\@tempdima}{.4pt}%
+ \fi
+ }%
+ \\
+ }%
+ {\usekomafont{fromaddress}\strut\ignorespaces
+ \usekomavar{fromaddress}%
+ \if@phone\\\usekomavar*{fromphone}\usekomavar{fromphone}\fi%
+ \if@fax\\\usekomavar*{fromfax}\usekomavar{fromfax}\fi%
+ \if@email\\\usekomavar*{fromemail}\usekomavar{fromemail}\fi%
+ \if@www\\\usekomavar*{fromurl}\usekomavar{fromurl}\fi%
+ \ifnum\@rulefrom=2\\[-.5\baselineskip]%
+ \setlength{\@tempdima}{\useplength{fromrulewidth}}%
+ \ifdim\@tempdima=\z@
+ \setlength{\@tempdima}{\textwidth}%
+ \fi
+ \expandafter\rule\expandafter{\the\@tempdima}{.4pt}%
+ \fi
+ \\
+ }%
+ }%
+ }%
+% \end{macrocode}
+% Damit ist die Umdefinierung beendet. In allen anderen Fällen wird
+% der Kopf nicht verändert.
+% \begin{macrocode}
+ \fi
+}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% Der Benutzer kann die Voreinstellung mit einer einfachen Anweisung ändern:
+% \begin{macrocode}
+\newcommand{\firsthead}[1]{%
+ \renewcommand*{\@alignfrom}{10000}%
+ \renewcommand*{\@firsthead}{\noindent#1}%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \subsubsection{Schrifteinstellungen für den Briefbogen}
+%
+% \begin{KOMAfont}{fromname}
+% \changes{v2.95}{2006/03/23}{jetzt mit \cs{newkomafont}}
+% Der Absendername im Briefkopf.
+% \begin{macrocode}
+\newkomafont{fromname}{}
+% \end{macrocode}
+% \end{KOMAfont}
+%
+% \begin{KOMAfont}{fromaddress}
+% \changes{v2.95}{2006/03/23}{jetzt mit \cs{newkomafont}}
+% Die Absenderadresse im Briefkopf.
+% \begin{macrocode}
+\newkomafont{fromaddress}{}
+% \end{macrocode}
+% \end{KOMAfont}
+%
+% \begin{KOMAfont}{backaddress}
+% \changes{v2.95}{2006/03/23}{jetzt mit \cs{newkomafont}}
+% Die Rücksendeadresse.
+% \begin{macrocode}
+\newkomafont{backaddress}{\sffamily}
+% \end{macrocode}
+% \end{KOMAfont}
+%
+% \begin{KOMAfont}{title}
+% \changes{v2.95}{2006/03/23}{jetzt mit \cs{newkomafont}}
+% Der Brieftitel.
+% \begin{macrocode}
+\newkomafont{title}{\normalcolor\sffamily\bfseries}
+% \end{macrocode}
+% \end{KOMAfont}
+%
+% \begin{KOMAfont}{subject}
+% \changes{v2.95}{2006/03/23}{jetzt mit \cs{newkomafont}}
+% Der Betreff.
+% \begin{macrocode}
+\newkomafont{subject}{\normalcolor\bfseries}
+% \end{macrocode}
+% \end{KOMAfont}
+%
+% \subsubsection{Längen für den Briefbogen}
+%
+% \begin{macro}{\ltr@len@foldmarkhpos}
+% \changes{v2.8q}{2001/10/06}{Neu}
+% Abstand der Faltmarken von der linken Papierkante.
+% \begin{macrocode}
+\@newplength{foldmarkhpos}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\ltr@len@tfoldmarkvpos}
+% \changes{v2.8q}{2001/10/06}{Neu}
+% \begin{macro}{\ltr@len@bfoldmarkvpos}
+% \changes{v2.8q}{2001/10/06}{Neu}
+% Abstand der oberen und unteren Faltmarken von der oberen Papierkante.
+% \begin{macrocode}
+\@newplength{tfoldmarkvpos}
+\@newplength{bfoldmarkvpos}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \begin{macro}{\ltr@len@toaddrvpos}
+% \changes{v2.8q}{2001/10/06}{Neu}
+% Abstand des Adressfensters von der oberen Papierkante.
+% \begin{macrocode}
+\@newplength{toaddrvpos}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\ltr@len@backaddrheight}
+% \changes{v2.8q}{2001/10/06}{Neu}
+% Höhe der Rücksendeadresse.
+% \begin{macrocode}
+\@newplength{backaddrheight}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\ltr@len@toaddrhpos}
+% \changes{v2.8q}{2001/10/06}{Neu}
+% Abstand des Adressfeldes von der linken Papierkante bzw. wenn negativ von
+% der rechten Papierkante.
+% \begin{macrocode}
+\@newplength{toaddrhpos}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\ltr@len@specialmailindent}
+% \changes{v2.8q}{2002/03/25}{Neu}
+% Abstand der Versandtart vom linken Rand des Adressfensters.
+% \begin{macrocode}
+\@newplength{specialmailindent}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\ltr@len@specialmailrightindent}
+% \changes{v2.8q}{2002/03/25}{Neu}
+% Abstand der Versandtart vom rechten Rand des Adressfensters.
+% \begin{macrocode}
+\@newplength{specialmailrightindent}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\ltr@len@toaddrindent}
+% \changes{v2.8q}{2001/10/06}{Neu}
+% Abstand der Adresse vom linken Rand des Adressfensters.
+% \begin{macrocode}
+\@newplength{toaddrindent}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\ltr@len@toaddrwidth}
+% \changes{v2.8q}{2001/10/06}{Neu}
+% Breite des Adressfensters
+% \begin{macrocode}
+\@newplength{toaddrwidth}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\ltr@len@toaddrheight}
+% \changes{v2.8q}{2001/10/06}{Neu}
+% Höhe des Adressfensters ohne Rücksendeadresse
+% \begin{macrocode}
+\@newplength{toaddrheight}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\ltr@len@locwidth}
+% \changes{v2.8q}{2001/10/06}{Neu}
+% Breite des Feldes neben dem Adressfenster
+% \begin{macrocode}
+\@newplength{locwidth}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\ltr@len@refvpos}
+% \changes{v2.8q}{2001/10/06}{Neu}
+% Abstand der Geschäftszeile von der Papieroberkante.
+% \begin{macrocode}
+\@newplength{refvpos}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\ltr@len@refwidth}
+% \changes{v2.8q}{2001/10/06}{Neu}
+% Breite der Geschäftszeile.
+% \begin{macrocode}
+\@newplength{refwidth}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\ltr@len@refhpos}
+% \changes{v2.9l}{2003/01/28}{Neu}
+% Horizontale Position der Geschäftszeile.
+% \begin{macrocode}
+\@newplength{refhpos}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\ltr@len@refaftervskip}
+% \changes{v2.8q}{2001/10/09}{Neu}
+% Abstand nach der Geschäftszeile.
+% \begin{macrocode}
+\@newplength{refaftervskip}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\ltr@len@sigbeforevskip}
+% \changes{v2.8q}{2001/10/09}{Neu}
+% Raum für die Unterschrift.
+% \begin{macrocode}
+\@newplength{sigbeforevskip}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\ltr@len@sigindent}
+% \changes{v2.8q}{2001/10/06}{Neu}
+% Horizontaler Einzug des Schlussgrußes und der Signatur.
+% \begin{macrocode}
+\@newplength{sigindent}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\ltr@len@@firstfootvpos}
+% \changes{v2.8q}{2001/10/06}{Neu}
+% Abstand des Fußes der ersten Seite von der Papieroberkante.
+% \begin{macrocode}
+\@newplength{firstfootvpos}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\ltr@len@firstfootwidth}
+% \changes{v2.8q}{2001/10/06}{Neu}
+% Breite des Fußes der ersten Seite.
+% \begin{macrocode}
+\@newplength{firstfootwidth}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\set@ltr@len@firstheadvspos}
+% \changes{v2.8q}{2001/10/06}{Neu}
+% Abstand des Kopfes der ersten Seite von der Papieroberkante.
+% \begin{macrocode}
+\@newplength{firstheadvpos}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\ltr@len@firstheadwidth}
+% \changes{v2.8q}{2001/10/06}{Neu}
+% Breite des Kopfes der ersten Seite.
+% \begin{macrocode}
+\@newplength{firstheadwidth}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\ltr@len@fromrulewidth}
+% \changes{v2.8q}{2002/01/28}{Neu}
+% Die Länge einer eventuell gesetzten Linie im Absender. Negative
+% Werte bedeuten, dass die Länge automtaisch bestimmt wird.
+\@newplength{fromrulewidth}
+\@setplength{fromrulewidth}{0pt}
+% \end{macro}
+%
+%
+% \subsubsection{Fuß des Briefbogens}
+%
+% \begin{macro}{\firstfoot}
+% \begin{macro}{\@firstfoot}
+% \begin{macrocode}
+% Der Fuß des Briefbogens ist in der Voreinstellung leer.
+\newcommand*{\@firstfoot}{}
+% \end{macrocode}
+% \end{macro}
+% Dies kann jedoch über eine einfache Benutzeranweisung geändert werden:
+% \begin{macrocode}
+\newcommand{\firstfoot}[1]{%
+ \renewcommand*{\@firstfoot}{\noindent#1}%
+}
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \subsubsection{Ausgabe des Briefbogens}
+%
+% Die Ausgabe selbst erfolgt derzeit über die |\opening|-Anweisung, die in
+% einem späteren Abschnitt implementiert ist.
+%
+% \begin{macro}{\move@topt}
+% \changes{v2.8n}{2001/09/07}{Neu}
+% Für die folgenden Aktionen wird ein Makro benötigt, mit dem man vertikal von
+% der relativen Seitenposition zur relativen Papierposition gelangen kann.
+% \begin{macrocode}
+\newcommand*{\move@topt}{%
+ \null\vskip -1in\vskip -\topmargin%
+ \vskip -\headheight\vskip -\headsep%
+ \vskip -\topskip%
+ \ignorespaces%
+}
+% \end{macrocode}
+% \begin{macro}{\move@frompt}
+% \changes{v2.8n}{2001/09/07}{Neu}
+% Natürlich wird auch ein Makro benötigt, um vertikal von einer relativen
+% Papierposition wieder auf die relative Seitenposition zurück zu gelangen.
+% \begin{macrocode}
+\newcommand*{\move@frompt}{%
+ \vskip 1in\vskip \topmargin%
+ \vskip \headheight\vskip \headsep%
+ \vskip \topskip%
+ \vskip -\baselineskip%
+ \ignorespaces%
+}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\move@topl}
+% \changes{v2.8n}{2001/09/07}{Neu}
+% Für die folgenden Aktionen wird außerdem ein Makro benötigt, mit dem man
+% horizontal von der relativen Seitenposition zur relativen Papierposition
+% gelangen kann.
+% \begin{macrocode}
+\newcommand*{\move@topl}{%
+ \null\hskip -1in%
+ \ifodd\value{page}\hskip -\oddsidemargin\else\hskip -\evensidemargin\fi
+ \ignorespaces%
+}
+% \end{macrocode}
+% \begin{macro}{\move@frompl}
+% \changes{v2.8n}{2001/09/07}{Neu}
+% Natürlich wird auch ein Makro benötigt, um horizontal von einer relativen
+% Papierposition wieder auf die relative Seitenposition zurück zu gelangen.
+% \begin{macrocode}
+\newcommand*{\move@frompl}{%
+ \hskip 1in%
+ \ifodd\value{page}\hskip \oddsidemargin\else\hskip \evensidemargin\fi%
+ \ignorespaces%
+}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\vb@t@z}
+% \changes{v2.8n}{2001/09/07}{Neu}
+% \changes{v2.95}{2006/03/23}{Absatzformatierung mit \cs{setparsizes}}
+% Ausserdem wird ein vertikales Äquivalent zu |\rlap| benötigt.
+% \begin{macrocode}
+\newcommand*{\vb@t@z}[1]{{%
+ \setbox0\vbox to\z@{#1\vss}%
+ \setparsizes{\z@}{\z@}{\z@ plus 1fil}\par@updaterelative
+ \setlength{\baselineskip}{\z@}%
+ \setlength{\@tempdima}{\ht0}\addtolength{\@tempdima}{\dp0}%
+ \box0\vskip-\@tempdima%
+ }%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@foldmarks}
+% Für die Faltmarken müssen nicht nur Abstände definiert werden, es wird auch
+% ein Befehl benötigt, um die Faltmarken zu setzen.
+% \begin{macro}{\@foldmark}
+% \changes{v2.8n}{2001/09/07}{Neu}
+% \changes{v2.95}{2006/06/06}{\cs{vskip} in \cs{vb@t@z} verschoben, damit es
+% vom Satzspiegel unabhängig wird}
+% Das geht am einfachsten, wenn wir auch einen Befehl haben, mit dem man eine
+% einzelne Faltmarke relativ zur aktuellen Position setzen kann. Dies
+% geschieht mit Hilfe von |\rlap|, damit die horizontale Position unverändert
+% bleibt. Als Parameter werden der vertikale Abstand zur aktuellen Position
+% und die Länder der Marke übergeben.
+% \begin{macrocode}
+\newcommand*{\@foldmark}[2]{%
+ \vb@t@z{\vskip #1%
+ \rlap{\move@topl\hskip\useplength{foldmarkhpos}%
+ \rule{#2}{.2pt}}}%
+ \ignorespaces%
+}
+\newcommand*{\@foldmarks}{%
+ \if@fold%
+ \typeout{Foldmarks: yes}%
+ \move@topt
+ \@foldmark{\useplength{tfoldmarkvpos}}{2mm}%
+ \@foldmark{.5\paperheight}{4mm}%
+ \@foldmark{\useplength{bfoldmarkvpos}}{2mm}%
+ \move@frompt
+ \else
+ \typeout{Foldmarks: no}%
+ \fi%
+}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\@savevbox}
+% \changes{v2.8n}{2001/09/07}{Neu}
+% \changes{v2.8q}{2001/10/30}{zusätzlich ein optionales Argument}
+% \begin{macro}{\if@savevbox@warning}
+% \begin{macro}{\@savevbox@warningtrue}
+% \begin{macro}{\@savevbox@warningfalse}
+% \changes{v2.8q}{2001/10/30}{Neu}
+% Wenn eine der vertikalen Boxen in \cs{opening} zu einer \texttt{overbox
+% \string\vbox\space} Meldung führt, weiss letztlich niemand, welche Box dafür
+% verantwortlich war. Deshalb definieren wir hier ein Makro, das ggf. eine
+% Meldung ausgibt, die erklärt, welches Element die Ursache war und was man
+% tun kann. Das erste Argument ist dabei die Sollhöhe der Box, das zweite
+% Argument ist der Boxinhalt, das dritte Argument is der Name des Elements,
+% das zu hoch ist, das vierte der Name der Elementhöhe und das fünfte
+% schließlich der Befehl, mit dem das Element vom Anwender definiert werden
+% kann. Das optionale Argument wird nur bei der Ausgabe mit ausgegeben, findet
+% jedoch bei der Berechnung keine Berücksichtigung.
+% \begin{macrocode}
+\newif\if@savevbox@warning\@savevbox@warningtrue
+\newcommand{\@savevbox}[6][]{%
+ \begingroup%
+ \vbox to #2{#1#3}%
+ \if@savevbox@warning\@savevbox@warningfalse%
+ \setbox0\vbox{#3}%
+ \setlength{\@tempdima}{#2}%
+ \setlength{\@tempdimb}{\ht0}\addtolength{\@tempdimb}{\dp0}%
+ \ifdim \@tempdimb>\@tempdima%
+ \addtolength{\@tempdimb}{-\@tempdima}%
+ \ClassWarning{%
+ scrlttr2%
+ }{%
+ #4 is \the\@tempdimb\space too high.\MessageBreak
+ You have to change `\string#5'\MessageBreak
+ or you have to define a smaller\MessageBreak
+ #4 using \string#6.\MessageBreak
+ Because of this too high #4\MessageBreak
+ you've got an overfull \string\vbox\space message%
+ }%
+ \fi%
+ \fi%
+ \endgroup%
+}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\@firstheadfootfield}
+% \changes{v2.8n}{2001/09/08}{Neu}
+% \changes{v2.8q}{2001/10/30}{\cs{parfillskip} lokal auf 0 gesetzt}
+% \changes{v2.8q}{2001/10/30}{Fuß explizit in eine Box gesetzt}
+% \changes{v2.9l}{2003/01/23}{Positionierung verbessert}
+% Ab Version 2.8n werden Kopf und Fuß der ersten Seite nicht mehr per
+% Seitenstil \texttt{firstpage} gesetzt, sondern mit einem speziellen
+% Feld. Dabei wird auch beachtet, dass dieses Feld im Kopf eine bestimmte aber
+% beschränkte Höhe hat. Diese Höhe ist unabhängig von der normalen Kopfhöhe
+% und richtet sich stattdessen nach der Position des Adressfeldes.
+% \begin{macrocode}
+\newcommand*{\@firstheadfootfield}{%
+ \typeout{Head of first page}%
+ \move@topt\vskip\useplength{firstheadvpos}%
+ \vb@t@z{%
+ \rlap{\move@topl
+ \setlength\@tempskipa{.5\paperwidth}%
+ \addtolengthplength[-.5]{\@tempskipa}{firstheadwidth}%
+ \hskip\@tempskipa
+ \vbox{\hsize\useplength{firstheadwidth}%
+ \setlength{\@tempskipa}{\useplength{toaddrvpos}}%
+ \addtolengthplength[-1]{\@tempskipa}{firstheadvpos}%
+ \addtolength{\@tempskipa}{-\baselineskip}%
+% \end{macrocode}
+% Da sich einige -- beispielsweise |briefkopf.sty| -- darauf verlassen, dass
+% |\textwidth| die Breite des Briefkopfes ist, wird diese Länge lokal
+% entsprechend gesetzt. Außerdem wird dafür gesorgt, dass |\parfillskip| hier
+% nicht berücksichtigt wird.
+% \begin{macrocode}
+ \setlength{\textwidth}{\useplength{firstheadwidth}}%
+ \setlength{\parfillskip}{\z@ \@plus 1fil}%
+ \@savevbox{\@tempskipa}{\@firsthead\vskip \z@ \@plus .00001fil}%
+ {head of first page}{firstheadvpos}{\firsthead}%
+ }%
+ }%
+ }%
+ \vskip-\useplength{firstheadvpos}\move@frompt
+ \typeout{Foot of first page}%
+ \move@topt
+ \vb@t@z{%
+ \rlap{\move@topl
+ \setlength\@tempskipa{.5\paperwidth}%
+ \addtolengthplength[-.5]{\@tempskipa}{firstfootwidth}%
+ \hskip\@tempskipa%
+ \vbox{\hsize\useplength{firstfootwidth}%
+ \vskip\useplength{firstfootvpos}%
+% \end{macrocode}
+% Da sich einige -- beispielsweise |briefkopf.sty| -- darauf verlassen, dass
+% |\textwidth| die Breite des Brieffußes ist, wird diese Länge lokal
+% entsprechend gesetzt. Außerdem wird dafür gesorgt, dass |\parfillskip| hier
+% nicht berücksichtigt wird.
+% \begin{macrocode}
+ \setlength{\textwidth}{\useplength{firstfootwidth}}%
+ \setlength{\parfillskip}{\z@ \@plus 1fil}%
+ \vbox{\hsize\useplength{firstfootwidth}\@firstfoot}%
+ }%
+ }%
+ }%
+ \move@frompt%
+ {%
+ \setlength{\@tempdima}{1in}\addtolength{\@tempdima}{\topmargin}%
+ \addtolength{\@tempdima}{\headheight}%
+ \addtolength{\@tempdima}{\headsep}%
+ \addtolength{\@tempdima}{\textheight}%
+ \addtolength{\@tempdima}{\footskip}%
+ \addtolengthplength[-1]{\@tempdima}{firstfootvpos}%
+ \ifdim\@tempdima>\z@\enlargethispage{-\@tempdima}%
+ \else\if@enlargefp\enlargethispage{-\@tempdima}\fi\fi
+ }%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@addrfield}
+% \changes{v2.8q}{2002/04/01}{\cs{parfillskip} lokal geändert}
+% \changes{v2.8q}{2002/06/03}{Sonderbehandlung für Adressfeld rechts}
+% \changes{v2.9o}{2003/02/20}{\cs{noindent} eingefügt bei
+% \texttt{specialmail}}
+% Dasselbe gilt auch für das Adressfeld für Fensterumschläge. Die
+% Rücksendeadresse und die Briefart wird dabei unterstrichen.
+% \begin{macrocode}
+\newcommand*{\@addrfield}{%
+ \if@afield
+ \begingroup%
+ \if@baddr
+ \ifkomavarempty{backaddress}{%
+ \let\@tempa\@empty\let\@tempb\@empty
+ }{%
+ \def\@tempa{backaddress}\def\@tempb{,\space}%
+ }%
+ \else
+ \let\@tempa\@empty\let\@tempb\@empty
+ \fi
+ \ifkomavarempty{specialmail}{}{%
+ \edef\@tempa{\@tempa\@tempb specialmail}\def\@tempb{,\space}%
+ }%
+ \typeout{Address (\@tempa\@tempb addressee)}%
+ \endgroup%
+ \move@topt\vskip\useplength{toaddrvpos}%
+ \vb@t@z{{\setlength{\parfillskip}{\z@ \@plus 1fil}%
+ \rlap{\move@topl
+ \setlengthtoplength{\@tempskipa}{toaddrhpos}%
+ \ifdim \@tempskipa<\z@
+ \addtolength{\@tempskipa}{\paperwidth}%
+ \addtolengthplength[-]{\@tempskipa}{toaddrwidth}%
+ \fi
+ \hskip\@tempskipa
+ \@addtoplength{toaddrheight}{\useplength{backaddrheight}}%
+ \@savevbox{\useplength{toaddrheight}}{\hsize\useplength{toaddrwidth}%
+ \@savevbox[\vss]{\useplength{backaddrheight}}{%
+ \hsize\useplength{toaddrwidth}%
+ \if@baddr
+ \ifkomavarempty{backaddress}{}{{%
+ \noindent%
+ \def\\{\usekomavar{backaddressseparator}\@ogobble}%
+ \underline{\scriptsize\usekomafont{backaddress}%
+ \usekomavar{backaddress}}}}%
+ \fi
+ }{backaddress}{backaddrheight}{\setkomavar}%
+ \ifkomavarempty{specialmail}{}{%
+ \vbox{\hsize\useplength{toaddrwidth}%
+ \noindent\hspace*{\useplength{specialmailindent}}%
+ \underline{\usekomavar{specialmail}}%
+ \hspace*{\useplength{specialmailrightindent}}}%
+ }%
+ \vfil%
+ \noindent\hskip\useplength{toaddrindent}%
+ \setlength{\@tempdima}{\useplength{toaddrwidth}}%
+ \addtolengthplength[-2]{\@tempdima}{toaddrindent}%
+ \vbox{\hsize\@tempdima%
+ \noindent\usekomavar{toname}\\\usekomavar{toaddress}}%
+ \vfil\null}%
+ {address field}{toaddrheight}%
+ {\begin{letter} or you\MessageBreak
+ have to define a smaller special purpose using\MessageBreak
+ \string\specialmail}%
+ }}}%
+ \vskip-\useplength{toaddrvpos}\move@frompt
+ \else
+ \typeout{Address: No}%
+ \fi
+ }
+% \end{macrocode}
+% \begin{macro}{\@ogobble}
+% \changes{v2.8q}{2002/01/22}{Neu}
+% In obiger Definition wird das Makro \cs{@ogobble} verwendet, um
+% einen optionalen Parameter zu vernichten, falls dieser existiert.
+% \begin{macrocode}
+\newcommand*{\@ogobble}[1][]{}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\@locfield}
+% \changes{v2.8o}{2001/09/17}{\cs{noindent} eingefügt}
+% \changes{v2.8q}{2002/02/07}{\cs{noindent} nach dem Logo}
+% \changes{v2.8q}{2002/07/23}{Berechnung der Breite hierher verschoben}
+% \changes{v2.8q}{2002/06/03}{Sonderbehandlung für Adressfeld rechts}
+% Das "`locfield"' wird unabhängig von der Adresse gesetzt.
+% \begin{macrocode}
+\newcommand*{\@locfield}{%
+ \ifdim \useplength{locwidth}=\z@%
+ \@setplength{locwidth}{\paperwidth}%
+ \ifdim \useplength{toaddrhpos}>\z@
+ \@addtoplength[-2]{locwidth}{\useplength{toaddrhpos}}%
+ \else
+ \@addtoplength[2]{locwidth}{\useplength{toaddrhpos}}%
+ \fi
+ \@addtoplength[-1]{locwidth}{\useplength{toaddrwidth}}%
+ \if@bigloc%
+ \@setplength[.66667]{locwidth}{\useplength{locwidth}}%
+ \else%
+ \@setplength[.5]{locwidth}{\useplength{locwidth}}%
+ \fi%
+ \fi%
+ \ifnum 1=\@alignfrom
+ \if@logo
+ \ifkomavarempty{location}{%
+ \setkomavar{location}{\null}}{}%
+ \fi
+ \fi
+ \ifkomavarempty{location}{%
+ \typeout{Location field: empty}%
+ }{%
+ \typeout{Location field: yes}%
+ \move@topt\vskip\useplength{toaddrvpos}%
+ \vb@t@z{\rlap{%
+ \move@topl
+ \setlengthtoplength[-]{\@tempskipa}{toaddrhpos}%
+ \ifdim \@tempskipa<\z@
+ \addtolength{\@tempskipa}{\paperwidth}%
+ \else
+ \addtolengthplength{\@tempskipa}{locwidth}%
+ \fi
+ \hskip\@tempskipa
+ \llap{%
+ \@savevbox{\useplength{toaddrheight}}{%
+ \noindent\hsize\useplength{locwidth}%
+ \ifnum 1=\@alignfrom
+ \if@logo
+ \ifkomavarempty{fromlogo}{}{%
+ {\raggedleft\noindent\usekomavar{fromlogo}\\
+ \vskip\parskip}\noindent}%
+ \fi
+ \fi
+ \usekomavar{location}\vskip \z@ \@plus .00001fil}%
+ {location field}{toaddrheight}{\setkomavar}%
+ }}%
+ }%
+ \vskip-\useplength{toaddrvpos}\move@frompt
+ }%
+ }
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@datefield}
+% \changes{v2.8q}{2002/01/14}{Schalter \cs{if@tempwa} wird bereits hier auf
+% \texttt{true} gesetzt}
+% Je nachdem, welche Felder definiert sind, muss eine geschäftsmäßiger
+% Standardbrief oder ein eher persönliches Aussehen gewählt werden.
+% \begin{macro}{\@set@reffield}
+% Einzelne Felder werden mit Hilfe dieses Makros gesetzt. Als Parameter wird
+% der Name des Feldes übergeben. Es wird dann davon ausgegangen, dass der
+% Name des Feldes in der jeweiligen Sprache im Makro
+% \verb|\|\texttt{\emph{\#1}}\verb|name| und der Wert des Feldes in
+% \verb|\var|\texttt{\emph{\#1}} zu finden ist.
+% \begin{macrocode}
+\newcommand*{\@set@reffield}[1]{%
+ \ifkomavarempty{#1}{}{%
+ \settowidth{\@tempdima}{\strut\usekomavar{#1}}%
+ \setbox0\hbox{\strut\scriptsize\sffamily\usekomavar*{#1}}%
+ \ifdim \@tempdima<\wd0\setlength{\@tempdima}{\wd0}\fi
+ \if@tempswa\enskip\hfill\fi
+ \parbox[t]{\@tempdima}{\noindent\raggedright
+ \strut\box0\\\strut\usekomavar{#1}}%
+ \@tempswatrue
+ }%
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\@set@reffields}
+% \changes{v2.8q}{2002/01/14}{Neu}
+% Dieses Makro enthält alle Aufrufe von \cs{@set@reffield}, die durchzuführen
+% sind. Das Makro kann mit Hilfe von \cs{addtoreffields} erweitert werden.
+% \begin{macrocode}
+\newcommand*{\@set@reffields}{}%
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\addtoreffields}
+% Dieses Makro erwartet als obligatorisches Argument den Namen einer
+% KOMA-Script Variable. Der Befehl arbeitet lokal zur aktuellen Umgebung.
+% \begin{macrocode}
+\newcommand*{\addtoreffields}[1]{%
+ \l@addto@macro{\@set@reffields}{\@set@reffield{#1}}%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\removereffields}
+% \changes{v2.8q}{2002/01/14}{Neu}
+% Es gibt auch einen Befehl, um alle Felder aus der Geschäftszeile zu
+% entfernen.
+% \begin{macrocode}
+\newcommand*{\removereffields}{%
+ \renewcommand*{\@set@reffields}{}%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\defaultreffields}
+% \changes{v2.8q}{2002/01/14}{Neu}
+% Ebenso ein Befehl, um die üblichen Felder zu setzen.
+% \begin{macrocode}
+\newcommand*{\defaultreffields}{%
+ \removereffields
+ \addtoreffields{yourref}%
+ \addtoreffields{yourmail}%
+ \addtoreffields{myref}%
+ \addtoreffields{customer}%
+ \addtoreffields{invoice}%
+}
+% \end{macrocode}
+% Genau diesen Befehl rufen wir auch gleich auf:
+% \begin{macrocode}
+\defaultreffields
+% \end{macrocode}
+% \end{macro}
+%
+% \changes{v2.3e}{1996/05/31}{Abstand zwischen Ort und Datum eingefügt}
+% \changes{v2.8o}{2001/09/18}{für den Brieftyp \texttt{KOMAold} anschließend
+% einen zusätzlichen vertikalen Abstand eingefügt}
+% \changes{v2.8q}{2001/11/13}{\cs{rlap} eingefügt}
+% \changes{v2.8q}{2001/11/13}{\cs{@parskipfalse}\cs{@parskip@indent}}
+% \changes{v2.8q}{2002/01/14}{Leertests entfernt, da in \cs{@set@reffield}
+% bereits enthalten}
+% \changes{v2.9l}{2003/01/28}{Berechnung von \texttt{refwidth} an die
+% Dokumentation angepasst}
+% \changes{v2.9l}{2003/01/28}{Berechnung von \texttt{refhpos} hinzugefügt}
+% \changes{v2.95}{2006/03/23}{Absatzeinzug mit \cs{setparsizes} abschalten}
+% \begin{macrocode}
+\newcommand*{\@datefield}{{%
+ \setparsizes{\z@}{\z@}{\z@ plus 1fil}\par@updaterelative
+ \ifdim\useplength{refwidth}=\z@
+ \if@refwide
+ \@setplength{refwidth}{\paperwidth}%
+ \ifdim \useplength{toaddrhpos}>\z@
+ \@setplength{refhpos}{\useplength{toaddrhpos}}%
+ \else
+ \@setplength[-]{refhpos}{\useplength{toaddrhpos}}%
+ \fi
+ \@addtoplength[-2]{refwidth}{\useplength{refhpos}}%
+ \else
+ \@setplength{refwidth}{\textwidth}%
+ \@setplength{refhpos}{\oddsidemargin}%
+ \@addtoplength{refhpos}{1in}%
+ \fi
+ \else\ifdim\useplength{refhpos}=\z@
+ \begingroup
+% \end{macrocode}
+% Wir bestimmen zunächst, um wieviel die Geschäftszeile schmaler ist als der
+% Textbereich.
+% \begin{macrocode}
+ \setlength\@tempdima{\textwidth}%
+ \addtolengthplength[-]{\@tempdima}{refwidth}%
+% \end{macrocode}
+% Dann wird bestimmt, wie groß der linke Rand tatsächlich ist.
+% \begin{macrocode}
+ \setlength\@tempdimb{\oddsidemargin}%
+ \addtolength\@tempdimb{1in}%
+% \end{macrocode}
+% Ebenso wird bestimmt, wie groß der linke und rechte Rand zusammen sind.
+% \begin{macrocode}
+ \setlength{\@tempdimc}{\paperwidth}%
+ \addtolength{\@tempdimc}{-\textwidth}%
+% \end{macrocode}
+% Jetzt wird aus dem Gesamtrand der Geschäftszeile der linke Rand der
+% Geschäftszeile so bestimmt, dass das Randverhältnis dabei unverändert
+% bleibt. Dabei erlauben wir uns eine gewisse Rechenungenauigkeit beim
+% Verhältnis.
+% \begin{macrocode}
+ \divide\@tempdimb by 32768\relax
+ \divide\@tempdimc by 32768\relax
+ \ifdim\@tempdimc=\z@\else
+ \multiply\@tempdima by\@tempdimb
+ \divide\@tempdima by\@tempdimc
+ \fi
+ \edef\@tempa{\noexpand\endgroup
+ \noexpand\@setplength{refhpos}{\the\@tempdima}}%
+ \@tempa
+ \fi\fi
+ \@tempswafalse
+ \move@topt\vskip\useplength{refvpos}%
+% \end{macrocode}
+% Jetzt erfolgt noch die Absatzeinzugkorrektur. Danach kommt die eigentliche
+% Arbeit.
+% \begin{macrocode}
+ \rlap{\noindent\move@topl\hskip\useplength{refhpos}%
+ \vbox{\hsize\useplength{refwidth}%
+ \noindent\@set@reffields
+ \ifkomavarempty{date}{%
+ \if@tempswa
+ \typeout{Reference line(s): with fields but without date}%
+ \else
+ \typeout{Reference line(s): no}%
+ \aftergroup\aftergroup\aftergroup\@tempswatrue
+ \fi
+ }{%
+ \if@tempswa
+ \typeout{Reference line(s): with fields and date}%
+ \settowidth{\@tempdima}{\strut\usekomavar{date}}%
+ \setbox0\hbox{\scriptsize\sffamily\usekomavar*{date}}%
+ \ifdim \@tempdima<\wd0\setlength{\@tempdima}{\wd0}\fi
+ \enskip\hfill
+ \parbox[t]{\@tempdima}{\noindent\raggedright%
+ \strut\box0\\\strut\usekomavar{date}}%
+ \else
+ \typeout{Reference line: only place and date}%
+ \enskip\hfill
+ \ifkomavarempty{place}{}{%
+ \usekomavar{place}\usekomavar{placeseparator}}%
+ \usekomavar{date}%
+ \@tempswatrue
+ \fi
+ }%
+ }%
+ }%
+ \if@tempswa\vskip-\baselineskip\fi
+ \vskip\useplength{refaftervskip}%
+ }%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@maketitle}
+% \changes{v2.3b}{1996/01/14}{Verwendung von \cs{sectfont} für den
+% \cs{title}}
+% \changes{v2.8p}{2001/09/22}{\cs{titlefont} an Stelle von \cs{sectfont}}
+% \changes{v2.8q}{2001/11/13}{\cs{@parskipfalse}\cs{@parskip@indent}}
+% \changes{v2.9t}{2004/09/16}{\cs{par} in Größe und Schrift des Titels}
+% \changes{v2.95}{2006/03/22}{\cs{usekomafont} and Stelle fon \cs{titlefont}}
+% \begin{macro}{\@subjfield}
+% \changes{v2.8q}{2001/10/19}{\cs{centerline} durch \cs{centering}
+% ersetzt}
+% \changes{v2.8q}{2001/11/13}{\cs{@parskipfalse}\cs{@parskip@indent}}
+% \changes{v2.8q}{2002/01/31}{wird mit hängendem Einzug gesetzt}
+% \changes{v2.95}{2006/03/23}{Absatzeinzug mit cs{setparsizes} einstellen}
+% Der eigentliche Titel wir mit |\@maketitle| gesetzt. Dies sollte jedoch
+% ebenso wie beim Betreff (|\@subjfield|) \emph{nicht} manuell geschehen.
+% \begin{macrocode}
+\newcommand*{\@maketitle}{%
+ \ifkomavarempty{title}{%
+ \typeout{Title: no}%
+ }{%
+ \typeout{Title: yes}%
+ {\setparsizes{\z@}{\z@}{\z@ plus 1fil}\par@updaterelative
+ \centering\LARGE\usekomafont{title}\usekomavar{title}\par}%
+ \vskip\baselineskip%
+ }%
+}
+\newcommand*{\@subjfield}{{%
+ \setparsizes{\z@}{\z@}{\z@ plus 1fil}\par@updaterelative
+ \ifkomavarempty{subject}{%
+ \typeout{Subject: no}%
+ }{%
+ \if@subjafter%
+ \typeout{Subject: after opening}%
+ \centering%
+ \else%
+ \typeout{Subject: before opening}%
+ \noindent%
+ \fi%
+ {\usekomafont{subject}\if@subj\@hangfrom{\usekomavar*{subject}}\fi%
+ {\usekomavar{subject}}\par}\vskip2\baselineskip%
+ }%
+ }%
+}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+%
+% \subsection{Anweisungen für das Briefpapier}
+%
+% Für das Briefpapier gibt es etwas weniger Anweisungen. Teilweise werden hier
+% auch die Anweisungen für den Briefbogen mit verwendet.
+%
+% \subsubsection{Kopf des Briefpapiers}
+%
+% Der Kopf des Briefpapiers wird wieder ganz normal über den Seitenstil
+% festgelegt. Allerdings kann er entsprechende dem Briefbogen manuell
+% definiert werden.
+%
+% \begin{macro}{\nexthead}
+% \begin{macro}{\@nexthead}
+% Die Voreinstellung ist ebenfalls von Optionen abhängig.
+% \begin{macrocode}
+\newcommand*{\@nexthead}{%
+ \rlap{\parbox[c]{\textwidth}{\raggedright\strut
+ \ifnum\@pageat=0\pagemark\else\leftmark\fi\strut}}%
+ \parbox[c]{\textwidth}{%
+ \centering\strut
+ \ifcase\@pageat
+ \rightmark
+ \or
+ \pagemark
+ \or
+ \rightmark
+ \fi\strut}%
+ \llap{\parbox[c]{\textwidth}{\raggedleft\strut
+ \ifcase\@pageat
+ \leftmark
+ \or
+ \rightmark
+ \or
+ \pagemark
+ \else
+ \rightmark
+ \fi\strut}}%
+}%
+% \end{macrocode}
+% \end{macro}
+% Die Voreinstellung ist wiederum mit einer einfachen Benutzeranweisung
+% änderbar.
+% \begin{macrocode}
+\newcommand{\nexthead}[1]{%
+ \renewcommand*{\@nexthead}{\noindent#1}%
+}
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \subsubsection{Fuß des Briefpapiers}
+%
+% \begin{macro}{\nextfoot}
+% \begin{macro}{\@nextfoot}
+% Je nach Optioneneinstellung kann sich die Seitenmarke in der Voreinstellung
+% auch im Fuß befinden.
+% \begin{macrocode}
+\newcommand*{\@nextfoot}{%
+ \ifnum\@pageat>2
+ \parbox[c]{\textwidth}{%
+ \ifcase\@pageat\or\or\or\raggedright\or\centering\or\raggedleft\fi
+ \strut\pagemark%
+ }%
+ \fi
+}
+% \end{macrocode}
+% \end{macro}
+% Auch diese Einstellung ist per Benutzeranweisung leicht zu ändern.
+% \begin{macrocode}
+\newcommand{\nextfoot}[1]{%
+ \renewcommand*{\@nextfoot}{\noindent#1}%
+}
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \subsection{Die Brief-Umgebung}
+%
+% \begin{environment}{letter}
+% \changes{v2.8q}{2002/01/16}{optionales Argument hinzugefügt}
+% \changes{v2.8q}{2002/01/16}{Fußnotenzähler wird zurückgesetzt}
+% \changes{v2.9d}{2002/08/12}{Fußnotenzähler wird korrekt zurückgesetzt}
+% Diese Umgebung ist etwas anders definiert, als normalerweise von
+% \LaTeX gewohnt. Mit ihr können innerhalb eines Dokuments beliebig
+% viele Briefe erzeugt werden. Eine der Abweichungen von der
+% Standardklasse besteht darin, dass als optionales Argument Optionen
+% gesetzt werden können.
+% \begin{macro}{\stopletter}
+% \begin{macro}{\@processto}
+% \changes{v2.9r}{2004/06/16}{robust gegen leeren Empfänger}
+% \begin{macro}{\@xproc}
+% Die Adresse, die als Argument der Briefumgebung übergeben wird, muss in Name
+% und Adresse zerlegt werden.
+% \begin{macrocode}
+\newenvironment{letter}[2][]{%
+% \end{macrocode}
+% Als erstes wird eine neue Seite begonnen. Dies kann ggf. auch eine neue
+% rechte Seite sein. Danach werden alle relevanten Zähler und Strafpunkte
+% zurückgesetzt und der obligatorische Parameter ausgewertet.
+% \begin{macrocode}
+ \newpage
+ \if@twoside\ifodd\c@page\else\thispagestyle{empty}\null\newpage\fi\fi
+ \setcounter{page}{\@ne}%
+ \setcounter{footnote}{0}%
+ \interlinepenalty=200\@processto{#2}%
+% \end{macrocode}
+% Dann werden ggf. die übergebenen Optionen ausgeführt.
+% \begin{macrocode}
+ \KOMAoptions{#1}%
+% \end{macrocode}
+% Zum Schluss werden die per \cs{AtBeginLetter} angegeben Anweisungen
+% ausgeführt.
+% \begin{macrocode}
+ \@beginletterhook
+}{%
+ \stopletter\@@par\pagebreak\@@par%
+}
+\newcommand*{\stopletter}{}
+\newcommand{\@processto}[1]{%
+ \ifx\relax#1\relax\else
+ \expandafter\@xproc#1\\\@nil\ifkomavarempty{toaddress}{}{%
+ \expandafter\@xproc#1\@nil}%
+ \fi
+}
+\newcommand*{\@xproc}{}
+\long\def\@xproc#1\\#2\@nil{%
+ \setkomavar{toname}{#1}\setkomavar{toaddress}{#2}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{environment}
+%
+% \begin{macro}{\AtBeginLetter}
+% \changes{v2.8n}{2001/09/08}{Neu}
+% \begin{macro}{\@beginletterhook}
+% \changes{v2.8n}{2001/09/08}{Neu}
+% Wie oben zu sehen, wurde in den Anfang der Briefumgebung ein Haken
+% eingefügt. Dieser wird auch tatsächlich intern genutzt. Er funktioniert
+% prinzipiell wie der |\AtBeginDocument|-Haken. Zunächst macht der Haken rein
+% gar nichts.
+% \begin{macrocode}
+\newcommand{\AtBeginLetter}{\g@addto@macro\@beginletterhook}
+\newcommand{\@beginletterhook}{}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\AtEndLetter}
+% \changes{v2.95}{2006/03/22}{Neu}
+% Analog zu |\AtBeginLetter| gibt es auch ein |\AtEndLetter|. Als Haken wird
+% hierbei |\stopletter| verwendet.
+% \begin{macrocode}
+\newcommand{\AtEndLetter}{\g@addto@macro\stopletter}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\stopbreaks}
+% \begin{macro}{\startbreaks}
+% \begin{macro}{\@nobreakvspace}
+% \begin{macro}{\@nobreakvspacex}
+% \begin{macro}{\@nobreakcr}
+% Innerhalb von Briefen wird der Umbruch etwas anders gehandhabt.
+% Dadurch soll der Brieftext besser positioniert werden.
+% \begin{macrocode}
+\newcommand*{\stopbreaks}{\interlinepenalty \@M
+ \def\par{\@@par\nobreak}\let\\=\@nobreakcr
+ \let\vspace\@nobreakvspace}
+\newcommand*{\@nobreakvspace}{%
+ \@ifstar{\@nobreakvspacex}{\@nobreakvspacex}}
+\newcommand*{\@nobreakvspacex}[1]{\ifvmode\nobreak\vskip #1\relax\else
+ \@bsphack\vadjust{\nobreak\vskip #1}\@esphack\fi}
+\newcommand*{\@nobreakcr}{%
+ \vadjust{\penalty\@M}\@ifstar{\@xnewline}{\@xnewline}}
+\newcommand*{\startbreaks}{\let\\=\@normalcr
+ \interlinepenalty 200\def\par{\@@par\penalty 200}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\opening}
+% \changes{v2.8n}{2001/09/08}{Komplett überarbeitet}
+% \changes{v2.8q}{2001/11/13}{\cs{@parskipfalse}\cs{@parskip@indent}}
+% \changes{v2.8q}{2002/03/25}{\cs{@PapersizeWarning}}
+% \changes{v2.95}{2003/03/23}{Absatzformatierung mit \cs{setparsizes}
+% einstellen}
+% Denn beim Eröffnungsgruß mit |\opening| wird neben sämtlichen Feldern auch
+% der Titel und der Betreff gesetzt.
+% \begin{macrocode}
+\newcommand{\opening}[1]{%
+ \@PapersizeWarning
+ \@gen@firsthead
+ \@mkboth{\scr@fromname@var}{\scr@subject@var}%
+ \thispagestyle{empty}\noindent
+ \@foldmarks\@firstheadfootfield\@addrfield\@locfield\@datefield
+ \@maketitle
+ \if@subjafter\else\@subjfield\fi
+ {\setparsizes{\z@}{\z@}{\z@ plus 1fil}\par@updaterelative#1\par}%
+ {\setlength{\@tempdima}{\baselineskip}%
+ \addtolength{\@tempdima}{-\parskip}%
+ \ifdim \@tempdima>\z@\vskip\@tempdima\fi}%
+ \if@subjafter\@subjfield\fi%
+ \@afterindentfalse\@afterheading
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\closing}
+% \changes{v2.2b}{1995/02/16}{{\cmd\fromsig} wird nicht mehr auf \cs{empty}
+% getestet sondern direkt eingesetzt}
+% \changes{v2.3b}{1996/01/14}{Abstand zwischen Schlussgruß und Signatur
+% erhöht}
+% \changes{v2.5d}{2000/06/10}{Abstand zwischen Schlussgruß und Signatur
+% variabel}
+% \changes{v2.8q}{2001/11/13}{\cs{@parskipfalse}\cs{@parskip@indent}}
+% \changes{v2.8q}{2002/02/05}{nicht mehr \cs{long}}
+% \changes{v2.8q}{2002/02/05}{darf \texttt{\cmd{\\}[\dots]} enthalten}
+% \changes{v2.95}{2003/03/23}{Absatzformatierung mit \cs{setparsizes}
+% einstellen}
+% Außer dem Eröffnungsgruß mit |\opening| gibt es natürlich auch einen
+% Schlussgruß mit |\closing|, bei dem außerdem die Unterschrift u.\,ä. gesetzt
+% wird.
+% \begin{macro}{\presig@skip}
+% \changes{v2.5d}{2000/06/10}{Neues Makro, das den Abstand zwischen
+% Schlussgruß und Signatur beinhaltet}
+% \changes{v2.8q}{2001/10/09}{Ersetzt durch Pseudo-Länge sigbeforevskip}
+% \end{macro}
+% \begin{macro}{\setpresigskip}
+% \changes{v2.5d}{2000/06/10}{Neues Makro, das den Abstand zwischen
+% Schlussgruß und Signatur setzt}
+% \changes{v2.8q}{2001/10/09}{Mit Hilfe der neuen Pseudo-Längen definiert}
+% Das Makro |\presig@skip| beinhaltet dabei den Abstand zwischen Schlussgruß
+% und Signatur. Da der Wert über ein Benutzerinterface per |\setpresigskip|
+% gesetzt wird, muss hier kein kostbares Längenregister (skip oder dim)
+% verschwendet werden, sondern ein Makro reicht aus. In |\setpresigskip| wird
+% allerdings noch sichergestellt, dass die Fehlermeldung bei falschem
+% Parameter möglichst nicht erst bei Verwendung auftritt.
+% \begin{macrocode}
+%</letter>
+%<lco&KOMAold>\def\setpresigskip{\@setplength{sigbeforevskip}}
+%<*letter>
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\@xtrimtempa}
+% \changes{v2.8q}{2002/02/05}{Neu (intern)}
+% \begin{macro}{\@@xtrimtempa}
+% \changes{v2.8q}{2002/02/05}{Neu (intern)}
+% Die beiden internen Macros werden benötigt, um beim Zerlegen eines mit
+% \texttt{\cmd{\\}[\cs{dots}]} zusammengesetzten Arguments das optionale
+% Argument in eckigen Klammern abzutrennen. Das Ergebnis steht anschließend in
+% \cs{@tempa}.
+% \begin{macrocode}
+\newcommand*{\@xtrimtempa}{%
+ \@ifnextchar [{\@@xtrimtempa}{\@@xtrimtempa[]}}
+\newcommand*{\@@xtrimtempa}{}
+\def\@@xtrimtempa[#1]#2\@nil{\def\@tempa{#2}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \begin{macro}{\@tempdimaismaxwidthof}
+% \changes{v2.8q}{2002/02/05}{Neu (intern)}
+% Das Makro zerlegt ein mit \texttt{\cmd{\\}[\cs{dots}]} zusammengesetzten
+% Arguments und merkt in \cs{@tempdima} die Länge des längsten
+% Elements. \cs{@tempdima} enthält beim Aufruf die minimale Länge.
+% \begin{macrocode}
+\newcommand*{\@tempdimaismaxwidthof}{}
+\def\@tempdimaismaxwidthof#1\\#2\@nil{%
+ \settowidth{\@tempdimb}{\strut\ignorespaces#1}%
+ \ifdim\@tempdima<\@tempdimb\setlength{\@tempdima}{\@tempdimb}\fi
+ \def\@tempa{#2}\ifx\@tempa\@empty
+ \let\@tempb\relax
+ \else
+ \expandafter\@xtrimtempa\@tempa\@nil
+ \def\@tempb{\expandafter\@tempdimaismaxwidthof\@tempa\@nil}%
+ \fi
+ \@tempb
+}
+% \end{macrocode}
+% \end{macro}
+% Jetzt endlich zum eigentichen Befehl.
+% \changes{v2.9r}{2004/01/28}{Längenbegrenzung auf \cs{hsize}}
+% \changes{v2.9r}{2004/01/28}{das Argument darf leer sein}
+% \begin{macrocode}
+\newcommand*{\closing}[1]{{%
+ \setparsizes{\z@}{\z@}{\z@ plus 1fil}\par@updaterelative\nobreak\par%
+ \nobreak\vskip\baselineskip%
+ \stopbreaks\noindent%
+ \setlength{\@tempdima}{0pt}%
+ \expandafter\@tempdimaismaxwidthof\scr@signature@var\\\@nil
+ \expandafter\@tempdimaismaxwidthof\strut\ignorespaces#1\\\@nil
+ \setlength{\@tempdimb}{\hsize}%
+ \addtolength{\@tempdimb}{-\useplength{sigindent}}%
+ \ifdim\@tempdima>\@tempdimb\setlength{\@tempdima}{\@tempdimb}\fi%
+ \hspace{\useplength{sigindent}}%
+ \parbox{\@tempdima}{\raggedsignature\strut\ignorespaces%
+ #1\strut\\[\useplength{sigbeforevskip}]
+ \strut\usekomavar{signature}\strut}}\par
+ \nobreak\vskip\baselineskip%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\ps}
+% \changes{v2.8n}{2001/09/08}{Komplett überarbeitet}
+% Ebenfalls möglich ist ein Postscriptum. Dieser Befehl erwartet das
+% Postscriptum nicht als Argument, sondern schaltet zum Nachtext um.
+% \begin{macrocode}
+\newcommand\ps{\par%
+ \ifdim\parskip=\z@%
+ \vskip\baselineskip%
+ \fi\startbreaks\noindent\ignorespaces%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\cc}
+% Darüber hinaus gibt es noch einen Verteiler. Dieser wird sauber formatiert.
+% \changes{v2.6}{2001/01/03}{\cs{def} durch \cs{newcommand*} ersetzt}
+% \changes{v2.8n}{2001/09/08}{Komplett "uberarbeitet}
+% \changes{v2.9o}{2003/04/22}{\cs{parfillskip} angepasst}
+% \changes{v2.9q}{2004/04/26}{\cs{parfillskip} auf \texttt{1em plus 1fil}
+% geändert}
+% \changes{v2.9r}{2004/05/25}{\cs{parfillskip} auf \texttt{\cs{z@} plus
+% 1fil} geändert}
+% \begin{macrocode}
+\newcommand*{\cc}[1]{\par%
+ \ifdim\parskip=\z@%
+ \vskip\baselineskip%
+ \fi\noindent%
+ \begingroup
+ \parbox[t]{\textwidth}{%
+ \ifkomavarempty{ccseparator}{}{%
+ \@hangfrom{%
+ \strut\usekomavar*{ccseparator}\usekomavar{ccseparator}}%
+ }%
+ \ignorespaces #1\strut}%
+ \setlength{\parfillskip}{\z@ \@plus 1fil}\par
+ \endgroup
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\encl}
+% Auch Anlagen werden ordentlich gesetzt.
+% \changes{v2.4a}{1997/06/06}{der Doppelpunkt bei den Anlagen wird nur noch
+% gesetzt, wenn \cs{enclname} nicht leer ist}
+% \changes{v2.6}{2001/01/03}{\cs{def} durch \cs{newcommand*} ersetzt}
+% \changes{v2.8n}{2001/09/08}{Komplett überarbeiten}
+% \changes{v2.8q}{2002/01/31}{Fehlendes \% ergänzt}
+% \changes{v2.9o}{2003/04/22}{\cs{parfillskip} angepasst}
+% \changes{v2.9q}{2004/04/26}{\cs{parfillskip} auf \texttt{1em plus 1fil}
+% geändert}
+% \changes{v2.9r}{2004/05/25}{\cs{parfillskip} auf \texttt{\cs{z@} plus
+% 1fil} geändert}
+% \begin{macrocode}
+\newcommand*{\encl}[1]{\par%
+ \ifdim\parskip=\z@%
+ \vskip\baselineskip%
+ \fi\noindent%
+ \begingroup
+ \parbox[t]{\textwidth}{%
+ \ifkomavarempty*{enclseparator}{}{%
+ \@hangfrom{%
+ \strut\usekomavar*{enclseparator}\usekomavar{enclseparator}}%
+ }%
+ \ignorespaces #1\strut}%
+ \setlength{\parfillskip}{\z@ \@plus 1fil}\par
+ \endgroup
+}
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \subsection{Briefspezifische Feld-Variablen}
+%
+% \begin{KOMAvar}{signature}
+% \changes{v2.8q}{2002/01/16}{Neu}
+% \begin{KOMAvar}{place}
+% \changes{v2.8q}{2002/01/16}{Neu}
+% \begin{KOMAvar}{location}
+% \changes{v2.8q}{2002/01/16}{Neu}
+% \begin{KOMAvar}{backaddress}
+% \changes{v2.8q}{2002/01/16}{Neu}
+% \begin{KOMAvar}{specialmail}
+% \changes{v2.8q}{2002/01/16}{Neu}
+% \begin{KOMAvar}{title}
+% \changes{v2.8q}{2002/01/16}{Neu}
+% \begin{KOMAvar}{fromlogo}
+% \changes{v2.8q}{2002/01/28}{Neu}
+% Zunächst besitzt die Briefklasse einige Variablen, die von Haus aus nicht
+% über einen Ausgabenamen verfügen, weil sie üblicherweise ohne Ausgabe einer
+% Bezeichung verwendet werden. Diese Variablen haben teilweise auch keinen
+% vordefinierten Inhalt. Der Inhalt muss erst vom Anwender gesetzt
+% werden. Teilweise gibt es aber auch einen vordefinierten Inhalt, der von
+% anderen Variablen abhängt.
+% \begin{macrocode}
+\newkomavar{signature}
+\setkomavar{signature}{\usekomavar{fromname}}
+\newkomavar{place}
+\newkomavar{location}
+\newkomavar{backaddress}
+\setkomavar{backaddress}{%
+ \ifkomavarempty{fromname}{}{%
+ \strut\ignorespaces\usekomavar{fromname}%
+ \ifkomavarempty{fromaddress}{}{\\}}%
+ \ifkomavarempty{fromaddress}{}{%
+ \strut\ignorespaces\usekomavar{fromaddress}}%
+ }
+\newkomavar{specialmail}
+\newkomavar{title}
+\newkomavar{fromlogo}
+% \end{macrocode}
+% \end{KOMAvar}
+% \end{KOMAvar}
+% \end{KOMAvar}
+% \end{KOMAvar}
+% \end{KOMAvar}
+% \end{KOMAvar}
+% \end{KOMAvar}
+%
+% \begin{KOMAvar}{placeseparator}
+% \changes{v2.8q}{2002/01/16}{Neu}
+% \begin{KOMAvar}{subjectseparator}
+% \changes{v2.8q}{2002/01/16}{Neu}
+% \begin{KOMAvar}{ccseparator}
+% \changes{v2.8q}{2002/01/16}{Neu}
+% \begin{KOMAvar}{enclseparator}
+% \changes{v2.8q}{2002/01/16}{Neu}
+% \begin{KOMAvar}{backaddressseparator}
+% \changes{v2.8q}{2002/01/22}{Neu}
+% \begin{KOMAvar}{phoneseparator}
+% \changes{v2.8q}{2002/03/25}{Neu}
+% \begin{KOMAvar}{faxseparator}
+% \changes{v2.8q}{2002/03/25}{Neu}
+% \begin{KOMAvar}{emailseparator}
+% \changes{v2.8q}{2002/03/25}{Neu}
+% \begin{KOMAvar}{urlseparator}
+% \changes{v2.8q}{2002/03/25}{Neu}
+% Daneben gibt es einige Trennzeichen. Diese haben ggf. als Ausgabenamen das
+% Feld, für das sie als Trennzeichen dienen. Die Trennzeichen sind
+% vordefiniert.
+% \begin{macrocode}
+\newkomavar[\usekomavar{place}]{placeseparator}
+\setkomavar{placeseparator}{,~}
+\newkomavar[\subjectname]{subjectseparator}
+\setkomavar{subjectseparator}{: }
+\newkomavar[\ccname]{ccseparator}
+\setkomavar{ccseparator}{: }
+\newkomavar[\enclname]{enclseparator}
+\setkomavar{enclseparator}{: }
+\newkomavar{backaddressseparator}
+\setkomavar{backaddressseparator}{,~}
+\newkomavar[\phonename]{phoneseparator}
+\setkomavar{phoneseparator}{:~}
+\newkomavar[\faxname]{faxseparator}
+\setkomavar{faxseparator}{:~}
+\newkomavar[\emailname]{emailseparator}
+\setkomavar{emailseparator}{:~}
+\newkomavar[\wwwname]{urlseparator}
+\setkomavar{urlseparator}{:~}
+% \end{macrocode}
+% \end{KOMAvar}
+% \end{KOMAvar}
+% \end{KOMAvar}
+% \end{KOMAvar}
+% \end{KOMAvar}
+% \end{KOMAvar}
+% \end{KOMAvar}
+% \end{KOMAvar}
+% \end{KOMAvar}
+%
+% \begin{KOMAvar}{fromname}
+% \changes{v2.8q}{2002/01/16}{Neu}
+% \begin{KOMAvar}{fromaddress}
+% \changes{v2.8q}{2002/01/16}{Neu}
+% \begin{KOMAvar}{fromemail}
+% \changes{v2.8q}{2002/01/28}{Neu}
+% \begin{KOMAvar}{fromurl}
+% \changes{v2.8q}{2002/01/28}{Neu}
+% \begin{KOMAvar}{frombank}
+% \changes{v2.8q}{2002/01/28}{Neu}
+% \begin{KOMAvar}{toname}
+% \changes{v2.8q}{2002/01/16}{Neu}
+% \begin{KOMAvar}{toaddress}
+% \changes{v2.8q}{2002/01/16}{Neu}
+% \begin{KOMAvar}{fromphone}
+% \changes{v2.8q}{2002/01/16}{Neu}
+% \begin{KOMAvar}{fromfax}
+% \changes{v2.8q}{2002/01/28}{Neu}
+% \begin{KOMAvar}{yourmail}
+% \changes{v2.8q}{2002/01/16}{Neu}
+% \begin{KOMAvar}{yourref}
+% \changes{v2.8q}{2002/01/16}{Neu}
+% \begin{KOMAvar}{myref}
+% \changes{v2.8q}{2002/01/16}{Neu}
+% \begin{KOMAvar}{customer}
+% \changes{v2.8q}{2002/01/16}{Neu}
+% \begin{KOMAvar}{invoice}
+% \changes{v2.8q}{2002/01/16}{Neu}
+% \begin{KOMAvar}{subject}
+% \changes{v2.8q}{2002/01/16}{Neu}
+% \begin{KOMAvar}{date}
+% \changes{v2.8q}{2002/01/16}{Neu}
+% Desweiteren gibt es einige Variable, die auch einen Ausgabenamen haben, weil
+% dieser üblicherweise vorangestellt wird. Eine Besonderheit stellt dabei
+% \texttt{subject} dar. Der Ausgabename beinhaltet dabei nämlich auch die
+% Trennzeichen, die hinter dem Namen üblicherweise stehen. Diese sind wiederum
+% ein Variable, deren Name der Ausgabename des Feldes ist. Will man also nur
+% den Namen aber nicht die Trennzeichen ändern, so ändert man statt dem Namen
+% von \texttt{subject} den Namen von \texttt{subjectseparator}.
+%
+% Ähnlich ist es mit \texttt{toaddress} und \texttt{fromaddress}. Dort ist der
+% Wert von \texttt{toname} bzw. \texttt{fromname} der Ausgabename. Bei
+% \texttt{toaddress} und \texttt{fromaddress} wird davon jedoch intern kein
+% Gebrauch gemacht. Die Variable \texttt{date} wird bereits so vordefiniert,
+% dass auch weiterhin \cs{date} funktioniert.
+% \begin{macrocode}
+\newkomavar[\headfromname]{fromname}
+\newkomavar[\usekomavar{fromname}]{fromaddress}
+\newkomavar[\headtoname]{toname}
+\newkomavar[\usekomavar{toname}]{toaddress}
+\newkomavar[\usekomavar*{phoneseparator}%
+ \usekomavar{phoneseparator}]{fromphone}
+\newkomavar[\usekomavar*{faxseparator}%
+ \usekomavar{faxseparator}]{fromfax}
+\newkomavar[\usekomavar*{emailseparator}%
+ \usekomavar{emailseparator}]{fromemail}
+\newkomavar[\usekomavar*{urlseparator}%
+ \usekomavar{urlseparator}]{fromurl}
+\newkomavar[\bankname]{frombank}
+\newkomavar[\yourrefname]{yourref}
+\newkomavar[\yourmailname]{yourmail}
+\newkomavar[\myrefname]{myref}
+\newkomavar[\customername]{customer}
+\newkomavar[\invoicename]{invoice}
+\newkomavar[\usekomavar*{subjectseparator}%
+ \usekomavar{subjectseparator}]{subject}
+\newkomavar[\datename]{date}
+\setkomavar{date}{\@date}
+% \end{macrocode}
+% \end{KOMAvar}
+% \end{KOMAvar}
+% \end{KOMAvar}
+% \end{KOMAvar}
+% \end{KOMAvar}
+% \end{KOMAvar}
+% \end{KOMAvar}
+% \end{KOMAvar}
+% \end{KOMAvar}
+% \end{KOMAvar}
+% \end{KOMAvar}
+% \end{KOMAvar}
+% \end{KOMAvar}
+% \end{KOMAvar}
+% \end{KOMAvar}
+% \end{KOMAvar}
+%
+% \iffalse
+%</letter>
+% \fi
+%
+% \iffalse
+%</body>
+% \fi
+%
+% \Finale
+%
+\endinput
+%
+% end of file `scrknpap.dtx'
+%%% Local Variables:
+%%% mode: doctex
+%%% TeX-master: t
+%%% End: