From 9b219d1b664067729034647a4b37626cf2bf5e26 Mon Sep 17 00:00:00 2001
From: Karl Berry <karl@freefriends.org>
Date: Thu, 26 Dec 2013 23:18:36 +0000
Subject: koma-script (26dec13)

git-svn-id: svn://tug.org/texlive/trunk@32489 c570f23f-e606-0410-a88d-b1316a301751
---
 .../latex/koma-script/scrkernel-notepaper.dtx      | 3657 ++++++++++++++++++++
 1 file changed, 3657 insertions(+)
 create mode 100644 Master/texmf-dist/source/latex/koma-script/scrkernel-notepaper.dtx

(limited to 'Master/texmf-dist/source/latex/koma-script/scrkernel-notepaper.dtx')

diff --git a/Master/texmf-dist/source/latex/koma-script/scrkernel-notepaper.dtx b/Master/texmf-dist/source/latex/koma-script/scrkernel-notepaper.dtx
new file mode 100644
index 00000000000..a6e52722c9b
--- /dev/null
+++ b/Master/texmf-dist/source/latex/koma-script/scrkernel-notepaper.dtx
@@ -0,0 +1,3657 @@
+% \CheckSum{3156}
+% \iffalse meta-comment
+% ======================================================================
+% scrkernel-notepaper.dtx
+% Copyright (c) Markus Kohm, 2006-2013
+%
+% 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.3c of the license.
+% The latest version of this license is in
+%   http://www.latex-project.org/lppl.txt
+% and version 1.3c 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.
+% ----------------------------------------------------------------------
+% scrkernel-notepaper.dtx
+% Copyright (c) Markus Kohm, 2006-2013
+%
+% Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz,
+% Version 1.3c, verteilt und/oder veraendert werden.
+% Die neuste Version dieser Lizenz ist
+%   http://www.latex-project.org/lppl.txt
+% und Version 1.3c 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: $Id: scrkernel-notepaper.dtx 1380 2013-10-01 15:31:55Z mjk $
+%<*driver>
+% \fi
+\ProvidesFile{scrkernel-notepaper.dtx}[2013/07/31 v3.12 KOMA-Script
+                                                       (note-paper)]
+% \iffalse
+\documentclass{scrdoc}
+\usepackage[english,ngerman]{babel}
+\usepackage[latin1]{inputenc}
+\CodelineIndex
+\RecordChanges
+\GetFileInfo{scrkernel-notepaper.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}{firsthead}
+%   \changes{v2.97e}{2007/11/22}{Neu}
+% Der Briefkopf kann auch einfach abgeschaltet werden.
+% \begin{macro}{\if@firsthead}
+%   \changes{v2.8q}{2002/01/25}{Neuer Schalter (intern)}
+% Gespeichert wird die Information in einem einfachen Schalter.
+% Voreingestellt ist die Verwendung des Briefkopfes.
+%    \begin{macrocode}
+\KOMA@ifkey{firsthead}{@firsthead}\@firstheadtrue
+%    \end{macrocode}
+% \end{macro}
+% \end{option}
+%
+% \begin{option}{fromalign}
+%   \changes{v2.8q}{2002/01/25}{Neu}
+%   \changes{v3.12}{2013/03/05}{Verwendung der Status-Signalisierung mit
+%     \cs{FamilyKeyState}}
+% 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}
+%   \changes{v2.97e}{2007/11/13}{neue Werte für Verwendung der
+%     Absenderergänzung}
+% 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 \\
+%     3    & linksbündig in der Absenderergänzung ohne Kopf \\
+%     4    & rechtbündig in der Absenderergänzung ohne Kopf \\
+%     10000 & nicht antasten \\
+%   \end{tabular}
+% \end{center}
+% Voreingestellt ist "`nicht antasten"'.
+%    \begin{macrocode}
+\newcommand*{\@alignfrom}{0}
+\KOMA@key{fromalign}{%
+  \KOMA@set@ncmdkey{fromalign}{@alignfrom}{%
+    {left}{0},%
+    {center}{1},{centered}{1},{middle}{1},%
+    {right}{2},%
+    {locationleft}{3},{leftlocation}{3},%
+    {locationright}{4},{rightlocation}{4},{location}{4},%
+    {no}{10000},{false}{10000},{off}{10000}%
+  }{#1}%
+  \ifx\FamilyKeyState\FamilyKeyStateProcessed
+    \ifcase\@alignfrom\or\or\or\@firstheadfalse\or\@firstheadfalse\fi
+  \fi
+}
+%    \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}{frommobilephone}
+%   \changes{v3.12}{2013/05/29}{Neu}
+% Ob die Handynummer im Absender gesetzt werden soll oder nicht,
+% kann hier angegeben werden.
+% \begin{macro}{\if@mobilephone}
+%   \changes{v3.12}{2013/05/29}{Neu}
+% \begin{macro}{\@mobilephonetrue}
+%   \changes{v3.12}{2013/05/29}{Neu}
+% \begin{macro}{\@mobilephonefalse}
+%   \changes{v3.12}{2013/05/29}{Neu}
+% Gespeichert wird die Information in einem einfachen Schalter.
+% Voreingestellt ist keine Handynummer im Absender.
+%    \begin{macrocode}
+\KOMA@ifkey{frommobilephone}{@mobilephone}
+%    \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}
+%   \changes{v3.03}{2009/03/04}{neue Werte}
+% Das Adressfeld für Fensterumschläge kann mit \texttt{addrfield} ein- und
+% ausgeschaltet werden. Darüber hinaus kann die Art des Adressfeldes gewählt
+% werden.
+% \begin{macro}{\if@afield}
+%   \changes{v3.03}{2009/03/04}{ersetzt durch \cs{@afieldmode}}
+% \begin{macro}{\@afieldtrue}
+%   \changes{v3.03}{2009/03/04}{ersetzt durch \cs{@afieldmode}}
+% \begin{macro}{\@afieldfalse}
+%   \changes{v3.03}{2009/03/04}{ersetzt durch \cs{@afieldmode}}
+% \begin{macro}{\@afieldmode}
+%   \changes{v3.03}{2009/03/04}{neu (intern)}
+% Die Speicherung erfolgt wiederum in einem Makro.
+%    \begin{macrocode}
+\newcommand*{\if@afield}{%
+  \ClassWarning{\KOMAClassName}{%
+    Usage of \string\if@afield\space deprecated.\MessageBreak
+    Internal macro \string\if@afield\space was removed at\MessageBreak
+    KOMA-Script version 3.03.  I'll replace the usage of\MessageBreak
+    \string\if@afield\space by \string\ifnum
+    \string\@afieldmode=\string\@ne.\MessageBreak
+    This may result in errors.  A better solution would be\MessageBreak
+    to change the code}%
+  \ifnum \@afieldmode=\@ne}
+\newcommand*{\@afieldtrue}{%
+  \ClassWarning{\KOMAClassName}{%
+    Usage of \string\if@afield\space deprecated.\MessageBreak
+    Internal macro \string\if@afield\space was removed at\MessageBreak
+    KOMA-Script version 3.03.  I'll replace the usage of\MessageBreak
+    \string\@afieldtrue\space by
+    \string\KOMAoptions{addrfield=true}.\MessageBreak
+    This may result in erros.  A better solution would be\MessageBreak
+    to change the code}%
+  \KOMAoptions{addrfield=true}}
+\newcommand*{\@afieldfalse}{%
+  \ClassWarning{\KOMAClassName}{%
+    Usage of \string\if@afield\space deprecated.\MessageBreak
+    Internal macro \string\if@afield\space was removed at\MessageBreak
+    KOMA-Script version 3.03.  I'll replace the usage of\MessageBreak
+    \string\@afieldfalse\space by
+    \string\KOMAoptions{addrfield=false}.\MessageBreak
+    This may result in erros.  A better solution would be\MessageBreak
+    to change the code}%
+  \KOMAoptions{addrfield=false}}
+\newcommand*{\@afieldmode}{\@ne}
+\KOMA@ncmdkey{addrfield}[true]{@afieldmode}{%
+  {false}{0},{off}{0},{no}{0},%
+  {true}{1},{on}{1},{yes}{1},%
+  {PP}{2},{pp}{2},%
+  {PPexplicite}{2},{PPExplicite}{2},%
+  {ppexplicite}{2},{ppExplicite}{2},%
+  {backgroundimage}{3},%
+  {PPbackgroundimage}{3},{PPBackgroundImage}{3},{PPBackGroundImage}{3},%
+  {ppbackgroundimage}{3},{ppBackgroundImage}{3},{ppBackGroundImage}{3},%
+  {image}{4},{Image}{4},%
+  {PPimage}{4},{PPImage}{4},%
+  {ppimage}{4},{ppImage}{4}%
+}
+%    \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{option}
+%
+% \begin{option}{priority}
+%   \changes{v3.03}{2009/03/04}{neu}
+% Im internationalen Briefverkehr sind zwei Prioritätseinstellungen
+% bekannt. Dafür gibt es dann so etwas wie eine Versandart nicht mehr.
+% \begin{macro}{\ltr@priority}
+%   \changes{v3.03}{2009/03/04}{neu (intern)}
+% Abgelegt wird die Art der Priorität in einem Macro.
+%    \begin{macrocode}
+\newcommand*{\ltr@priority}{0}%
+\KOMA@ncmdkey{priority}[A]{ltr@priority}{%
+  {no}{0},{off}{0},{false}{0},{manual}{1},%
+  {B}{1},{b}{1},%
+  {economy}{1},{Economy}{1},{ECONOMY}{1},%
+  {B-ECONOMY}{1},{B-Economy}{1},{b-economy}{1},%
+  {A}{2},{a}{2},%
+  {priority}{2},{Priority}{2},{PRIORITY}{2},%
+  {A-PRIORITY}{2},{A-Priority}{2},{a-priority}{2}%
+}%
+%    \end{macrocode}
+% \end{macro}
+% \end{option}
+%
+% \begin{option}{backaddress}
+%   \changes{v2.8q}{2002/01/22}{Neu}
+%   \changes{v3.12}{2013/03/05}{Verwendung der Status-Signalisierung mit
+%     \cs{FamilyKeyState}}
+% 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}
+% \begin{macro}{\backaddr@format}
+%    \changes{v2.96}{2006/07/31}{neu (intern)}
+% Dieses Makro hat genau ein Argument und bestimmt die Form der
+% Rücksendeadresse. Voreingestellt ist Unterstreichung. Dies entspricht der
+% vor Version~2.96 festen Voreinstellung.
+%    \begin{macrocode}
+\newcommand{\backaddr@format}[1]{}
+\let\backaddr@format\underline
+%    \end{macrocode}
+% \end{macro}
+% Die Einstellung true/false der Option wird in einem Schalter gespeichert.
+%    \begin{macrocode}
+\newif\if@baddr\@baddrtrue
+\KOMA@key{backaddress}[true]{%
+  \begingroup
+    \KOMA@set@ncmdkey{backaddress}{@tempa}{%
+      {false}{0},{off}{0},{no}{0},%
+      {true}{1},{on}{1},{yes}{1},%
+      {underlined}{2},%
+      {plain}{3}%
+    }{#1}%
+    \ifx\FamilyKeyState\FamilyKeyStateProcessed
+      \aftergroup\FamilyKeyStateProcessed
+      \ifcase\@tempa
+        \endgroup
+        \@baddrfalse
+      \or
+        \endgroup
+        \@baddrtrue
+      \or
+        \endgroup
+        \@baddrtrue
+        \let\backaddr@format\underline
+      \or
+        \endgroup
+        \@baddrtrue
+        \let\backaddr@format\@firstofone
+      \else
+        \endgroup
+      \fi
+  \else
+      \endgroup
+      \FamilyKeyStateUnknownValue
+  \fi
+}
+%    \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{option}
+%
+% \begin{option}{locfield}
+%   \changes{v2.8q}{2001/10/09}{Neu}
+%   \changes{v2.97c}{2007/03/30}{vertauschte Bedeutung korrigiert}
+%   \changes{v3.12}{2013/03/05}{Verwendung der Status-Signalisierung mit
+%     \cs{FamilyKeyState}}
+% 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}%
+    \ifx\FamilyKeyState\FamilyKeyStateProcessed
+      \ifcase\@tempa
+        \endgroup
+        \@bigloctrue
+      \else
+        \endgroup
+        \@biglocfalse
+      \fi
+    \else
+      \endgroup
+      \FamilyKeyStateUnknownValue
+  \fi
+}
+%    \end{macrocode}
+% \begin{option}{wlocfield}
+%   \changes{v3.01a}{2008/11/20}{deprecated}
+% \begin{option}{slocfield}
+%   \changes{v3.01a}{2008/11/20}{deprecated}
+%    \begin{macrocode}
+\KOMA@DeclareDeprecatedOption{wlocfield}{locfield=wide}
+\KOMA@DeclareDeprecatedOption{slocfield}{locfield=narrow}
+%    \end{macrocode}
+% \end{option}
+% \end{option}
+% \end{option}
+%
+%
+% \subsubsection{Optionen für Faltmarken}
+%
+% \begin{option}{foldmarks}
+%   \changes{v2.8q}{2001/09/10}{Neu}
+%   \changes{v3.00}{2008/06/06}{es muss \cs{FamilyUnkownKeyVal} statt
+%     \cs{KOMA@unkown@keyval} lokal umdefiniert werden}
+%   \changes{v3.12}{2013/03/05}{Verwendung der Status-Signalisierung mit
+%     \cs{FamilyKeyState}}
+% 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
+%    \end{macrocode}
+% \begin{macro}{\@usefolds}
+% Welche Faltmarken gesetzt werden sollen, wird in einem Makro gespeichert.
+%   \changes{v2.97e}{2007/11/08}{Neu (intern)}
+%    \begin{macrocode}
+\newcommand*{\@usefolds}{TMBPL}
+\KOMA@key{foldmarks}[true]{%
+  \begingroup
+    \KOMA@set@ifkey\@empty{@fold}{#1}%
+    \ifx\FamilyKeyState\FamilyKeyStateProcessed
+      \if@fold\aftergroup\@foldtrue\else\aftergroup\@foldfalse\fi
+      \aftergroup\FamilyKeyStateProcessed
+    \else
+      \aftergroup\FamilyKeyStateProcessed
+      \def\sc@nf@ldch@rs##1{%
+        \ifx ##1\@nil\else
+          \if ##1T\g@addto@macro\@usefolds{##1}\else
+            \if ##1M\g@addto@macro\@usefolds{##1}\else
+              \if ##1B\g@addto@macro\@usefolds{##1}\else
+                \if ##1P\g@addto@macro\@usefolds{##1}\else
+                  \if ##1L\g@addto@macro\@usefolds{##1}\else
+                    \if ##1V\g@addto@macro\@usefolds{L}\else
+                      \if ##1H\g@addto@macro\@usefolds{TMBP}\else
+                        \if ##1t\scr@removechar\@usefolds{T}\else
+                          \if ##1m\scr@removechar\@usefolds{M}\else
+                            \if ##1b\scr@removechar\@usefolds{B}\else
+                              \if ##1p\scr@removechar\@usefolds{P}\else
+                                \if ##1l\scr@removechar\@usefolds{L}\else
+                                  \if ##1v%
+                                    \scr@removechar\@usefolds{L}%
+                                  \else
+                                    \if ##1h%
+                                      \scr@removechar\@usefolds{T}%
+                                      \scr@removechar\@usefolds{M}%
+                                      \scr@removechar\@usefolds{B}%
+                                    \else
+                                      \aftergroup\FamilyKeyStateUnknownValue
+                                    \fi
+                                  \fi
+                                \fi
+                              \fi
+                            \fi
+                          \fi
+                        \fi
+                      \fi
+                    \fi
+                  \fi
+                \fi
+              \fi
+            \fi
+          \fi
+          \expandafter\sc@nf@ldch@rs
+        \fi
+      }%
+      \expandafter\sc@nf@ldch@rs#1\@nil
+    \fi
+  \endgroup
+}
+%    \end{macrocode}
+% \begin{macro}{\scr@removechar}
+%   \changes{v2.97e}{2007/11/08}{Neu (intern)}
+%    \begin{macrocode}
+\newcommand*{\scr@removechar}[2]{%
+  \def\in@@##1#2##2##3\in@@{%
+    \ifx\in@##2\else
+      \def\in@@####1#2\in@{\gdef#1{##1####1}}%
+      \in@@##2##3%
+    \fi}%
+  \expandafter\in@@#1#2\in@\in@@
+}
+%    \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \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}
+%   \changes{v2.96a}{2006/12/07}{vertauschte Bedeutung korrigiert}
+%   \changes{v3.12}{2013/03/05}{Verwendung der Status-Signalisierung mit
+%     \cs{FamilyKeyState}}
+% 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}
+%   \changes{v3.09}{2011/03/07}{Neue Werte: \texttt{dateleft},
+%     \texttt{dateright}, \texttt{nodate}}
+% \begin{macro}{\@refwidetrue}
+% \begin{macro}{\@refwidefalse}
+% Gespeichert wird die Information in einem Schalter.
+% \begin{macro}{\@datepos}
+%   \changes{v3.09}{2011/03/07}{Neu (intern)}
+%   Das Datum kann links oder rechts oder gar nicht gesetzt werden.
+%   Wo die Speicherung erfolgt wird in einem nummerischen Makro
+%   abglegt. Voreingestellt ist rechts.
+%    \begin{macrocode}
+\newif\if@refwide
+\newcommand*{\@datepos}{1}
+\KOMA@key{refline}[wide]{%
+  \begingroup
+    \KOMA@set@ncmdkey{refline}{@tempa}{{wide}{0},{narrow}{1},%
+      {dateleft}{2},{leftdate}{2},%
+      {dateright}{3},{rightdate}{3},%
+      {nodate}{4}%
+    }{#1}%
+    \ifx\FamilyKeyState\FamilyKeyStateProcessed
+      \aftergroup\FamilyKeyStateProcessed
+      \ifcase\@tempa
+        \endgroup
+        \@refwidetrue
+      \or
+        \endgroup
+        \@refwidefalse
+      \or
+        \endgroup
+        \def\@datepos{2}%
+      \or
+        \endgroup
+        \def\@datepos{1}%
+      \or
+        \endgroup
+        \def\@datepos{0}%
+      \fi
+    \else
+      \endgroup
+      \FamilyKeyStateUnknownValue
+  \fi
+}
+%    \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{option}
+%
+%
+% \subsubsection{Optionen für den Betreff}
+%
+% \begin{option}{subject}
+%   \changes{v2.8q}{2001/10/09}{Neu}
+%   \changes{v3.12}{2013/03/05}{Verwendung der Status-Signalisierung mit
+%     \cs{FamilyKeyState}}
+% 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}{\subject@format}
+%   \changes{v2.97c}{2007/07/06}{neu (intern)}
+%   Das Format des Betreffs kann geändert werden.
+%    \begin{macrocode}
+\newcommand{\subject@format}[1]{#1}
+%    \end{macrocode}
+% \end{macro}
+% \begin{macro}{\raggedsubject}
+%   \changes{v2.97c}{2007/07/06}{neu (intern)}
+%    \begin{macrocode}
+\newcommand*{\raggedsubject}{}
+%    \end{macrocode}
+% \end{macro}
+% \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{subject}{@tempa}{%
+      {titled}{0},%
+      {untitled}{1},%
+      {afteropening}{2},%
+      {beforeopening}{3},%
+      {underlined}{4},%
+      {left}{5},%
+      {right}{6},%
+      {centered}{7}%
+    }{#1}%
+    \ifx\FamilyKeyState\FamilyKeyStateProcessed
+      \aftergroup\FamilyKeyStateProcessed
+      \ifcase\@tempa
+        \aftergroup\@subjtrue
+      \or
+        \aftergroup\@subjfalse
+      \or
+        \aftergroup\@subjaftertrue
+      \or
+        \aftergroup\@subjafterfalse
+      \or
+        \aftergroup\let\aftergroup\subject@format\aftergroup\underline
+      \or
+        \aftergroup\let\aftergroup\raggedsubject\aftergroup\raggedright
+      \or
+        \aftergroup\let\aftergroup\raggedsubject\aftergroup\raggedleft
+      \or
+        \aftergroup\let\aftergroup\raggedsubject\aftergroup\centering
+      \fi
+    \else
+      \aftergroup\FamilyKeyStateUnknownValue
+    \fi
+  \endgroup
+}
+%    \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}
+%
+%
+% \subsubsection{Optionen für den Briefbogenfuß}
+%
+% \begin{option}{firstfoot}
+%   \changes{v2.97e}{2007/11/22}{Neu}
+% Der Fuß des Briefbogens kann auch einfach abgeschaltet werden.
+% \begin{macro}{\if@firstfoot}
+%   \changes{v2.8q}{2002/01/25}{Neuer Schalter (intern)}
+% Gespeichert wird die Information in einem einfachen Schalter.
+% Voreingestellt ist die Verwendung des Fußes.
+%    \begin{macrocode}
+\KOMA@ifkey{firstfoot}{@firstfoot}\@firstfoottrue
+%    \end{macrocode}
+% \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}
+%   \changes{v3.12}{2013/03/05}{Verwendung der Status-Signalisierung mit
+%     \cs{FamilyKeyState}}
+% 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}%
+    \ifx\FamilyKeyState\FamilyKeyStateProcessed
+      \aftergroup\FamilyKeyStateProcessed
+      \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
+    \else
+      \def\@tempa{\endgroup\FamilyKeyStateUnknownValue}%
+    \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}
+%   \changes{v3.08}{2010/10/28}{der Kopf des Briefbogens wird über eine
+%     Variable realisiert}
+% \begin{macro}{\@firsthead}
+%   \changes{v3.08}{2010/10/28}{der Kopf des Briefbogens wird über eine
+%     Variable realisiert}
+% \begin{macro}{\@gen@firsthead}
+%   \changes{v2.8q}{2002/01/28}{Neu}
+%   \changes{v2.97c}{2007/05/08}{Dicke der Linie konfigurierbar}
+%   \changes{v2.97c}{2007/05/08}{Schrift (Farbe) der Linie konfigurierbar}
+%   \changes{v3.06a}{2010/07/29}{Verwendung des Font-Elements
+%     \texttt{fromrule} eingefügt}
+%   \changes{v3.08}{2010/10/28}{der Kopf des Briefbogens wird über eine
+%     Variable realisiert}
+% \begin{KOMAvar}{firsthead}
+%   \changes{v3.08}{2010/10/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}{%
+  \ClassWarning{scrlttr2}{%
+    Deprecated usage of \string\@firsthead.\MessageBreak
+    \string\usekomavar{firsthead} should be used\MessageBreak
+    instead of \string\@firsthead
+  }%
+  \usekomavar{firsthead}%
+}
+\newkomavar{firsthead}
+\setkomavar{firsthead}{%
+  \parbox[b]{\useplength{firstheadwidth}}%
+  {\centering\usekomafont{fromaddress}{%
+      \ifkomavarempty{fromname}{}{%
+        {\usekomafont{fromname}%
+          {\ignorespaces\usekomavar{fromname}}}\\[-8pt]
+        {\usekomafont{fromrule}{\rule{\useplength{firstheadwidth}}{.4pt}}}\\
+      }%
+      \ifkomavarempty{fromaddress}{}{%
+        \ignorespaces\usekomavar{fromaddress}%
+      }%
+    }%
+  }%
+}
+%    \end{macrocode}
+% \end{KOMAvar}
+% \begin{macro}{\scr@firsthead@postsetvar}
+%   \changes{v3.08}{2010/10/28}{Neu (intern)}
+% Über dieses Makro wird jeweils nach dem Setzen der Variable die Ausrichtung
+% auf manuell umgeschaltet. Das darf deshalb auch erst nach dem erstmaligen
+% Setzen definiert werden!
+%    \begin{macrocode}
+\newcommand*{\scr@firsthead@postsetvar}{%
+  \renewcommand*{\@alignfrom}{10000}%
+}
+%    \end{macrocode}
+% \end{macro}
+%    \begin{macrocode}
+\newcommand*{\@gen@firsthead}{%
+%    \end{macrocode}
+% 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}
+    \setkomavar{firsthead}{%
+      \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 werden dabei die
+% Pseudo-Längen \texttt{fromrulewidth} und \texttt{fromrulethickness}
+% verwendet. Ist \texttt{fromrulewidth} 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]%
+              \usekomafont{fromrule}{%
+                \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}{%
+                  \useplength{fromrulethickness}}}%
+            \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.%
+%   \changes{v3.12}{2013/05/29}{Variable \texttt{frommobilephone} wird
+%     berücksichtigt}%
+%    \begin{macrocode}
+        {\usekomafont{fromaddress}\strut\ignorespaces
+          \usekomavar{fromaddress}%
+          \if@phone\\\usekomavar*{fromphone}\usekomavar{fromphone}\fi%
+          \if@mobilephone
+            \\\usekomavar*{frommobilephone}\usekomavar{frommobilephone}%
+          \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]%
+            \usekomafont{fromrule}{%
+              \setlength{\@tempdima}{\useplength{fromrulewidth}}%
+              \ifdim\@tempdima=\z@
+                \setlength{\@tempdima}{\textwidth}%
+              \fi
+              \expandafter\rule\expandafter{\the\@tempdima}{%
+                \useplength{fromrulethickness}}}%
+          \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
+    }%
+    \renewcommand*{\@alignfrom}{0}%
+%    \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.%
+%   \changes{v3.12}{2013/05/29}{Variable \texttt{frommobilephone} wird
+%     berücksichtigt}%
+%    \begin{macrocode}
+  \or
+    \setkomavar{firsthead}{%
+      \parbox[b]{\textwidth}{\centering
+        {\usekomafont{fromname}\strut\ignorespaces
+          \usekomavar{fromname}%
+          {%
+            \ifnum\@rulefrom=1\\[-.5\baselineskip]%
+              \usekomafont{fromrule}{%
+                \setlength{\@tempdima}{\useplength{fromrulewidth}}%
+                \ifdim\@tempdima=\z@
+                  \setlength{\@tempdima}{\textwidth}%
+                \fi
+                \expandafter\rule\expandafter{\the\@tempdima}{%
+                  \useplength{fromrulethickness}}}%
+            \fi
+          }%
+          \\
+        }%
+        {\usekomafont{fromaddress}\strut\ignorespaces
+          \usekomavar{fromaddress}%
+          \if@phone\\\usekomavar*{fromphone}\usekomavar{fromphone}\fi%
+          \if@mobilephone
+            \\\usekomavar*{frommobilephone}\usekomavar{frommobilephone}%
+          \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]%
+            \usekomafont{fromrule}{%
+              \setlength{\@tempdima}{\useplength{fromrulewidth}}%
+              \ifdim\@tempdima=\z@
+                \setlength{\@tempdima}{\textwidth}%
+              \fi
+              \expandafter\rule\expandafter{\the\@tempdima}{%
+                \useplength{fromrulethickness}}}%
+          \fi
+          \\
+        }%
+      }%
+    }%
+    \renewcommand*{\@alignfrom}{1}%
+%    \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.%
+%   \changes{v3.12}{2013/05/29}{Variable \texttt{frommobilephone} wird
+%     berücksichtigt}%
+%    \begin{macrocode}
+  \or
+    \setkomavar{firsthead}{%
+      \if@logo
+        \rlap{\usekomavar{fromlogo}}%
+      \fi
+      \parbox[b]{\textwidth}{\raggedleft
+        {\usekomafont{fromname}\strut\ignorespaces
+          \usekomavar{fromname}%
+          {%
+            \ifnum\@rulefrom=1\\[-.5\baselineskip]%
+              \usekomafont{fromrule}{%
+                \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}{%
+                  \useplength{fromrulethickness}}}%
+            \fi
+          }%
+          \\
+        }%
+        {\usekomafont{fromaddress}\strut\ignorespaces
+          \usekomavar{fromaddress}%
+          \if@phone\\\usekomavar*{fromphone}\usekomavar{fromphone}\fi%
+          \if@mobilephone
+            \\\usekomavar*{frommobilephone}\usekomavar{frommobilephone}%
+          \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]%
+            \usekomafont{fromrule}{%
+              \setlength{\@tempdima}{\useplength{fromrulewidth}}%
+              \ifdim\@tempdima=\z@
+                \setlength{\@tempdima}{\textwidth}%
+              \fi
+              \expandafter\rule\expandafter{\the\@tempdima}{%
+                \useplength{fromrulethickness}}}%
+          \fi
+          \\
+        }%
+      }%
+    }%
+    \renewcommand*{\@alignfrom}{2}%
+%    \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}{%
+  \ClassWarning{scrlttr2}{%
+    Deprecated usage of \string\firsthead.\MessageBreak
+    You should use \string\setkomavar{firsthead}\MessageBreak
+    instead of \string\firsthead
+  }
+  \setkomavar{firsthead}%
+}
+%    \end{macrocode}
+% \end{macro}
+%
+% \subsubsection{Schrifteinstellungen für den Briefbogen}
+%
+% \begin{KOMAfont}{foldmark}
+%   \changes{v2.97c}{2007/05/08}{Neu}
+% Die Schrift (hier ist die Farbe der entscheidende Faktor) der Faltmarken.
+%    \begin{macrocode}
+\newkomafont{foldmark}{}
+%    \end{macrocode}
+% \end{KOMAfont}
+%
+% \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}{fromrule}
+%   \changes{v2.97c}{2007/05/08}{Neu}
+% Die Schrift (hier ist die Farbe der entscheidende Faktor) der Linie im
+% Absender.
+%    \begin{macrocode}
+\newkomafont{fromrule}{}
+%    \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}{specialmail}
+%   \changes{v2.97c}{2007/07/06}{Neues Font-Element}
+% Die Versandart.
+%    \begin{macrocode}
+\newkomafont{specialmail}{}
+%    \end{macrocode}
+% \end{KOMAfont}
+%
+% \begin{KOMAfont}{priority}
+%   \changes{v3.03}{2009/03/04}{Neues Font-Element}
+% Grundschrift für die Priorität des Briefs, falls diese A oder B ist. Es wird
+% ohne Durchschuss gearbeitet.
+%    \begin{macrocode}
+\newkomafont{priority}{\fontsize{10pt}{10pt}\sffamily\bfseries}
+%    \end{macrocode}
+% \end{KOMAfont}
+%
+% \begin{KOMAfont}{prioritykey}
+%   \changes{v3.03}{2009/03/04}{Neues Font-Element}
+% Schrift für den Buchstaben der Priorität des Briefs, falls diese A oder B
+% ist. Wird nach \texttt{priority} angewandt. Eigentlich sollten hier 9\,mm
+% verwendet werden. Dafür wird aber eine frei skalierbare Schrift benötig. Mit
+% 24,88\,pt sind wir nur 0,25\,mm kleiner. Das sollte kein Problem
+% darstellen. Es wird auch hier ohne Durchschuss gearbeitet.
+%    \begin{macrocode}
+\newkomafont{prioritykey}{\fontsize{24.88pt}{24.88pt}\selectfont}
+%    \end{macrocode}
+% \end{KOMAfont}
+%
+% \begin{KOMAfont}{PPlogo}
+%   \changes{v3.03}{2009/03/04}{Neues Font-Element}
+% Schrift für das Logo \texttt{P.P.}, das im Anschriftmodus \texttt{PP}
+% gesetzt wird.
+%    \begin{macrocode}
+\newkomafont{PPlogo}{\sffamily\bfseries}
+%    \end{macrocode}
+% \end{KOMAfont}
+%
+% \begin{KOMAfont}{PPdata}
+%   \changes{v3.03}{2009/03/04}{Neues Font-Element}
+% Schrift, die innerhalb des PP-Kopfes für die Daten verwendet wird.
+% gesetzt wird.
+%    \begin{macrocode}
+\newkomafont{PPdata}{\sffamily}
+%    \end{macrocode}
+% \end{KOMAfont}
+%
+% \begin{KOMAfont}{addressee}
+%   \changes{v2.97c}{2007/07/06}{Neues Font-Element}
+%   Die komplette Anschrift.
+%    \begin{macrocode}
+\newkomafont{addressee}{}
+%    \end{macrocode}
+% \end{KOMAfont}
+%
+% \begin{KOMAfont}{toname}
+%   \changes{v2.97c}{2007/07/06}{Neues Font-Element}
+%   Der Name des Empfängers in der Anschrift.
+%    \begin{macrocode}
+\newkomafont{toname}{}
+%    \end{macrocode}
+% \end{KOMAfont}
+%
+% \begin{KOMAfont}{toaddress}
+%   \changes{v2.97c}{2007/07/06}{Neues Font-Element}
+%   Die Adresse des Empfängers in der Anschrift.
+%    \begin{macrocode}
+\newkomafont{toaddress}{}
+%    \end{macrocode}
+% \end{KOMAfont}
+%
+% \begin{KOMAfont}{refname}
+%   \changes{v2.97c}{2007/05/14}{Neues Font-Element}
+% Die Feldnamen in der Geschäftszeile.
+%    \begin{macrocode}
+\newkomafont{refname}{\sffamily\scriptsize}
+%    \end{macrocode}
+% \end{KOMAfont}
+%
+% \begin{KOMAfont}{refvalue}
+%   \changes{v2.97c}{2007/05/14}{Neues Font-Element}
+%   \changes{v2.97d}{2007/10/09}{Voreinstellung korrigiert}
+% Die Feldwerte in der Geschäftszeile.
+%    \begin{macrocode}
+\ifnum\scr@compatibility=\@nameuse{scr@v@2.97}\relax
+  \newkomafont{refvalue}{\sffamily\scriptsize}
+\else
+  \newkomafont{refvalue}{}
+\fi
+%    \end{macrocode}
+% \end{KOMAfont}
+%
+% \begin{KOMAfont}{placeanddate}
+%   \changes{v3.12}{2013/07/31}{Neues Font-Element}
+% Wird an Stelle einer Geschäftszeile nur Ort und Datum gesetzt, so findet
+% dieses Element Anwendung.
+%    \begin{macrocode}
+\newkomafont{placeanddate}{}
+%    \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 horizontalen Faltmarken von der linken Papierkante.
+%    \begin{macrocode}
+\@newplength{foldmarkhpos}
+%    \end{macrocode}
+% \end{macro}
+% \begin{macro}{\ltr@len@foldmarkvpos}
+%   \changes{v2.97e}{2007/11/10}{Neu}
+% Abstand der vertikalen Faltmarken von der oberen Papierkante.
+%    \begin{macrocode}
+\@newplength{foldmarkvpos}
+%    \end{macrocode}
+% \end{macro}
+% \begin{macro}{\ltr@len@tfoldmarkvpos}
+%   \changes{v2.8q}{2001/10/06}{Neu}
+% \begin{macro}{\ltr@len@mfoldmarkvpos}
+%   \changes{v2.97e}{2007/11/08}{Neu}
+% \begin{macro}{\ltr@len@bfoldmarkvpos}
+%   \changes{v2.8q}{2001/10/06}{Neu}
+% Abstand der oberen, mittleren und unteren Faltmarken von der oberen
+% Papierkante.
+%    \begin{macrocode}
+\@newplength{tfoldmarkvpos}
+\@newplength{mfoldmarkvpos}
+\@newplength{bfoldmarkvpos}
+%    \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \begin{macro}{\ltr@len@lfoldmarkhpos}
+%   \changes{v2.97e}{2007/11/10}{Neu}
+% Abstand linken Faltmarken von der linken Papierkante.
+%    \begin{macrocode}
+\@newplength{lfoldmarkhpos}
+%    \end{macrocode}
+% \end{macro}
+% \begin{macro}{\ltr@len@pfoldmarklength}
+%   \changes{v2.97e}{2007/11/19}{Neu}
+% \begin{macro}{\ltr@len@hfoldmarklength}
+%   \changes{v2.97e}{2007/11/10}{Neu}
+% \begin{macro}{\ltr@len@mfoldmarklength}
+%   \changes{v2.97e}{2007/11/10}{Neu}
+% \begin{macro}{\ltr@len@bfoldmarklength}
+%   \changes{v2.97e}{2001/11/10}{Neu}
+% \begin{macro}{\ltr@len@lfoldmarklength}
+%   \changes{v2.97e}{2001/11/10}{Neu}
+% Länge der Lochmarke und der oberen, mittleren und unteren horizontalen und
+% der (linken) vertikalen Faltmarke.
+%    \begin{macrocode}
+\@newplength{pfoldmarklength}
+\@newplength{tfoldmarklength}
+\@newplength{mfoldmarklength}
+\@newplength{bfoldmarklength}
+\@newplength{lfoldmarklength}
+%    \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \begin{macro}{\ltr@len@foldmarkthickness}
+%   \changes{v2.97c}{2007/05/08}{Neu}
+% Dicke der Faltmarken.
+%    \begin{macrocode}
+\@newplength{foldmarkthickness}
+\@setplength{foldmarkthickness}{.2pt}
+%    \end{macrocode}
+% \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. 0 bedeutet im
+% Anschriftmodus \texttt{PP} 8\,mm, ansonsten wirklich 0\,mm. Außerdem wird im
+% Anschriftmodus \texttt{PP} die Pseudolänge auch für den Abstand vom rechten
+% Rand des Adressfensters verwendet.
+%    \begin{macrocode}
+\@newplength{toaddrindent}
+%    \end{macrocode}
+% \end{macro}
+% \begin{macro}{\ltr@len@PPheadheight}
+%   \changes{v3.03}{2009/03/04}{Neu}%
+% Höhe des PP-Kopfes in den Anschriftmodi \texttt{PP},
+% \texttt{backgroundimage} und \texttt{image}. 0 bedeutet hier 20,74\,pt.
+%    \begin{macrocode}
+\@newplength{PPheadheight}
+%    \end{macrocode}
+% \end{macro}
+% \begin{macro}{\ltr@len@PPheadwidth}
+%   \changes{v3.03}{2009/03/04}{Neu}%
+% Breite des PP-Kopfes im Anschriftmodus \texttt{PP}. 0 bedeutet hier 42\,mm.
+%    \begin{macrocode}
+\@newplength{PPheadwidth}
+%    \end{macrocode}
+% \end{macro}
+% \begin{macro}{\ltr@len@PPdatamatrixvskip}
+%   \changes{v3.03}{2009/03/04}{Neu}%
+% Abstand zwischen PP-Kopf und DataMatrix im Anschriftmodus \texttt{PP}. 0
+% bedeutet hier 9\,mm.
+%    \begin{macrocode}
+\@newplength{PPdatamatrixvskip}
+%    \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}
+%   \changes{v3.03b}{2009/06/25}{Implementierung an Doku angepasst}
+% Höhe des Adressfensters mit Rücksendeadresse
+%    \begin{macrocode}
+\@newplength{toaddrheight}
+%    \end{macrocode}
+% \end{macro}
+% \begin{macro}{\ltr@len@locvpos}
+%   \changes{v2.97e}{2007/11/07}{Neu}
+% Abstand der Absenderergänzung von der oberen Papierkante.
+%    \begin{macrocode}
+\@newplength{locvpos}
+%    \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@lochpos}
+%   \changes{v2.97e}{2007/11/07}{Neu}
+% Abstand der Absenderergänzung von der linken Papierkante bzw. wenn negativ
+% von der rechten Papierkante.
+%    \begin{macrocode}
+\@newplength{lochpos}
+%    \end{macrocode}
+% \end{macro}
+% \begin{macro}{\ltr@len@locheight}
+%   \changes{v2.97e}{2007/11/07}{Neu}
+% Höhe der Absenderergänzung.
+%    \begin{macrocode}
+\@newplength{locheight}
+%    \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}{\ltr@len@firstfoothpos}
+%   \changes{v3.05}{2009/11/09}{Neu}
+% Abstand des Kopfes vom linken Rand der Seite.
+%    \begin{macrocode}
+\@newplength{firstfoothpos}
+\@setplength{firstfoothpos}{\maxdimen}
+%    \end{macrocode}
+% \end{macro}
+% \begin{macro}{\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@firstheadhpos}
+%   \changes{v3.05}{2009/11/09}{Neu}
+% Abstand des Kopfes vom linken Rand der Seite.
+%    \begin{macrocode}
+\@newplength{firstheadhpos}
+\@setplength{firstheadhpos}{\maxdimen}
+%    \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.
+%    \begin{macrocode}
+\@newplength{fromrulewidth}
+\@setplength{fromrulewidth}{0pt}
+%    \end{macrocode}
+% \end{macro}
+% \begin{macro}{\ltr@len@fromrulethickness}
+%   \changes{v2.97c}{2007/05/08}{Neue Pseudolänge \texttt{fromrulewidth}}
+% Die Dicke einer eventuell gesetzte Linie im Absender.
+%    \begin{macrocode}
+\@newplength{fromrulethickness}
+\@setplength{fromrulethickness}{.4pt}
+%    \end{macrocode}
+% \end{macro}
+%
+%
+% \subsubsection{Fuß des Briefbogens}
+%
+% \begin{macro}{\firstfoot}
+%   \changes{v3.08}{2010/10/28}{der Fuß des Briefbogens wird über eine
+%     Variable realisiert}
+% \begin{macro}{\@firstfoot}
+%   \changes{v3.08}{2010/10/28}{der Fuß des Briefbogens wird über eine
+%     Variable realisiert}
+% \begin{KOMAvar}{firstfoot}
+%   \changes{v3.08}{2010/10/28}{Neu}
+%    \begin{macrocode}
+% Der Fuß des Briefbogens ist in der Voreinstellung leer.
+\newkomavar{firstfoot}
+\newcommand*{\@firstfoot}{%
+  \ClassWarning{scrlttr2}{%
+    Deprecated usage of \string\@firstfoot.\MessageBreak
+    \string\usekomavar{firstfoot} should be used\MessageBreak
+    instead of \string\@firstfoot
+  }%
+  \usekomavar{firstfoot}%
+}
+%    \end{macrocode}
+% Dies kann jedoch über eine einfache Benutzeranweisung geändert werden:
+%    \begin{macrocode}
+\newcommand{\firstfoot}{%
+  \ClassWarning{scrlttr2}{%
+    Deprecated usage of \string\firstfoot.\MessageBreak
+    You should use \string\setkomavar{firstfoot}\MessageBreak
+    instead of \string\firstfoot
+  }
+  \setkomavar{firstfoot}%
+}
+%    \end{macrocode}
+% \end{KOMAvar}
+% \end{macro}
+% \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}}
+%   \changes{v2.97e}{2007/11/20}{\cs{long}}
+% 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}
+%   \changes{v2.97e}{2007/11/08}{\texttt{mfoldmarkvpos} wird verwendet}
+% 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}{\@hfoldmark}
+%   \changes{v2.97e}{2007/11/08}{Neu (intern)}
+% Dabei werden nur die horizontalen Faltmarken gesetzt, die tatsächlich
+% existieren.
+% \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}
+%   \changes{v2.97c}{2007/05/08}{Dicke konfigurierbar}
+%   \changes{v2.97c}{2007/05/08}{Schrift (Farbe) konfigurierbar}
+% 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{\setlength{\@tempdima}{#1}%
+    \addtolengthplength[-.5]{\@tempdima}{foldmarkthickness}%
+    \vskip \@tempdima
+    \rlap{\move@topl\hskip\useplength{foldmarkhpos}%
+      \usekomafont{foldmark}{%
+        \rule{#2}{\useplength{foldmarkthickness}}}}}%
+  \ignorespaces
+}
+\newcommand*{\@hfoldmark}[1]{%
+  \begingroup
+    \@expandtwoargs\in@{#1}{\@usefolds}%
+    \ifin@
+      \lowercase{%
+        \edef\@tempa{%
+          \noexpand\ifdim \noexpand\useplength{#1foldmarkvpos}=\noexpand\z@
+          \noexpand\else
+            \noexpand\@foldmark{%
+              \noexpand\useplength{#1foldmarkvpos}%
+            }{%
+              \noexpand\useplength{#1foldmarklength}%
+            }%
+          \noexpand\fi
+        }%
+      }%
+      \@tempa
+    \fi
+  \endgroup
+}
+%    \end{macrocode}
+% \begin{macro}{\@vfoldmark}
+%   \changes{v2.97e}{2007/11/10}{Neu (intern)}
+% Für die vertikale(n) Faltmarke(n) gilt prinzipiell das gleiche. Dabei ist
+% lediglich zu beachten, dass die Linie hier komplett oberhalb der Grundlinie
+% gesetzt wird, also die vertikale Position um die Länge nach unten zu
+% verschieben ist.
+%    \begin{macrocode}
+\newcommand*{\@vfoldmark}[1]{%
+  \begingroup
+    \@expandtwoargs\in@{#1}{\@usefolds}%
+    \ifin@
+      \ifdim \useplength{lfoldmarkhpos}=\z@\else
+        \vb@t@z{%
+          \ifdim \useplength{foldmarkvpos}<\z@
+            \nobreak\vskip \paperheight\nobreak
+          \fi
+          \vskip \useplength{foldmarkvpos}%
+          \vskip \useplength{foldmarkthickness}%
+          \rlap{\move@topl
+            \setlength{\@tempdima}{\useplength{lfoldmarkhpos}}%
+            \addtolengthplength[-.5]{\@tempdima}{foldmarkthickness}%
+            \hskip\@tempdima
+            \usekomafont{foldmark}{%
+              \rule{\useplength{foldmarkthickness}}%
+                   {\useplength{lfoldmarklength}}%
+            }%
+          }%
+        }%
+        \ignorespaces
+      \fi
+    \fi
+  \endgroup
+}
+\newcommand*{\@foldmarks}{%
+  \if@fold%
+    \typeout{Foldmarks: yes}%
+    \move@topt
+    \ifdim \useplength{pfoldmarklength}=\z@
+      \@setplength{pfoldmarklength}{4mm}%
+    \fi
+    \ifdim \useplength{tfoldmarklength}=\z@
+      \@setplength{tfoldmarklength}{2mm}%
+    \fi
+    \ifdim \useplength{mfoldmarklength}=\z@
+      \@setplength{mfoldmarklength}{2mm}%
+    \fi
+    \ifdim \useplength{bfoldmarklength}=\z@
+      \@setplength{bfoldmarklength}{2mm}%
+    \fi
+    \ifdim \useplength{lfoldmarklength}=\z@
+      \@setplength{lfoldmarklength}{4mm}%
+    \fi
+    \begingroup
+      \@expandtwoargs\in@{P}{\@usefolds}%
+      \ifin@
+        \@foldmark{.5\paperheight}{\useplength{pfoldmarklength}}%
+      \fi
+    \endgroup
+    \@hfoldmark{T}%
+    \@hfoldmark{M}%
+    \@hfoldmark{B}%
+    \@vfoldmark{L}%
+    \move@frompt
+  \else
+    \typeout{Foldmarks: no}%
+  \fi%
+}
+%    \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \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}
+%   \changes{v2.97e}{2007/11/22}{Optionen \texttt{firsthead} und
+%     \texttt{firstfoot} beachten}
+%   \changes{v3.05}{2009/11/09}{neue Pseudo-Länge \texttt{firstheadhpos}
+%     beachtet}
+%   \changes{v3.05}{2009/11/09}{neue Pseudo-Länge \texttt{firstfoothpos}
+%     beachtet}
+% 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}{%
+  \if@firsthead
+    \typeout{Head of first page}%
+    \move@topt\vskip\useplength{firstheadvpos}%
+    \vb@t@z{%
+      \rlap{\move@topl
+%    \end{macrocode}
+% Wenn \texttt{firstheadhpos} positiv und kleiner als die Seitenbreite ist,
+% dann ist es der Abstand des Kopfes vom linken Rand.
+% Wenn \texttt{firstheadhpos} negativ und betragsmäßig kleiner als die
+% Seitenbreite ist, dann ist es der Abstand des Kopfes vom rechten Rand.
+% Wenn \texttt{firstheadhpos} größer als die Seitenbreite ist, dann wird der
+% Kopf zentriert.
+% Wenn \texttt{firstheadhpos} kleiner als die negative Seitenbreite ist, dann
+% wird der Kopf am linken Rand des Satzspiegels ausgerichtet.
+%    \begin{macrocode}
+        \ifdim\useplength{firstheadhpos}<\paperwidth
+          \ifdim \useplength{firstheadhpos}>-\paperwidth
+            \ifdim \useplength{firstheadhpos}<\z@
+              \setlength\@tempskipa{\paperwidth}%
+              \addtolengthplength{\@tempskipa}{firstheadhpos}%
+              \addtolengthplength[-]{\@tempskipa}{firstheadwidth}%
+            \else
+              \setlength{\@tempskipa}{\useplength{firstheadhpos}}%
+            \fi
+          \else
+            \setlength\@tempskipa{\oddsidemargin}%
+            \addtolength\@tempskipa{1in}%
+          \fi
+        \else
+          \setlength\@tempskipa{.5\paperwidth}%
+          \addtolengthplength[-.5]{\@tempskipa}{firstheadwidth}%
+        \fi
+        \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}{\noindent\usekomavar{firsthead}%
+            \vskip \z@ \@plus .00001fil}%
+          {head of first page}{firstheadvpos}{\setkomavar}%
+        }%
+      }%
+    }%
+    \vskip-\useplength{firstheadvpos}\move@frompt
+  \else
+    \typeout{No head at first page}%
+  \fi
+  \move@topt
+  \if@firstfoot
+    \typeout{Foot of first page}%
+    \vb@t@z{%
+      \rlap{\move@topl
+%    \end{macrocode}
+% Wenn \texttt{firstfoothpos} positiv und kleiner als die Seitenbreite ist,
+% dann ist es der Abstand des Kopfes vom linken Rand.
+% Wenn \texttt{firstfoothpos} negativ und betragsmäßig kleiner als die
+% Seitenbreite ist, dann ist es der Abstand des Kopfes vom rechten Rand.
+% Wenn \texttt{firstfoothpos} größer als die Seitenbreite ist, dann wird der
+% Kopf zentriert.
+% Wenn \texttt{firstfoothpos} kleiner als die negative Seitenbreite ist, dann
+% wird der Kopf am linken Rand des Satzspiegels ausgerichtet.
+%    \begin{macrocode}
+         \ifdim\useplength{firstfoothpos}<\paperwidth
+          \ifdim \useplength{firstfoothpos}>-\paperwidth
+            \ifdim \useplength{firstfoothpos}<\z@
+              \setlength\@tempskipa{\paperwidth}%
+              \addtolengthplength{\@tempskipa}{firstfoothpos}%
+              \addtolengthplength[-]{\@tempskipa}{firstfootwidth}%
+            \else
+              \setlength{\@tempskipa}{\useplength{firstfoothpos}}%
+            \fi
+          \else
+            \setlength\@tempskipa{\oddsidemargin}%
+            \addtolength\@tempskipa{1in}%
+          \fi
+        \else
+          \setlength\@tempskipa{.5\paperwidth}%
+          \addtolengthplength[-.5]{\@tempskipa}{firstfootwidth}%
+        \fi
+        \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}\noindent
+            \usekomavar{firstfoot}}%
+        }%
+      }%
+    }%
+  \else
+    \typeout{No foot at first page}%
+  \fi
+  \move@frompt%
+  {%
+    \setlength{\@tempdima}{1in}\addtolength{\@tempdima}{\topmargin}%
+    \addtolength{\@tempdima}{\headheight}%
+    \addtolength{\@tempdima}{\headsep}%
+    \addtolength{\@tempdima}{\textheight}%
+    \addtolength{\@tempdima}{\footskip}%
+    \if@firstfoot
+      \addtolengthplength[-1]{\@tempdima}{firstfootvpos}%
+    \else
+      \addtolength{\@tempdima}{-\paperheight}%
+    \fi
+    \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}}
+%   \changes{v2.96}{2006/07/31}{Benutzung von \cs{backaddr@format}}
+%   \changes{v3.03}{2009/03/04}{Priorität kann Versandart ersetzen}
+%   \changes{v3.03}{2009/03/04}{Neue Anschriftmodi \texttt{PP},
+%     \texttt{backgroundimage}, \texttt{addresseeimage}}
+%   \changes{v3.03b}{2009/06/30}{Schreibfehler bei »addressee« korrigiert}
+%   \changes{v3.06a}{2010/07/29}{Absatzparameter werden passend eingestellt}
+% Dasselbe gilt auch für das Adressfeld für Fensterumschläge. Die
+% Rücksendeadresse und die Briefart werden dabei mit eigenen
+% Formatieranweisungen gesetzt.
+%    \begin{macrocode}
+\newcommand*{\@addrfield}{%
+  \ifcase \@afieldmode\relax
+    \typeout{Address: No}%
+  \or
+    \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
+      \ifcase \ltr@priority
+        \ifkomavarempty{specialmail}{}{%
+          \edef\@tempa{\@tempa\@tempb specialmail}\def\@tempb{,\space}%
+        }%
+      \or
+        \edef\@tempa{\@tempa\@tempb B-Economy}\def\@tempb{,\space}%
+      \or
+        \edef\@tempa{\@tempa\@tempb A-Priority}\def\@tempb{,\space}%
+      \fi
+      \typeout{Address (\@tempa\@tempb addressee)}%
+    \endgroup%
+    \move@topt\vskip\useplength{toaddrvpos}%
+    \vb@t@z{{\setparsizes{\z@}{\z@}{\z@ plus 1fil}\par@updaterelative
+        \rlap{\move@topl
+          \setlengthtoplength{\@tempskipa}{toaddrhpos}%
+          \ifdim \@tempskipa<\z@
+            \addtolength{\@tempskipa}{\paperwidth}%
+            \addtolengthplength[-]{\@tempskipa}{toaddrwidth}%
+          \fi
+          \hskip\@tempskipa
+          \@savevbox{\useplength{toaddrheight}}{\hsize\useplength{toaddrwidth}%
+            \@savevbox[\vss]{\useplength{backaddrheight}}{%
+              \hsize\useplength{toaddrwidth}%
+              \if@baddr
+                \ifkomavarempty{backaddress}{}{{%
+                    \noindent%
+                    \def\\{\usekomavar{backaddressseparator}\@ogobble}%
+                    \backaddr@format{\scriptsize\usekomafont{backaddress}%
+                      \usekomavar{backaddress}}}}%
+              \fi
+            }{backaddress}{backaddrheight}{\setkomavar}%
+            \ifcase \ltr@priority
+            \or
+              \setkomavar{specialmail}{%
+                {\usekomafont{priority}{%
+                    {\usekomafont{prioritykey}{B}}%
+                    -ECONOMY}}%
+              }%
+            \or
+              \setkomavar{specialmail}{%
+                {\usekomafont{priority}{%
+                    {\usekomafont{prioritykey}{A}}%
+                    -PRIORITY}}%
+              }%
+            \fi
+            \ifkomavarempty{specialmail}{}{%
+              \vbox{\hsize\useplength{toaddrwidth}%
+                \noindent\hspace*{\useplength{specialmailindent}}%
+                \specialmail@format{%
+                  \usekomafont{specialmail}\usekomavar{specialmail}}%
+                \hspace*{\useplength{specialmailrightindent}}}%
+            }%
+            \vfil%
+            \noindent\hskip\useplength{toaddrindent}%
+            \setlength{\@tempdima}{\useplength{toaddrwidth}}%
+            \addtolengthplength[-2]{\@tempdima}{toaddrindent}%
+            \vbox{\hsize\@tempdima\raggedright
+              \usekomafont{addressee}{%
+                \usekomafont{toname}{\usekomavar{toname}\\}%
+                \usekomafont{toaddress}{\usekomavar{toaddress}}}}%
+            \vfil\null\vskip-\baselineskip}%
+          {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
+    \begingroup%
+%    \end{macrocode}
+% In den Modi \texttt{PP}, \texttt{backgroundimage} oder \texttt{addresseeimage}
+% gibt es weder Rücksendeadresse noch Versandart aber ebenfalls eine Priorität.
+%    \begin{macrocode}
+      \if@baddr
+        \let\@tempa\@empty\let\@tempb\@empty
+        \ifcase \@afieldmode\relax\or\or
+          \def\@tempa{PP-mode}\def\@tempb{,\space}%
+        \or
+          \def\@tempa{backgroundimage-mode}\def\@tempb{,\space}%
+        \or
+          \def\@tempa{image-mode}\def\@tempb{,\space}%
+        \fi
+        \ifkomavarempty{backaddress}{}{%
+          \edef\@tempa{\@tempa\@tempb backaddress ignored}\def\@tempb{,\space}%
+        }%
+      \else
+        \let\@tempa\@empty\let\@tempb\@empty
+      \fi
+      \ifcase \ltr@priority
+        \ifkomavarempty{specialmail}{}{%
+          \edef\@tempa{\@tempa\@tempb specialmail ignored}\def\@tempb{,\space}%
+        }%
+      \or
+        \edef\@tempa{\@tempa\@tempb B-Economy}\def\@tempb{,\space}%
+      \or
+        \edef\@tempa{\@tempa\@tempb A-Priority}\def\@tempb{,\space}%
+      \fi
+      \typeout{Address (\@tempa\@tempb addressee)}%
+    \endgroup%
+    \move@topt\vskip\useplength{toaddrvpos}%
+    \vb@t@z{{%
+        \setparsizes{\z@}{\z@}{\z@ plus 1fil}\par@updaterelative
+        \ifdim \useplength{toaddrindent}=\z@
+          \@setplength{toaddrindent}{8mm}%
+        \fi
+        \ifdim \useplength{PPheadheight}=\z@
+          \@setplength{PPheadheight}{20.74pt}%
+        \fi
+        \ifdim \useplength{PPheadwidth}=\z@
+          \@setplength{PPheadwidth}{42mm}%
+        \fi
+        \ifdim \useplength{PPdatamatrixvskip}=\z@
+          \@setplength{PPdatamatrixvskip}{9mm}%
+        \fi
+        \rlap{\move@topl
+          \setlengthtoplength{\@tempskipa}{toaddrhpos}%
+          \ifdim \@tempskipa<\z@
+            \addtolength{\@tempskipa}{\paperwidth}%
+            \addtolengthplength[-]{\@tempskipa}{toaddrwidth}%
+          \fi
+          \hskip\@tempskipa
+          \@savevbox{\useplength{toaddrheight}}{\hsize\useplength{toaddrwidth}%
+            \ifnum\@afieldmode=\tw@
+%    \end{macrocode}
+% Modus \texttt{PP}.
+%    \begin{macrocode}
+              \vskip 2pt\relax
+              \hskip \useplength{toaddrindent}\relax
+              \fbox{%
+                \vbox to \dimexpr \useplength{PPheadheight}-2\fboxsep\relax{%
+                  \setlength{\parindent}{0pt}%
+                  \hsize \dimexpr \useplength{PPheadwidth}-2\fboxsep\relax
+                  \setbox\@tempboxa\hbox{%
+                    {\fontsize{20.74pt}{20.74pt}\selectfont
+                      \usekomafont{PPlogo}{P.P.}}\hskip 2mm%
+                  }%
+                  \dp\@tempboxa\z@
+                  \setlength{\@tempdima}{\hsize}%
+                  \addtolength{\@tempdima}{-\wd\@tempboxa}%
+                  \hbox{\box\@tempboxa
+                    \vbox to \dimexpr
+                    \useplength{PPheadheight}-2\fboxsep\relax{%
+                      \vss\hsize\@tempdima
+                      \raggedright
+                      \fontsize{8pt}{9pt}\selectfont\usekomafont{PPdata}%
+                      \usekomavar*{fromzipcode}\usekomavar{zipcodeseparator}%
+                      \usekomavar{fromzipcode}\unskip\strut\\
+                      \usekomavar{place}\unskip\strut
+                      \hfill
+                    }%
+                  }%
+                  \vss
+                }%
+              }%
+              \hskip 1mm
+              \mbox{%
+                \vbox to \useplength{PPheadheight}{%
+                  \addtolengthplength[-]{\hsize}{PPheadwidth}%
+                  \addtolength{\hsize}{-1mm}%
+                  \addtolengthplength[-2]{\hsize}{toaddrindent}%
+                  \setlength{\parindent}{0pt}%
+                  \fontsize{8pt}{9pt}\selectfont\usekomafont{PPdata}%
+                  \hfill\usekomavar{PPcode}
+                  \vss
+                  \ifcase \ltr@priority
+                  \or
+                    \usekomafont{priority}{%
+                      {\usekomafont{prioritykey}{B}}%
+                      -ECONOMY\hss\vskip-\dp\strutbox
+                    }%
+                  \or
+                    \usekomafont{priority}{%
+                      {\usekomafont{prioritykey}{A}}%
+                      -PRIORITY\hss\vskip-\dp\strutbox
+                    }%
+                  \fi
+                  \vss
+                }%
+              }%
+              \vskip 1mm
+              \vskip-\ht\strutbox
+              \noindent\hskip\useplength{toaddrindent}%
+              \hrulefill%
+              \hskip\useplength{toaddrindent}%
+              \vbox to\z@{\hsize\z@
+                \vskip \useplength{PPdatamatrixvskip}\relax
+                \llap{\usekomavar{PPdatamatrix}\hskip\useplength{toaddrindent}}%
+                \vss
+              }%
+            \else
+%    \end{macrocode}
+% Modus \texttt{backgroundimage} oder \texttt{image}.
+%    \begin{macrocode}
+              \vskip 1mm
+              \noindent\expandafter\hskip\useplength{toaddrindent}%
+              \vbox to \useplength{PPheadheight}{%
+                \addtolengthplength[-2]{\hsize}{toaddrindent}%
+                \setlength{\parindent}{0pt}%
+                \usekomavar{addresseeimage}%
+                \vss
+              }%
+              \vskip 1mm
+              \vskip\dp\strutbox
+            \fi
+            \ifnum \@afieldmode=4 \else
+              \vfil%
+              \noindent\hskip\useplength{toaddrindent}%
+              \setlength{\@tempdima}{\useplength{toaddrwidth}}%
+              \addtolengthplength[-2]{\@tempdima}{toaddrindent}%
+              \vbox{\hsize\@tempdima
+                \ifkomavarempty{PPdatamatrix}{}{%
+                  \addtolength{\hsize}{-2mm}%
+                  \settowidth\@tempdima{\usekomavar{PPdatamatrix}}%
+                  \addtolength{\hsize}{-\@tempdima}%
+                }%
+                \raggedright
+                \usekomafont{addressee}{%
+                  \usekomafont{toname}{\usekomavar{toname}\\}%
+                  \usekomafont{toaddress}{\usekomavar{toaddress}}}}%
+            \fi
+            \vss\null}%
+          {address field}{toaddrheight}%
+          {\string\begin{letter}}%
+        }}}%
+    \vskip-\useplength{toaddrvpos}\move@frompt
+  \fi
+}
+%    \end{macrocode}
+% \begin{macro}{\specialmail@format}
+%   \changes{v2.97c}{2007/07/06}{neu (intern)}
+%   Die Anweisung, die für das Aussehen der Versandart zuständig ist.
+%    \begin{macrocode}
+\newcommand*{\specialmail@format}[1]{}
+\let\specialmail@format\underline
+%    \end{macrocode}
+% \end{macro}
+%
+% \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%
+%    \end{macrocode}
+%   \changes{v2.97e}{2007/11/13}{Der Absender kann nun ebenfalls in der
+%     Absenderergänzung stehen}
+%   \changes{v2.98b}{2008/01/30}{Absenderergänzung immer setzen, wenn
+%     verwendet}
+% Je nach Absenderanordnung muss hier nun ebenfalls etwas getan werden.
+% Der Fall 0, also linksbündiger Absender im Kopf spielt hier keine Rolle.
+%    \begin{macrocode}
+  \ifcase\@alignfrom
+%    \end{macrocode}
+% Im Fall 1, also zentrierter Absender im Kopf wird jedoch das Logo hier
+% platziert, also darf die Absenderergänzung nicht leer sein.
+%    \begin{macrocode}
+  \or
+    \if@logo
+      \ifkomavarempty{location}{\setkomavar{location}{\null}}{}%
+    \fi
+%    \end{macrocode}
+% Im Fall 2, also rechtsbündiger Absender im Kopf, ist auch nichts zu tun.
+%    \begin{macrocode}
+  \or
+%    \end{macrocode}
+% Im Fall 3, also linksbündiger Absender in der Absenderergänzung wird hier
+% eine Menge ausgegeben, also darf die Absenderergänzung nicht leer sein.
+%    \begin{macrocode}
+  \or
+    \ifkomavarempty{location}{\setkomavar{location}{\null}}{}%
+%    \end{macrocode}
+% Im Fall 3, also linksbündiger Absender in der Absenderergänzung wird hier
+% eine Menge ausgegeben, also darf die Absenderergänzung nicht leer sein.
+%    \begin{macrocode}
+  \or
+    \ifkomavarempty{location}{\setkomavar{location}{\null}}{}%
+%    \end{macrocode}
+% Alle anderen Fälle sind wie hier ebenfalls ohne Bedeutung.
+%    \begin{macrocode}
+  \fi
+  \ifkomavarempty{location}{%
+    \typeout{Location field: empty}%
+    }{%
+    \typeout{Location field: yes}%
+    \ifdim \useplength{lochpos}=\z@%
+      \@setplength{lochpos}{\useplength{toaddrhpos}}%
+    \fi
+    \ifdim \useplength{locvpos}=\z@%
+      \@setplength{locvpos}{\useplength{toaddrvpos}}%
+    \fi
+    \ifdim \useplength{locheight}=\z@%
+      \@setplength{locheight}{\useplength{toaddrheight}}%
+    \fi
+    \move@topt\vskip\useplength{locvpos}%
+    \vb@t@z{\noindent\makebox[0pt][l]{%
+        \move@topl
+        \setlengthtoplength[-]{\@tempskipa}{lochpos}%
+        \ifdim \@tempskipa<\z@
+          \addtolength{\@tempskipa}{\paperwidth}%
+        \else
+          \addtolengthplength{\@tempskipa}{locwidth}%
+        \fi
+        \hskip\@tempskipa
+        \makebox[0pt][r]{%
+          \@savevbox{\useplength{locheight}}{%
+            \noindent\hsize\useplength{locwidth}%
+%    \end{macrocode}
+% In einigen Fällen der Absenderanordnung muss hier nun eine ganze Menge getan
+% werden. In anderen ist hingegen nur wenig zu tun.
+% Im Fall 0, also linksbündiger Absender im Kopf wird nur die
+% Absenderergänzung ausgegeben (das erfolgt nach der Fallunterscheidung).
+%    \begin{macrocode}
+            \ifcase\@alignfrom
+%    \end{macrocode}
+% Im Fall 1, also zentrierter Absender im Kopf wird jedoch das Logo hier
+% platziert, die Absenderergänzung wird ggf. danach ausgegeben (das erfolgt
+% nach der Fallunterscheidung).
+% \changes{v2.98a}{2008/01/10}{bei zentriertem Absender wird die
+%   Absenderergänzung ggf. unter dem Logo ausgegeben}
+%    \begin{macrocode}
+            \or
+              \if@logo
+                \ifkomavarempty{fromlogo}{\null}{%
+                  {\raggedleft\noindent\usekomavar{fromlogo}\\
+                    \vskip\parskip}\noindent}%
+              \fi
+%    \end{macrocode}
+% Im Fall 2, also rechtsbündiger Absender im Kopf, wird auch nur die
+% Absenderergänzung ausgegeben (das erfolgt nach der Fallunterscheidung).
+%    \begin{macrocode}
+            \or
+%    \end{macrocode}
+% Im Fall 3, also linksbündiger Absender in der Absenderergänzung wird hier
+% sozusagen der linksbündige Kopf nachgebaut. Das Logo steht dabei
+% ggf. rechtsbündig oben.
+%    \begin{macrocode}
+            \or
+              \if@logo
+                \ifkomavarempty{fromlogo}{}{%
+                  \raggedleft\usekomavar{fromlogo}\par}%
+              \fi
+              \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 werden dabei die
+% Pseudo-Längen \texttt{fromrulewidth} und \texttt{fromrulethickness}
+% verwendet. Ist \texttt{fromrulewidth} 0, so wird sie automatisch
+% bestimmt. Bei der automatischen Längenbestimmung wird einfach eine Linie
+% über die Gesamtbreite der Absenderergänzung gesetzt.
+%    \begin{macrocode}
+                {%
+                  \ifnum\@rulefrom=1\\[-.5\baselineskip]%
+                    \usekomafont{fromrule}{%
+                      \setlength{\@tempdima}{\useplength{fromrulewidth}}%
+                      \ifdim\@tempdima=\z@
+                        \setlength{\@tempdima}{\useplength{locwidth}}%
+                      \fi
+                      \expandafter\rule\expandafter{\the\@tempdima}{%
+                        \useplength{fromrulethickness}}%
+                    }%
+                  \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.%
+%   \changes{v3.12}{2013/05/29}{Variable \texttt{frommobilephone} wird
+%     berücksichtigt}%
+%    \begin{macrocode}
+              {\usekomafont{fromaddress}\strut\ignorespaces
+                \usekomavar{fromaddress}%
+                \if@phone\\\usekomavar*{fromphone}\usekomavar{fromphone}\fi%
+                \if@mobilephone
+                  \\\usekomavar*{frommobilephone}\usekomavar{frommobilephone}%
+                \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.
+%    \begin{macrocode}
+                \ifnum\@rulefrom=2\\[-.5\baselineskip]%
+                  \usekomafont{fromrule}{%
+                    \setlength{\@tempdima}{\useplength{fromrulewidth}}%
+                    \ifdim\@tempdima=\z@
+                      \setlength{\@tempdima}{\useplength{locwidth}}%
+                    \fi
+                    \expandafter\rule\expandafter{\the\@tempdima}{%
+                      \useplength{fromrulethickness}}}%
+                \fi
+                \\
+              }%
+%    \end{macrocode}
+% Damit ist die Definition des linksbündigen Absenders in der
+% Absenderergänzung abgeschlossen.
+% Im Fall 4, also rechtsbündiger Absender in der Absenderergänzung wird hier
+% exakt wie für Fall 3 verfahren. Nur ist jetzt alles rechtsbündig.%
+%   \changes{v3.12}{2013/05/29}{Variable \texttt{frommobilephone} wird
+%     berücksichtigt}%
+%    \begin{macrocode}
+            \or
+              \raggedleft
+              \if@logo
+                \ifkomavarempty{fromlogo}{}{\usekomavar{fromlogo}\par}%
+              \fi
+              {\usekomafont{fromname}\strut\ignorespaces
+                \usekomavar{fromname}%
+                {%
+                  \ifnum\@rulefrom=1\\[-.5\baselineskip]%
+                    \usekomafont{fromrule}{%
+                      \setlength{\@tempdima}{\useplength{fromrulewidth}}%
+                      \ifdim\@tempdima=\z@
+                        \setlength{\@tempdima}{\useplength{locwidth}}%
+                      \fi
+                      \expandafter\rule\expandafter{\the\@tempdima}{%
+                        \useplength{fromrulethickness}}%
+                    }%
+                  \fi
+                }%
+                \\
+              }%
+              {\usekomafont{fromaddress}\strut\ignorespaces
+                \usekomavar{fromaddress}%
+                \if@phone\\\usekomavar*{fromphone}\usekomavar{fromphone}\fi%
+                \if@mobilephone%
+                  \\\usekomavar*{frommobilephone}\usekomavar{frommobilephone}%
+                \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]%
+                  \usekomafont{fromrule}{%
+                    \setlength{\@tempdima}{\useplength{fromrulewidth}}%
+                    \ifdim\@tempdima=\z@
+                      \setlength{\@tempdima}{\useplength{locwidth}}%
+                    \fi
+                    \expandafter\rule\expandafter{\the\@tempdima}{%
+                      \useplength{fromrulethickness}}}%
+                \fi
+                \\
+              }%
+%    \end{macrocode}
+% In allen anderen Fällen wird ebenfalls die Absenderergänzung gesetzt.
+%    \begin{macrocode}
+            \fi
+            \usekomavar{location}%
+%    \end{macrocode}
+% Zum Schluss wird noch verhindert, dass wegen nicht vollen vertikalen Boxen
+% gemotzt wird.
+%    \begin{macrocode}
+            \vskip \z@ \@plus .00001fil}%
+          {location field}{locheight}{\setkomavar}%
+        }}%
+    }%
+    \vskip-\useplength{locvpos}\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}
+%   \changes{v2.97c}{2007/05/14}{Neue Fontelemente}
+% Je nachdem, welche Felder definiert sind, muss eine geschäftsmäßiger
+% Standardbrief oder ein eher persönliches Aussehen gewählt werden.
+% \begin{macro}{\do@set@reffield}
+%   \changes{v3.09}{2011/03/06}{Neu (intern)}
+% Das ist ein \cs{do} für die Felder und bekommt innerhalb von
+% \cs{@datefield} unterschiedliche Bedeutungen. An dieser Stelle wird es daher
+% nur reserviert.
+%    \begin{macrocode}
+\newcommand*{\do@set@reffield}{}
+%    \end{macrocode}
+% \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\usekomafont{refvalue}\usekomavar{#1}}%
+    \setbox0\hbox{\strut\usekomafont{refname}\usekomavar*{#1}}%
+    \ifdim \@tempdima<\wd0\setlength{\@tempdima}{\wd0}\fi
+    \if@tempswa\enskip\hfill\fi
+    \parbox[t]{\@tempdima}{\noindent\raggedright
+        \strut\box0\\\usekomafont{refvalue}\strut\usekomavar{#1}}%
+    \@tempswatrue
+  }%
+}
+%    \end{macrocode}
+% \end{macro}
+% \begin{macro}{\@test@reffield}
+%   \changes{v3.09}{2011/03/06}{Neu (intern)}
+% Dieses Makro testet, ob ein Feld tatsächlich zu setzen ist und setzt
+% ggf. \cs{@tempswa}.
+%    \begin{macrocode}
+\newcommand*{\@test@reffield}[1]{%
+  \ifkomavarempty{#1}{}{%
+%<trace>    \if@tempswa\l@addto@macro\@tempa{, }\fi
+%<trace>    \l@addto@macro\@tempa{#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}
+%   \changes{v3.09}{2011/03/06}{Verwendung von \cs{do@set@reffield} an Stelle
+%     von \cs{@set@reffield}}
+% 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}{\do@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}
+%   \changes{v2.97c}{2007/05/14}{Neue Font-Elemente}
+%   \changes{v3.09}{2011/03/06}{\cs{do@set@reffield} muss initialisiert
+%     werden}
+%    \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 kontrollieren wir, ob überhaupt etwas auszugeben ist:
+%    \begin{macrocode}
+    \@tempswafalse
+    \let\do@set@reffield\@test@reffield
+%<trace>    \let\@tempa\@empty
+    \@set@reffields
+    \ifcase \@datepos\else\@test@reffield{date}\fi
+    \if@tempswa
+%<trace>      \typeout{Reference line(s) with: \@tempa}%
+      \@tempswafalse
+%    \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
+          \ifnum \@datepos=2
+            \@set@reffields
+            \if@tempswa
+              \@tempswafalse
+              \@set@reffield{date}%
+            \fi
+          \fi
+          \let\do@set@reffield\@set@reffield
+          \@set@reffields%
+          \if@tempswa
+            \ifnum \@datepos=1 \@set@reffield{date}\fi%
+%    \end{macrocode}
+% Seit Version~2.97c wird hier auch noch getestet, ob die Geschäftszeile
+% möglicherweise mit zu großer Schrift gesetzt wird.
+%    \begin{macrocode}
+            \setbox0\hbox{\usekomafont{refname}\strutbox}%
+            \ifdim\ht0>\ht\strutbox
+              \ClassWarningNoLine{scrlttr}{%
+                Font element `refname' should not be larger than
+                \string\normalsize!}%
+            \fi
+            \setbox0\hbox{\usekomafont{refvalue}\strutbox}%
+            \ifdim\ht0>\ht\strutbox
+              \ClassWarningNoLine{scrlttr}{%
+                Font element `refvalue' should not be larger than
+                \string\normalsize!}%
+            \fi
+          \else
+%    \end{macrocode}
+% Hier landen wir schließlich, wenn gar keine Felder ausgegeben wurden, also
+% nur Ort und Datum zu setzen sind.
+%   \changes{v3.12}{2013/07/31}{neues Element \texttt{placeanddate} wird
+%     verwendet}
+%    \begin{macrocode}
+            \ifcase \@datepos\else
+              \ifnum \@datepos=1 \enskip\hfill\fi
+              {\usekomafont{placeanddate}{\ifkomavarempty{place}{}{%
+                    \usekomavar{place}\usekomavar{placeseparator}}%
+                  \usekomavar{date}}}%
+            \fi
+          \fi
+        }%
+      }%
+%<trace>    \else\typeout{No reference line.}%
+    \fi
+    \vskip\useplength{refaftervskip}%
+  }%
+}
+%    \end{macrocode}
+% \end{macro}
+% \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}
+%   \changes{v3.01}{2008/11/03}{Verwendung der neuen Pseudolängen
+%     \texttt{subjectbeforevskip} und \texttt{subjectaftervskip}}
+% 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}%
+    }{%
+      \ifx\raggedsubject\@empty
+        \ifdim\useplength{subjectvpos}=\z@
+          \if@subjafter%
+            \typeout{Subject: after opening}%
+            \let\raggedsubject\centering%
+          \else
+            \typeout{Subject: before opening}%
+            \def\raggedsubject{\noindent\@hangfrom}%
+          \fi
+        \else
+          \typeout{Subject: at absolute vertical position}%
+          \def\raggedsubject{\noindent\@hangfrom}%
+        \fi
+      \fi
+      \ifdim\useplength{subjectvpos}=\z@
+        \vskip\useplength{subjectbeforevskip}%
+        \begingroup
+      \else
+        \move@topt\vskip\useplength{subjectvpos}%
+        \expandafter\vb@t@z\expandafter{%
+      \fi
+      \usekomafont{subject}%
+      \raggedsubject{\if@subj \subject@format{\strut\ignorespaces
+          \usekomavar*{subject}}\fi}%
+      \subject@format{\strut\ignorespaces\usekomavar{subject}}\par
+      \ifdim\useplength{subjectvpos}=\z@
+        \endgroup
+        \vskip\useplength{subjectaftervskip}%
+      \else
+        }%
+        \vskip-\useplength{subjectvpos}\move@frompt
+      \fi
+    }%
+  }%
+}
+%    \end{macrocode}
+% \begin{macro}{\ltr@len@subjectvpos}
+%   \changes{v3.01}{2008/11/03}{Neue Pseudolänge \texttt{subjectvpos}}
+%   Manchmal ist es günstiger, wenn man den Betreff absolut positionieren
+%   kann. Das geschieht über diese Pseudolänge, wenn sie \emph{nicht} 0 ist.
+%    \begin{macrocode}
+\@newplength{subjectvpos}
+\@setplength{subjectvpos}{0pt}
+%    \end{macrocode}
+% \end{macro}
+% \begin{macro}{\ltr@len@subjectaftervskip}
+%   \changes{v3.01}{2008/11/03}{Neue Pseudolänge \texttt{subjectaftervskip}}
+%   Abstand nach dem Betreff. Dieser Abstand wird aus Gründen der
+%   Kompatibilität zu früheren Versionen mit 2\cs{baselineskip}
+%   voreingestellt.
+%    \begin{macrocode}
+\@newplength{subjectaftervskip}
+\@setplength{subjectaftervskip}{2\baselineskip}
+%    \end{macrocode}
+% \end{macro}
+% \begin{macro}{\ltr@len@subjectbeforevskip}
+%   \changes{v3.01}{2008/11/03}{Neue Pseudolänge \texttt{subjectbeforevskip}}
+%   Abstand zusätzlich vor dem Betreff. Dieser Abstand wird aus Gründen der
+%   Kompatibilität zu früheren Versionen mit \cs{baselineskip}
+%   voreingestellt. Es sei darauf hingewiesen, dass hier bereits ein Abstand
+%   beispielsweise vom Titel existieren kann!
+%    \begin{macrocode}
+\@newplength{subjectbeforevskip}
+\@setplength{subjectbeforevskip}{0pt}
+%    \end{macrocode}
+% \end{macro}
+% \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}
+%   \changes{v3.08}{2010/10/28}{der Kopf der Folgeseiten wird über eine
+%     Variable realisiert}
+% \begin{macro}{\@nexthead}
+%   \changes{v3.08}{2010/10/28}{der Kopf der Folgeseiten wird über eine
+%     Variable realisiert}
+% \begin{KOMAvar}{nexthead}
+%   \changes{v3.08}{2010/10/28}{Neu}
+% Die Voreinstellung ist ebenfalls von Optionen abhängig.
+%    \begin{macrocode}
+\newcommand*{\@nexthead}{%
+  \ClassWarning{scrlttr2}{%
+    Deprecated usage of \string\@nexthead.\MessageBreak
+    \string\usekomavar{nexthead} should be used\MessageBreak
+    instead of \string\@nexthead
+  }%
+  \usekomavar{nexthead}%
+}
+\newkomavar{nexthead}
+\setkomavar{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{KOMAvar}
+% \end{macro}
+% Die Voreinstellung ist wiederum mit einer einfachen Benutzeranweisung
+% änderbar.
+%    \begin{macrocode}
+\newcommand{\nexthead}{%
+  \ClassWarning{scrlttr2}{%
+    Deprecated usage of \string\nexthead.\MessageBreak
+    You should use \string\setkomavar{nexthead}\MessageBreak
+    instead of \string\nexthead
+  }
+  \setkomavar{nexthead}%
+}
+%    \end{macrocode}
+% \end{macro}
+%
+%
+% \subsubsection{Fuß des Briefpapiers}
+%
+% \begin{macro}{\nextfoot}
+%   \changes{v3.08}{2010/10/28}{der Fuß der Folgeseiten wird über eine
+%     Variable realisiert}
+% \begin{macro}{\@nextfoot}
+%   \changes{v3.08}{2010/10/28}{der Fuß der Folgeseiten wird über eine
+%     Variable realisiert}
+% \begin{KOMAvar}{nextfoot}
+%   \changes{v3.08}{2010/10/28}{Neu}
+% Je nach Optioneneinstellung kann sich die Seitenmarke in der Voreinstellung
+% auch im Fuß befinden.
+%    \begin{macrocode}
+\newcommand*{\@nextfoot}{%
+  \ClassWarning{scrlttr2}{%
+    Deprecated usage of \string\@nextfoot.\MessageBreak
+    \string\usekomavar{nextfoot} should be used\MessageBreak
+    instead of \string\@nextfoot
+  }%
+  \usekomavar{nextfoot}%
+}
+\newkomavar{nextfoot}
+\setkomavar{nextfoot}{%
+  \ifnum\@pageat>2
+    \parbox[c]{\textwidth}{%
+      \ifcase\@pageat\or\or\or\raggedright\or\centering\or\raggedleft\fi
+      \strut\pagemark%
+      }%
+  \fi
+}
+%    \end{macrocode}
+% \end{KOMAvar}
+% \end{macro}
+% Auch diese Einstellung ist per Benutzeranweisung leicht zu ändern.
+%    \begin{macrocode}
+\newcommand{\nextfoot}{%
+  \ClassWarning{scrlttr2}{%
+    Deprecated usage of \string\nextfoot.\MessageBreak
+    You should use \string\setkomavar{nextfoot}\MessageBreak
+    instead of \string\nextfoot
+  }
+  \setkomavar{nextfoot}%
+}
+%    \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{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%
+}
+%    \end{macrocode}
+% \begin{macro}{\stopletter}
+% Damit man Material am Ende des Briefes einschleusen kann.
+% \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}
+\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}
+% \begin{macro}{\flushbottom}
+%   \changes{v2.97c}{2007/05/17}{neue Erweiterung}
+% Das Verhalten muss auf der letzten Briefseite wieder \cs{raggedbottom}
+% ähneln. Das wird über \cs{stopletter} erreicht.
+%    \begin{macrocode}
+\g@addto@macro\flushbottom{%
+  \g@addto@macro\stopletter{\vskip \z@\@plus.0001fil\relax}%
+}
+%    \end{macrocode}
+% \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
+  \ifdim\useplength{subjectvpos}=\z@\else\@subjfield\fi
+  \@datefield
+  \@maketitle
+  \ifdim\useplength{subjectvpos}=\z@\if@subjafter\else\@subjfield\fi\fi
+  {\setparsizes{\z@}{\z@}{\z@ plus 1fil}\par@updaterelative#1\par}%
+  {\setlength{\@tempdima}{\baselineskip}%
+    \addtolength{\@tempdima}{-\parskip}%
+    \ifdim \@tempdima>\z@\vskip\@tempdima\fi}%
+  \ifdim\useplength{subjectvpos}=\z@\if@subjafter\@subjfield\fi\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}
+% \begin{KOMAvar}{fromzipcode}
+%   \changes{v3.03}{2009/03/04}{Neu}
+% \begin{KOMAvar}{PPcode}
+%   \changes{v3.03}{2009/03/04}{Neu}
+% \begin{KOMAvar}{PPdatamatrix}
+%   \changes{v3.03}{2009/03/04}{Neu}
+% \begin{KOMAvar}{addresseeimage}
+%   \changes{v3.03}{2009/03/04}{Neu}
+%   \changes{v3.03b}{2009/06/30}{Schreibfehler korrigiert}
+% 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}
+\newkomavar{fromzipcode}
+\newkomavar{PPcode}
+\newkomavar{PPdatamatrix}
+\newkomavar{addresseeimage}
+%    \end{macrocode}
+% \end{KOMAvar}
+% \end{KOMAvar}
+% \end{KOMAvar}
+% \end{KOMAvar}
+% \end{KOMAvar}
+% \end{KOMAvar}
+% \end{KOMAvar}
+% \end{KOMAvar}
+% \end{KOMAvar}
+% \end{KOMAvar}
+% \end{KOMAvar}
+%
+% \begin{option}{symbolicnames}
+%   \changes{v3.12}{2013/05/2013}{neue Option}
+% \begin{macro}{\if@scrsymbols}
+%   \changes{v3.12}{2013/05/2013}{neu (intern)}
+% \begin{macro}{\@scrsymbolstrue}
+%   \changes{v3.12}{2013/05/2013}{neu (intern)}
+% \begin{macro}{\@scrsymbolsfalse}
+%   \changes{v3.12}{2013/05/2013}{neu (intern)}
+% Über diese Option kann eingestellt werden, dass an Stelle von
+% sprachabhängigen Bezeichnern für einige Variablen Symbole verwendet
+% werden. Daztu wird das Paket \textsf{macrosym} benötigt.
+%    \begin{macrocode}
+%</letter>
+%</body>
+%<*option&letter>
+\newif\if@scrsymbols
+\KOMA@key{symbolicnames}[true]{%
+  \KOMA@set@ifkey{symbolicnames}{@scrsymbols}{#1}%
+  \if@scrsymbols
+    \if@atdocument
+      \begingroup
+        \@tempswafalse
+        \scr@ifundefinedorrelax{Telefon}{\@tempswatrue}{%
+          \scr@ifundefinedorrelax{FAX}{\@tempswatrue}{%
+            \scr@ifundefinedorrelax{Email}{\@tempswatrue}{%
+              \scr@ifundefinedorrelax{Mobilefone}{\@tempswatrue}{%
+              }%
+            }%
+          }%
+        }%
+        \if@tempswa
+          \aftergroup\@scrsymbolsfalse
+          \ClassWarning{scrlttr2}{Option `symbolicnames'
+            ignorred.\MessageBreak
+            You've tried to set option `symbolicnames'\MessageBreak
+            after \string\begin{document}, but without\MessageBreak
+            loading package `marvosym' before.\MessageBreak
+            You should either switch on option\MessageBreak
+            `symbolicnames' before \string\begin{document}\MessageBreak
+            or load package `marvosym' in the document\MessageBreak
+            preamble to avoid this warning%
+          }%
+        \fi
+      \endgroup
+    \else
+      \ifstr{\@currname.\@currext}{scrlttr2.cls}{%
+        \expandafter\AtEndOfClass
+      }{%
+        \expandafter\@firstofone
+      }%
+      {\RequirePackage{marvosym}}%
+    \fi
+  \fi
+}
+%</option&letter>
+%<*body>
+%<*letter>
+%    \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{option}
+%
+% \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}
+%   \changes{v3.12}{2013/05/29}{Option \texttt{symbolicnames} wird beachtet}
+% \begin{KOMAvar}{faxseparator}
+%   \changes{v2.8q}{2002/03/25}{Neu}
+%   \changes{v3.12}{2013/05/29}{Option \texttt{symbolicnames} wird beachtet}
+% \begin{KOMAvar}{emailseparator}
+%   \changes{v2.8q}{2002/03/25}{Neu}
+%   \changes{v3.12}{2013/05/29}{Option \texttt{symbolicnames} wird beachtet}
+% \begin{KOMAvar}{urlseparator}
+%   \changes{v2.8q}{2002/03/25}{Neu}
+%   \changes{v3.12}{2013/05/29}{Option \texttt{symbolicnames} wird beachtet}
+% \begin{KOMAvar}{mobilephoneseparator}
+%   \changes{v3.12}{2013/05/29}{Neu}
+% \begin{KOMAvar}{zipcodeseparator}
+%   \changes{v3.03}{2009/03/04}{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}{,\nobreakspace}
+\newkomavar[\subjectname]{subjectseparator}
+\setkomavar{subjectseparator}{: }
+\newkomavar[\ccname]{ccseparator}
+\setkomavar{ccseparator}{: }
+\newkomavar[\enclname]{enclseparator}
+\setkomavar{enclseparator}{: }
+\newkomavar{backaddressseparator}
+\setkomavar{backaddressseparator}{,\nobreakspace}
+\newkomavar[\if@scrsymbols\Telefon\else\phonename\fi]{phoneseparator}
+\setkomavar{phoneseparator}{\if@scrsymbols\else:\fi\nobreakspace}
+\newkomavar[%
+  \if@scrsymbols\Mobilefone\else\mobilephonename\fi
+]{mobilephoneseparator}
+\setkomavar{mobilephoneseparator}{\usekomavar{phoneseparator}}
+\newkomavar[\if@scrsymbols\FAX\else\faxname\fi]{faxseparator}
+\setkomavar{faxseparator}{\if@scrsymbols\else:\fi\nobreakspace}
+\newkomavar[\if@scrsymbols\Email\else\emailname\fi]{emailseparator}
+\setkomavar{emailseparator}{\if@scrsymbols\else:\fi\nobreakspace}
+\newkomavar[\if@scrsymbols\else\wwwname\fi]{urlseparator}
+\setkomavar{urlseparator}{\if@scrsymbols\else:\nobreakspace\fi}
+\newkomavar{zipcodeseparator}
+\setkomavar{zipcodeseparator}{\,--\,}
+%    \end{macrocode}
+% \end{KOMAvar}
+% \end{KOMAvar}
+% \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}{frommobilephone}
+%   \changes{v3.12}{2013/05/29}{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*{mobilephoneseparator}%
+  \usekomavar{mobilephoneseparator}]{frommobilephone}
+\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}
+% \end{KOMAvar}
+%
+% \iffalse
+%</letter>
+% \fi
+%
+% \iffalse
+%</body>
+% \fi
+%
+% \Finale
+%
+\endinput
+%
+% end of file `scrkernel-notepaper.dtx'
+%%% Local Variables:
+%%% mode: doctex
+%%% TeX-master: t
+%%% End:
-- 
cgit v1.2.3

