%
% \iffalse
%
% scrclass.dtx Copyright (C) 1995 Markus Kohm
%
% This file is part of the LaTeX2e KOMA-Script-Bundle
%
% It should be distributed UNCHANGED and together with all other
% files in the KOMA-Script-Bundle. The file readme.txt contains a list
% of all these files.
%
% A modified version of this file may be distributed, but it should
% be distributed with a DIFFERENT name. Changed files must be
% distributed TOGETHER WITH A COMPLETE AND UNCHANGED distribution
% of these files.
%
% See also readme.txt for further information.
%
% This bundle is written specialy for use with the German language. So the
% main documentation is German. Perhaps in the future an English translation
% will be available. If you want to write this doc, you may contact me, see
% readme.txt.
%
%
% Das ganze jetzt noch einmal kurz auf Deutsch:
%
% Diese Datei ist Teil des LaTeX2e KOMA-Script Pakets.
%
% Die Datei sollte nur UNVER"ANDERT und zusammen mit allen anderen
% Dateien aus dem Paket weitergegeben werden. Die Datei liesmich.txt
% enth"alt eine Liste all dieser Dateien.
%
% Eine ver"anderte Version dieser Datei darf weitergegeben werden,
% aber nur, wenn sie einen ANDEREN Namen bekommt. Ver"anderte Dateien
% d"urfen nur ZUSAMMEN MIT EINER KOMPLETTEN UND UNVER"ANDERTEN Version
% dieser Dateien weitergegeben werden.
%
% Unter keinen Umst"anden ist erlaubt, durch Weitergabe oder zur Verf"ugung
% stellen einer oder mehrerer Dateien aus dem KOMA-Script Paket einen
% wie auch immer gearteten Gewinn zu erzielen.
%
% Weitere Informationen sind in liesmich.txt zu finden.
%
% Dieses Paket ist f"ur den deutschen Sprachraum konzipiert. Daher ist
% auch die Haupt-Anleitung komplett in Deutsch. Vielleicht wird es irgendwann
% auch einmal eine englische Dokumentation geben. Wer eine solche
% erstellen m"ochte, kann sich gerne an mich wenden. Siehe dazu ebenfalls
% liesmich.txt.
%
% \CharacterTable
%  {Upper-case    \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
%   Lower-case    \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
%   Digits        \0\1\2\3\4\5\6\7\8\9
%   Exclamation   \!     Double quote  \"     Hash (number) \#
%   Dollar        \$     Percent       \%     Ampersand     \&
%   Acute accent  \'     Left paren    \(     Right paren   \)
%   Asterisk      \*     Plus          \+     Comma         \,
%   Minus         \-     Point         \.     Solidus       \/
%   Colon         \:     Semicolon     \;     Less than     \<
%   Equals        \=     Greater than  \>     Question mark \?
%   Commercial at \@     Left bracket  \[     Backslash     \\
%   Right bracket \]     Circumflex    \^     Underscore    \_
%   Grave accent  \`     Left brace    \{     Vertical bar  \|
%   Right brace   \}     Tilde         \~}
%
%<*dtx>
            \ProvidesFile{scrclass.dtx}
%</dtx>
%<scrartcl|scrreprt|scrbook|typearea>\NeedsTeXFormat{LaTeX2e}[1994/12/01]
%<driver>\ProvidesFile{scrclass.drv}
%<scrartcl>\ProvidesClass{scrartcl}
%<scrreprt>\ProvidesClass{scrreprt}
%<scrbook>\ProvidesClass{scrbook}
%<typearea>\ProvidesPackage{typearea}
%<*scrartcl|scrreprt|scrbook|typearea|dtx>
              [1995/06/08 v2.2e LaTeX2e KOMA
%</scrartcl|scrreprt|scrbook|typearea|dtx>
%<driver>              [1995/06/08 v2.2e LaTeX2e KOMA
%<scrartcl|scrreprt|scrbook>               document class]
%<typearea>               package]
%
%<*driver>
              Script bundle]
\documentclass{ltxdoc}
\usepackage[a4paper,BCOR15mm,DIV12]{typearea}
\usepackage{german}
%
% Fuer den Fall von |\EnableCrossrefs|
%
\DoNotIndex{\.,\@M,\@abstrtfalse,\@abstrttrue,\@addtoreset,\@afterheading}
\DoNotIndex{\@afterindentfalse,\@arabic,\@badmath,\@beginparpenalty}
\DoNotIndex{\@car,\@cdr,\@centercr,\@cite,\@dblfloat,\@dotsep}
\DoNotIndex{\@dottedtocline,\@empty,\@endparpenalty,\@endpart}
\DoNotIndex{\@finclfalse,\@fincltrue,\@float,\@fontswitch,\@fslfalse}
\DoNotIndex{\@fsltrue,\@gobbletwo}
\DoNotIndex{\@hangfrom,\@highpenalty,\@hinclfalse,\@hincltrue,\@hslfalse}
\DoNotIndex{\@hsltrue,\@idxitem,\@ifnextchar,\@ifundefined,\@itempenalty}
\DoNotIndex{\@latex@warning,\@m,\@mainmatterfalse,\@mainmattertrue}
\DoNotIndex{\@medpenalty,\@minus,\@mkboth,\@mparswitchfalse,\@mparswitchtrue}
\DoNotIndex{\@ne,\@nil,\@nobreakfalse,\@nobreaktrue,\@noitemerr,\@nomath}
\DoNotIndex{\@openbibfalse,\@openbibtrue,\@openrightfalse,\@openrighttrue}
\DoNotIndex{\@plus,\@restonecolfalse,\@restonecoltrue}
\DoNotIndex{\@tempa,\@tempboxa,\@tempdima,\@tempswafalse,\@tempswatrue}
\DoNotIndex{\@titlepagefalse,\@titlepagetrue,\@tocrmarg,\@topnewpage}
\DoNotIndex{\@topnum,\@twocolumnfalse,\@twocolumntrue,\@twosidefalse}
\DoNotIndex{\@twosidetrue}
\DoNotIndex{\@whiledim,\@whilenum,\\,\ }
\DoNotIndex{\addcontentsline,\addpenalty,\addtocontents,\addtolength}
\DoNotIndex{\addvspace,\advance,\Alph,\alph,\arabic}
\DoNotIndex{\begin,\begingroup,\bfseries,\box,\bullet}
\DoNotIndex{\c@figure,\c@page,\c@secnumdepth,\c@table,\c@tocdepth}
\DoNotIndex{\cal,\cdot,\centering,\changes,\cleardoublepage,\clearpage}
\DoNotIndex{\cmd,\col@number,\CurrentOption,\CodelineIndex}
\DoNotIndex{\day,\dblfloatpagefraction,\dbltopfraction}
\DoNotIndex{\DeclareOldFontCommand,\DeclareOption,\def,\DisableCrossrefs}
\DoNotIndex{\divide,\DoNotIndex}
\DoNotIndex{\ifdim,\else,\fi,\empty,\em,\EnableCrossrefs,\end,\end@dblfloat}
\DoNotIndex{\end@float,\endgroup,\endlist,\endquotation,\endtitlepage}
\DoNotIndex{\everypar,\ExecuteOptions,\expandafter}
\DoNotIndex{\fboxrule,\fboxsep}
\DoNotIndex{\gdef,\global}
\DoNotIndex{\hangindent,\hbox,\hfil,\hrule,\hsize,\hskip,\hspace,\hss}
\DoNotIndex{\if@tempswa,\ifcase,\or,\fi,\fi}
\DoNotIndex{\ifnum,\ifodd,\ifx,\fi,\fi,\fi}
\DoNotIndex{\input,\InputIfFileExists,\item,\itshape}
\DoNotIndex{\kern,\leavevmode,\leftmark,\leftskip,\let,\lineskip}
\DoNotIndex{\list,\long}
\DoNotIndex{\m@ne,\m@th,\marginpar,\markboth,\markright,\mathbf,\mathcal}
\DoNotIndex{\mathit,\mathnormal,\mathrm,\mathsf,\mathtt,\MessageBreak,\month}
\DoNotIndex{\newblock,\newcommand,\newcount,\newcounter,\newdimen}
\DoNotIndex{\newenvironment,\newlength,\newpage,\nobreak,\noindent}
\DoNotIndex{\normalfont,\normallineskip,\normalsize,\null,\number}
\DoNotIndex{\numberline}
\DoNotIndex{\OldMakeindex,\OnlyDescription,\overfullrule}
\DoNotIndex{\p@,\PackageError,\PackageInfo,\PackageWarningNoLine}
\DoNotIndex{\pagenumbering,\pagestyle,\par,\paragraph,\parbox}
\DoNotIndex{\PassOptionsToPackage,\pcal,\penalty,\pmit,\PrintChanges}
\DoNotIndex{\PrintIndex,\ProcessOptions,\protect,\providecommand}
\DoNotIndex{\ProvidesClass}
\DoNotIndex{\raggedbottom,\raggedleft,\raggedright,\refstepcounter,\relax}
\DoNotIndex{\renewcommand,\RequirePackage,\reset@font}
\DoNotIndex{\rightmargin,\rightmark,\rightskip,\rmfamily,\Roman,\roman}
\DoNotIndex{\sc@temp,\scshape,\secdef,\setbox,\setcounter,\setlength}
\DoNotIndex{\settowidth,\sfcode,\sffamily,\skip,\sloppy,\slshape,\space}
\DoNotIndex{\string}
\DoNotIndex{\ta@temp,\the,\thispagestyle,\triangleright,\ttfamily,\twocolumn}
\DoNotIndex{\typeout}
\DoNotIndex{\undefined,\usecounter}
\DoNotIndex{\vfil,\vfill,\vspace}
\DoNotIndex{\wd,\xdef,\year,\z@}
%
\begin{document}
 \DocInput{scrclass.dtx}
\end{document}
%</driver>
% \fi
%
% \GetFileInfo{scrclass.dtx}
% \CheckSum{2841}
%
% \makeatletter
% \def\macro{\begingroup
%    \catcode`\\12
%    \MakePrivateLetters \m@cro@ 0}
% \def\environment{\begingroup
%    \catcode`\\12
%    \MakePrivateLetters \m@cro@ 1}
% \def\option{\begingroup
%    \catcode`\\12
%    \MakePrivateLetters \m@cro@ 2}
% \long\def\m@cro@#1#2{\endgroup \topsep\MacroTopsep \trivlist
%    \edef\saved@macroname{\string#2}%
%   \def\makelabel##1{\llap{##1}}%
%   \if@inlabel
%     \let\@tempa\@empty \count@\macro@cnt
%     \loop \ifnum\count@>\z@
%       \edef\@tempa{\@tempa\hbox{\strut}}\advance\count@\m@ne \repeat
%     \edef\makelabel##1{\llap{\vtop to\baselineskip
%                                {\@tempa\hbox{##1}\vss}}}%
%     \advance \macro@cnt \@ne
%   \else  \macro@cnt\@ne  \fi
%   \edef\@tempa{\noexpand\item[%
%      \ifcase #1%
%        \noexpand\PrintMacroName
%      \or
%        \noexpand\PrintEnvName
%      \else
%        \noexpand\PrintOptionName
%      \fi
%      {\string#2}]}%
%   \@tempa
%   {\advance\c@CodelineNo\@ne
%    \ifcase #1%
%       \SpecialMainIndex{#2}\nobreak
%       \DoNotIndex{#2}%
%    \or
%       \SpecialMainEnvIndex{#2}\nobreak
%    \else
%       \SpecialOptionIndex{#2}\nobreak
%    \fi
%    }%
%   \ignorespaces}
% \let\endoption\endtrivlist
% \@ifundefined{PrintOptionName}
%    {\def\PrintOptionName#1{\strut \MacroFont #1\ }}{}
% \def\SpecialOptionIndex#1{\@bsphack
%     \index{#1\actualchar{\protect\ttfamily#1}
%            (option)\encapchar usage}%
%     \index{options:\levelchar{\protect\ttfamily#1}\encapchar
%            usage}\@esphack}
% \makeatother
%
% \title{Die Haupt-classes und -packages des \textsf{KOMA-Script}
%        Pakets\thanks{Diese Datei hat die Versionsnummer \fileversion,
%        letzte "Anderung \filedate.}}
% \author{Frank Neukam\and Markus Kohm}
% \date{\filedate}
% \maketitle
%
% \tableofcontents
%
% \changes{v2.0e}{1994/10/28}{Erste Version, die \texttt{docstrip} verwendet.}
%
% \part{Anleitung}
%
% \section{Generelles}
%
% \subsection{Rechtliches}
% Es wird keinerlei Haftung "ubernommen f"ur irgendwelche Sch"aden,
% die aus der Benutzung der Programme und Dateien des hier
% beschriebenen Paketes folgen.
%
% \subsection{Das \textsf{KOMA-Script} Paket}
%
% Das gesamte \textsf{KOMA-Script} Paket besteht aus mehreren Teilen.
% Dieser Teil (|scrclass.dtx|) beinhaltet die Haupt-classes |scrartcl.cls|,
% |scrreprt.cls| und |scrbook.cls| sowie das von diesen ben"otigte package
% |typearea.sty|.
%
% Die urspr"unglich ebenfalls in |komascr.dtx| enthaltene Anleitung wurde von
% Harald Sommerfeldt "uberarbeitet und ist nun als getrennte Datei
% |scrguide.tex| zu finden. |scrguide.tex| sollte am selben Ort verf"ugbar
% sein, an dem Sie auch |scrclass.dtx| gefunden haben.
%
% Die urspr"unglich in |komascr.dtx| enthaltene Brief-class |scrlettr.cls|
% liegt nun ebenfalls separat bei.
%
% Zum Gesamtpaket geh"oren weitere Dateien.
% Eine Aufz"ahlung finden Sie in der Installationsanleitung |liesmich.txt|.
% Dort ist auch angegeben, wie die classes, packages und andere Dateien
% aus den |*.dtx|-Dateien extrahiert werden.
%
%
% \StopEventually
%
% \part{"`typearea"'-package}
% \section{Implementierung}
%
%    \begin{macrocode}
%<*typearea>
%    \end{macrocode}
% \changes{v2.0e}{1994/07/07}{Auf \LaTeXe umgestellt}
% \changes{v2.0e}{1994/09/02}{{\cmd\ProvideClass} durch {\cmd\PovidePackage} ersetzt}
% \changes{v2.0e}{1994/09/02}{{\cmd\endinput} angeh"angt}
% \changes{v2.1a}{1994/10/29}{Auf doc/docstrip umgestellt}
% \changes{v2.1b}{1994/12/31}{Letzte Version f"ur 1994 fertiggestellt}
% Zuerst einmal zeigen, was es ist:
%    \begin{macrocode}
\typeout{Package: typearea, Copyright (C) Frank Neukam, 1992-1994
      ^^J\space\space\space\space\space\space\space\space\space
         \space\space\space\space\space\space\space\space\space\space
                            Copyright (C) Markus Kohm, 1994-1995}
%    \end{macrocode}
%
% \subsection{Befehle vor den Optionen}
%
%    \begin{macrocode}
\newif\if@hincl
\newif\if@fincl
%    \end{macrocode}
%  \begin{macro}{\SetDIVList}
%  \changes{v2.1a}{1994/10/28}{{\cmd\SetDIVList} eingef"uhrt}
% Der Befehl |\SetDIVList| tut nichts weiter als die innere Variable
% f"ur die schriftgr"o"senabh"angige \emph{DIV}-Liste |\ta@divlist| neu
% zu definieren.
%    \begin{macrocode}
\newcommand\SetDIVList[1]{\def\ta@divlist{#1}}
%    \end{macrocode}
%  \end{macro}
%
%  \begin{macro}{\ta@bcor}
%  \changes{v2.2a}{1995/01/25}{Definition der Dimension {\cmd\ta@bcor}
%                              wegen der Option \texttt{BCOR}
%                              vorgezogen}
% Dimension f"ur die Bindekorrektur reservieren. Diese wird implizit zu
% 0pt initialisiert.
%    \begin{macrocode}
\newdimen\ta@bcor
%    \end{macrocode}
%  \end{macro}
%
%  \begin{macro}{\@BCOR}
%  \begin{macro}{\@@BCOR}
%  \begin{macro}{\@@@BCOR}
%  \begin{macro}{\@@@@BCOR}
%  \begin{macro}{\@v@BCOR}
%  \begin{macro}{\@vi@BCOR}
% Die Befehle |\@BCOR|, |\@@BCOR|, |\@@@BCOR|, |\@@@@BCOR|, |\@v@BCOR|
% und |\@vi@BCOR| werden ben"otigt, um die sp"ater deklarierte Option
% |BCOR|\emph{BCOR} zur erkennen und zu analysieren. Dabei wird die
% Option zeichenweise erkannt und der Wert dann als ein Parameter ausgelesen.
%    \begin{macrocode}
\def\@BCOR{\@ifnextchar B{\@@BCOR}{\@DIV}}
\def\@@BCOR B{\@ifnextchar C{\@@@BCOR}{\ta@TraceError B}}
\def\@@@BCOR C{\@ifnextchar O{\@@@@BCOR}{\ta@TraceError BC}}
\def\@@@@BCOR O{\@ifnextchar R{\@v@BCOR}{\ta@TraceError BCO}}
\def\@v@BCOR R{\@ifnextchar .{\@vi@BCOR}
               {\@ifnextchar 0{\@vi@BCOR}
                {\@ifnextchar 1{\@vi@BCOR}
                 {\@ifnextchar 2{\@vi@BCOR}
                  {\@ifnextchar 3{\@vi@BCOR}
                   {\@ifnextchar 4{\@vi@BCOR}
                    {\@ifnextchar 5{\@vi@BCOR}
                     {\@ifnextchar 6{\@vi@BCOR}
                      {\@ifnextchar 7{\@vi@BCOR}
                       {\@ifnextchar 8{\@vi@BCOR}
                        {\@ifnextchar 9{\@vi@BCOR}
                         {\ta@TraceError BCOR}}}}}}}}}}}}
\def\@vi@BCOR#1|{\ta@bcor#1}
%    \end{macrocode}
%  \end{macro}
%  \end{macro}
%  \end{macro}
%  \end{macro}
%  \end{macro}
%  \end{macro}
%
%  \begin{macro}{\ta@dic}
%  \changes{v2.2a}{1995/01/25}{Definition des Z"ahlers {\cmd\ta@div}
%                              wegen der Option \texttt{DIV}
%                              vorgezogen}
% Z"ahler f"ur \emph{DIV} reservieren. Dieser wird implizit zu
% 0 initialisiert.
%    \begin{macrocode}
\newcount\ta@div
%    \end{macrocode}
%  \end{macro}
%
%  \begin{macro}{\@DIV}
%  \begin{macro}{\@@DIV}
%  \begin{macro}{\@@@DIV}
%  \begin{macro}{\@@@@DIV}
%  \begin{macro}{\@v@DIV}
% Die Befehle |\@DIV|, |\@@DIV|, |\@@@DIV|, |\@@@@DIV| und |\@v@DIV|
% werden ben"otigt, um die sp"ater deklarierte Option
% |DIV|\emph{DIV} zur erkennen und zu analysieren. Dabei wird die
% Option zeichenweise erkannt und der Wert dann als ein Parameter ausgelesen.
%    \begin{macrocode}
\def\@DIV{\@ifnextchar D{\@@DIV}{\ta@TraceError}}
\def\@@DIV D{\@ifnextchar I{\@@@DIV}{\ta@TraceError D}}
\def\@@@DIV I{\@ifnextchar V{\@@@@DIV}{\ta@TraceError DI}}
\def\@@@@DIV V{\@ifnextchar 0{\@v@DIV}
               {\@ifnextchar 1{\@v@DIV}
                {\@ifnextchar 2{\@v@DIV}
                 {\@ifnextchar 3{\@v@DIV}
                  {\@ifnextchar 4{\@v@DIV}
                   {\@ifnextchar 5{\@v@DIV}
                    {\@ifnextchar 6{\@v@DIV}
                     {\@ifnextchar 7{\@v@DIV}
                      {\@ifnextchar 8{\@v@DIV}
                       {\@ifnextchar 9{\@v@BCOR}
                        {\ta@TraceError DIV}}}}}}}}}}}
\def\@v@DIV #1|{\ta@div #1}
%    \end{macrocode}
%  \end{macro}
%  \end{macro}
%  \end{macro}
%  \end{macro}
%  \end{macro}
%
%  \begin{macro}{\ta@TraceError}
% Falls die zu"atzliche Option nicht \texttt{BCOR} oder \texttt{DIV} ist,
% ist eine Fehlermeldung f"allig.
%    \begin{macrocode}
\def\ta@TraceError#1|{\PackageError{typearea}{Unknown option #1}
                      {You've used an unknown option.\MessageBreak
                       Read the KOMA-Script-documentation for further
                       information.}}
%    \end{macrocode}
%  \end{macro}
%
%
% \subsection{Optionen}
%
% \subsubsection{Kopfbereich und Textbereich}
%
%  \begin{option}{headinclude}
%  \begin{option}{headexclude}
% Diese Optionen bestimmen, ob der Seitenkopf bereits zum Textbereich geh"ort.
%    \begin{macrocode}
\DeclareOption{headinclude}{\@hincltrue}
\DeclareOption{headexclude}{\@hinclfalse}
%    \end{macrocode}
%  \end{option}
%  \end{option}
%
% \subsubsection{Fu"sbereich und Textbereich}
%
%  \begin{option}{footinclude}
%  \begin{option}{footexclude}
% Diese Optionen bestimmen, ob die Fu"szeilen noch zum Textbereich geh"oren.
%    \begin{macrocode}
\DeclareOption{footinclude}{\@fincltrue}
\DeclareOption{footexclude}{\@finclfalse}
%    \end{macrocode}
%  \end{option}
%  \end{option}
%
% \subsubsection{Papiergr"o"sen-Optionen}
%
% Diese Optionen bestimmen die Papiergr"o"se. Aus der Papiergr"o"se wird sp"ater
% mit |\typearea| der Seitenspiegel berechnet. Dar"uber hinaus w"are das eine
% passende Gelegenheit |\SetDIVList| anzuwenden.
%
%  \begin{option}{a4paper}
% ISO/DIN A4:
%    \begin{macrocode}
\DeclareOption{a4paper}
   {\setlength\paperheight {297mm}%
    \setlength\paperwidth  {210mm}}
%    \end{macrocode}
%  \end{option}
%  \begin{option}{a5paper}
% ISO/DIN A5:
%    \begin{macrocode}
\DeclareOption{a5paper}
   {\setlength\paperheight {210mm}%
    \setlength\paperwidth  {148mm}}
%    \end{macrocode}
%  \end{option}
%  \begin{option}{b5paper}
% ISO/DIN B5:
%    \begin{macrocode}
\DeclareOption{b5paper}
   {\setlength\paperheight {250mm}%
    \setlength\paperwidth  {176mm}}
%    \end{macrocode}
%  \end{option}
%  \begin{option}{letterpaper}
% ISO letter:
%    \begin{macrocode}
\DeclareOption{letterpaper}
   {\setlength\paperheight {11in}%
    \setlength\paperwidth  {8.5in}}
%    \end{macrocode}
%  \end{option}
%  \begin{option}{legalpaper}
% ISO legal:
%    \begin{macrocode}
\DeclareOption{legalpaper}
   {\setlength\paperheight {14in}%
    \setlength\paperwidth  {8.5in}}
%    \end{macrocode}
%  \end{option}
%  \begin{option}{executivepaper}
% executive:
%    \begin{macrocode}
\DeclareOption{executivepaper}
   {\setlength\paperheight {10.5in}%
    \setlength\paperwidth  {7.25in}}
%    \end{macrocode}
%  \end{option}
%
% \subsubsection{landscape}
%
%  \begin{option}{landscape}
% Mit der Option |landscape| werden |\paperheight| und |\paperwidth|
% vertauscht. Damit wird das entsprechende Querformat erreicht. Nun
% ben"otigt man nur noch einen entsprechenden Drucker oder einen
% |DVI|-Treiber, der mit einer speziellen Option eine um 90\,Grad
% gedrehte Ausgabe erstellen kann.
%    \begin{macrocode}
\DeclareOption{landscape}
   {\setlength\@tempdima   {\paperheight}%
    \setlength\paperheight {\paperwidth}%
    \setlength\paperwidth  {\@tempdima}}
%    \end{macrocode}
%  \end{option}
%
% \subsubsection{Sonstige Optionen}
%
%  \begin{option}{BCOR}
%  \begin{option}{DIV}
%  \changes{v2.2a}{1995/01/25}{Sonderbehandlung f"ur die beiden
%                              neuen Optionen \texttt{BCOR} und
%                              \texttt{DIV}}
%  \changes{v2.2c}{1995/05/25}{Sonderbehandlung nicht im
%                              Kompatibilit"atsmodus}
% F"ur die neu hinzugekommenen Optionen |BCOR| und |DIV| mu"s eine
% Sonderbehandlung durchgef"uhrt werden. Diese Sonderbehandlung mu"s
% die Optionen scannen und Fehler zur"uckweisen. Daf"ur werden die
% oben definierten Befehle |\@...BCOR| und |\@...DIV| sowie
% |\ta@TraceError| verwendet. Damit die Optionen zeichenweise
% gescannt werden k"onnen, wird die Expansion von |\CurrentOption|
% erzwungen.
%    \begin{macrocode}
\if@compatibility\else
  \DeclareOption*{\expandafter\@BCOR\CurrentOption|}
\fi
%    \end{macrocode}
%  \end{option}
%  \end{option}
%
% \subsection{Konfigurationsdatei}
%
% \changes{v2.0e}{1994/10/28}{Konfigurationsdatei eingef"ugt}
% Es ist m"oglich in einer Datei |typearea.cfg| z.B. weitere Optionen
% zu definieren, die dann automatisch eingeladen werden.
%    \begin{macrocode}
\InputIfFileExists{typearea.cfg}
           {\typeout{***************************************^^J%
                     * Local config file typearea.cfg used^^J%
                     ***************************************}}
           {}
%    \end{macrocode}
%
% \subsection{Standardeinstellungen}
% Als Standardoptionen sind |headexclude|, |footexclude| und die
% Papiergr"o"se |a4paper| eingestellt. Diese Optionen k"onnen selbstverst"andlich
% durch explizite Angaben "uberladen werden.
%    \begin{macrocode}
\ExecuteOptions{headexclude,footexclude,a4paper}
\ProcessOptions
%    \end{macrocode}
%
%  \begin{macro}{\ta@divlist}
%  \changes{v2.0e}{1994/10/28}{Definition der internen {\cmd\ta@divlist}}
% Au"serdem mu"s an dieser Stelle noch f"ur die Standardeinstellung der
% |DIV|-Liste gesorgt werden, falls eine solche noch nicht definiert wurde.
%    \begin{macrocode}
\providecommand\ta@divlist{{8}{10}{12}}
%    \end{macrocode}
%  \end{macro}
% \subsection{Einige interne Register}
%
% Diese Gr"o"senparameter und Z"ahler werden intern f"ur verschiedene Befehle
% ben"otigt. (|\ta@bcor| und |\ta@div| werden bereits bei der
% Optionenauswertung ben"otigt und sind deshalb vorgezogen.)
%    \begin{macrocode}
\newdimen\ta@hblk
\newdimen\ta@vblk
\newdimen\ta@temp
%    \end{macrocode}
%
% \subsection{Die Berechnung des Seitenspiegels}
%
%  \begin{macro}{\typearea}
% Die Berechnung des Seitenspiegels, wie sie im Hauptteil der Anleitung
% beschrieben ist, findet mit Hilfe des Befehls |\typearea| statt, der hier
% definiert wird. Die Berechnung selbst findet in mehreren Stufen statt.
%    \begin{macrocode}
\newcommand\typearea[2][\z@]{% Das alte \typearea unter Verwendung neuer Befehle
 \ta@bcor #1
 \ta@div=#2
%    \end{macrocode}
% Zun"achst wird die Gr"o"se einer horizontalen L"angeneinheit (\emph{HLE})
% ermittelt:
%    \begin{macrocode}
 \ta@hblk \paperwidth
 \advance \ta@hblk by -\ta@bcor
 \divide\ta@hblk by \ta@div
%    \end{macrocode}
% Der linke und rechte Rand wird relativ zur benutzbaren Seitenbreite berechnet.
% Dabei mu"s auch der Rand ber"ucksichtigt werden, der vom Druckertreiber
% standardm"a"sig hinzugef"ugt wird. Au"serdem ist der Rand abh"angig davon, ob es
% sich um ein einseitiges oder beidseitiges Layout handelt.
%    \begin{macrocode}
 \oddsidemargin -1in
 \evensidemargin -1in
 \if@twoside
  \advance\oddsidemargin by \ta@hblk
  \advance\oddsidemargin by \ta@bcor
  \advance\evensidemargin by 2\ta@hblk
 \else
  \advance\oddsidemargin by 1.5\ta@hblk
  \advance\oddsidemargin by \ta@bcor
  \evensidemargin\oddsidemargin
 \fi
%    \end{macrocode}
% Der Rest steht nun f"ur den Textbereich zur Verf"ugung:
%    \begin{macrocode}
 \textwidth \paperwidth
 \advance\textwidth by -\ta@bcor
 \advance\textwidth by -3\ta@hblk
%    \end{macrocode}
% Nun werden die vertikalen Verteilungen berechnet:
% \changes{v2.1b}{1994/12/31}{\texttt{headheight} von {\cmd\@ptsize}
%                             abh"angig gemacht}
% \changes{v2.2a}{1995/01/25}{Wenn ein macro oder eine Dimension
%                             {\cmd\ta@hh} existiert, wird diese(s) f"ur
%                             die H"ohe des Kopfbereichs verwendet}
%    \begin{macrocode}
\@ifundefined{ta@hh}{
  \headheight 15pt
  \advance\headheight \@ptsize pt
 }{\headheight\ta@hh}
 \headsep 1.5\baselineskip
 \footskip 3.5\baselineskip
 \ta@vblk \paperheight
 \divide\ta@vblk by \ta@div
 \ta@temp \paperheight
 \advance\ta@temp by -3\ta@vblk
%    \end{macrocode}
% Dabei wird ber"ucksichtigt, ob Kopf- und der Fu"steil der Seite
% f"ur die Berechnung zum Textbereich gez"ahlt werden soll.
%    \begin{macrocode}
 \if@hincl
  \advance\ta@temp by -\headheight
  \advance\ta@temp by -\headsep
 \fi
 \if@fincl
  \advance\ta@temp by -\footskip
 \fi
 \textheight \topskip
%    \end{macrocode}
% Die H"ohe des Textbereichs soll ein Vielfaches von |\baselineskip| sein.
%    \begin{macrocode}
 \@whiledim\textheight<\ta@temp
  \do{\advance\textheight by \baselineskip}
 \topmargin \ta@vblk
 \advance\topmargin by -1in
 \if@hincl \else
  \advance\topmargin by -\headheight
  \advance\topmargin by -\headsep
 \fi
 \if@twoside
  \marginparwidth 1.5\ta@hblk
 \else
  \marginparwidth \ta@hblk
 \fi
%    \end{macrocode}
% \changes{v2.0e}{1994/10/28}{Die Seitenaufteilung wird in die log-Datei
%                             geschrieben.}
% Zum Schlu"s soll die Seitenaufteilung noch in die |log|-Datei geschrieben
% werden.
%    \begin{macrocode}
 \PackageInfo{typearea}{%
    These are the values describing the layout:\MessageBreak
    DIV\space\space=\space\number\ta@div\MessageBreak
    BCOR\space=\space\the\ta@bcor\MessageBreak
    \string\paperwidth\space\space\space\space\space\space=%
                         \space\the\paperwidth\MessageBreak
    \space\string\textwidth\space\space\space\space\space\space=%
                         \space\the\textwidth\MessageBreak
    \space\string\evensidemargin\space=%
                         \space\the\evensidemargin\MessageBreak
    \space\string\oddsidemargin\space=%
                         \space\the\oddsidemargin\MessageBreak
    \string\paperheight\space\space\space\space\space=%
                         \space\the\paperheight\MessageBreak
    \space\string\textheight\space\space\space\space\space=%
                         \space\the\textheight\MessageBreak
    \space\string\topmargin\space\space\space\space\space\space=%
                         \space\the\topmargin\MessageBreak
    \space\string\headheight\space\space\space\space\space=%
                         \space\the\headheight\MessageBreak
    \space\string\headsep\space\space\space\space\space\space\space\space=%
                         \space\the\headsep\MessageBreak
    \space\string\topskip\space\space\space\space\space\space\space\space=%
                         \space\the\topskip\MessageBreak
    \space\string\textheight\space\space\space\space\space=%
                         \space\the\textheight\MessageBreak
    \space\string\footskip\space\space\space\space\space\space\space=%
                         \space\the\footskip\MessageBreak
  }
 \marginparsep 1cc
 \marginparpush 0.45\baselineskip}
%    \end{macrocode}
%  \end{macro}
%
%  \begin{macro}{\areaset}
% \changes{v2.1b}{1994/12/31}{\texttt{headheight} von {\cmd\@ptsize}
%                             abh"angig gemacht}
% Zur Berechnung eines Seitenspiegels mit fester Breite und
% H"ohe dient der Befehl |\areaset|. Der Algorithmus ist "ahnlich dem
% vorherigen Verfahren, aber einfacher.
%    \begin{macrocode}
\newcommand\areaset[3][\z@]{
 \ta@bcor #1
 \textwidth #2
 \textheight #3
 \ta@hblk \paperwidth
 \advance\ta@hblk by -\ta@bcor
 \advance\ta@hblk by -\textwidth
 \divide\ta@hblk by 3
 \oddsidemargin -1in
 \evensidemargin -1in
 \if@twoside
  \advance\oddsidemargin by \ta@hblk
  \advance\oddsidemargin by \ta@bcor
  \advance\evensidemargin by 2\ta@hblk
 \else
  \advance\oddsidemargin by 1.5\ta@hblk
  \advance\oddsidemargin by \ta@bcor
  \evensidemargin\oddsidemargin
 \fi
 \headheight 15pt
 \advance\headheight \@ptsize pt
 \headsep 1.5\baselineskip
 \footskip 3.5\baselineskip
 \ta@vblk \paperheight
 \advance\ta@vblk by -\textheight
 \divide\ta@vblk by 3
 \if@hincl
  \advance\textheight by -\headheight
  \advance\textheight by -\headsep
 \fi
 \if@fincl
  \advance\textheight by -\footskip
 \fi
 \topmargin \ta@vblk
 \advance\topmargin by -1in
 \if@hincl \else
  \advance\topmargin by -\headheight
  \advance\topmargin by -\headsep
 \fi
 \if@twoside
  \marginparwidth 1.5\ta@hblk
 \else
  \marginparwidth \ta@hblk
 \fi
 \marginparsep 1cc
 \marginparpush 0.45\baselineskip}
%    \end{macrocode}
%  \end{macro}
%
% \subsection{Berechnung des Standardseitenspiegels}
%
%  \begin{macro}{\ta@divfor}
% Der Standardseitenspiegel ist abh"angig von den mit |\SetDIVList|
% vorgegebenen Einstellungen. Dazu mu"s aus einer eventuell vorhandenen
% inneren Liste |ta@divlist| der von der Schriftgr"o"se abh"angige
% \textsf{DIV}-Wert ausgelesen werden. Dies geschieht mit Hilfe des
% |\ta@divfor|-Befehls, der sich wiederum einiger interner Befehle
% zur Listenbearbeitung bedient.
%    \begin{macrocode}
\def\ta@divfor#1{
    \xdef\@tempa{\ta@divlist{}}
    \ta@div=#1\relax
    \@whilenum \ta@div >0 \do {%
         \ifx\@tempa\empty \relax%
           \else \xdef\@tempa{\expandafter\@cdr\@tempa\@nil}%
         \fi
         \advance\ta@div by -1 %
    }
    \ifx\@tempa\empty %
%    \end{macrocode}
% Wenn keine Voreinstellung gefunden werden konnte, so wird immer
% der Standardwert \textsf{DIV} = 10 verwendet. Mit einer Warnung
% wird darauf hingewiesen.
%    \begin{macrocode}
        \PackageWarningNoLine{typearea}{%
                    DIV for 1#1pt and used papersize\MessageBreak
                    not defined!\MessageBreak
                    Using DIV=10}
        \typearea[\ta@bcor]{10}
      \else %
%    \end{macrocode}
% Ansonsten wird der vorgegebene Wert verwendet.
%    \begin{macrocode}
        \xdef\@tempa{\expandafter\@car\@tempa\@nil}
        \ta@div=\@tempa\relax
        \typearea[\ta@bcor]{\ta@div}
    \fi}
%    \end{macrocode}
%  \end{macro}
% Nun fehlt nur noch die eigentliche Initialisierung. Zun"achst wird
% festgestellt, ob |\ta@div| bereits ein Wert zugewiesen wurde (entweder
% mittelts der |DIV|-Option, durch eine explizite Definition vor dem
% Aufruf von |typearea.sty| oder durch eine Angabe in |typearea.cfg|). Wenn
% dem so ist, wird der entsprechende Wert verwendet. Ansonsten
% wird der Weg "uber |\@ptsize| und |\ta@divfor| versucht. Sollte die
% Schriftgr"o"se nicht auf herk"ommliche Art und Weise gespeichert sein,
% so wird dies gemeldet und von der Standardgr"o"se 11pt ausgegangen.
%    \begin{macrocode}
\ifnum\ta@div=0
   \@ifundefined{@ptsize}{%
       \PackageWarningNoLine{typearea}{\string\@ptsize not defined!\MessageBreak
                                       Using DIV for 11pt}
       \ta@divfor{1}
       }{%
       \ta@divfor{\@ptsize}
       }
\else
   \typearea[\ta@bcor]{\ta@div}
\fi
%    \end{macrocode}
%
% \subsection{Das Ende}
%
%    \begin{macrocode}
%</typearea>
%    \end{macrocode}
%
% \part{"`scrartcl"'-class,
%       "`scrreprt"'-class,
%       "`scrbook"'-class}
%
% \section{Vorbemerkung}
%
% Alle drei Haupt-\emph{classes} haben viele Teile gemeinsam. Die gr"o"sten
% Gemeinsamkeiten bestehen dabei zwischen |scrreprt| und |scrbook|. |scrartcl|
% unterscheidet sich in mehreren Punkten von den beiden "ubrigen
% Haupt-\emph{classes}.
%
% |scrlettr| unterscheidet sich in vielen Punkten grundlegend von den drei
% Haupt-\emph{classes}. Deshalb wird diese class in einer eigenen Datei
% implementiert.
%
% \section{Implementierung}
%
%    \begin{macrocode}
%<*scrartcl|scrreprt|scrbook>
%    \end{macrocode}
%
% \changes{v2.0e}{1994/07/07}{Erste Version von "`scrartcl"', "`scrreprt"'
%                             und "`scrbook"'}
% \changes{v2.0e}{1994/08/10}{Statt {\cmd\secdef} stand fast "uberall in
%                             "`scrreprt"' und "`scrbook"' {\cmd\sectdef}}
% \changes{v2.0e}{1994/08/10}{Statt {\cmd\addcontentsline} war in
%                             "`scrreprt"' und "`scrbook"'
%                             {\cmd\addcontensline} zu lesen}
% \changes{v2.0e}{1994/08/10}{Statt {\cmd\@makeschapterhead} stand in
%                             "`scrreprt"' und "`scrbook"'
%                             an zwei Stellen {\cmd\@makechapterhead}}
% \changes{v2.0e}{1994/08/10}{Statt {\cmd\@afterheading} war in
%                             "`scrreprt"' und "`scrbook"'
%                             {\cmd\afterheadings} zu lesen}
% \changes{v2.1b}{1994/12/31}{Letzte Version f"ur 1994 fertiggestellt}
%
% Die Implementierung "ahnelt in vielen Punkten der der Standard-classes. Deshalb
% werden hier allenfalls grobe Unterschiede behandelt.
%
% \subsection{Optionen}
%
%    \begin{macrocode}
\newcommand\@ptsize{}
\newif\if@restonecol
\newif\if@titlepage
%<scrartcl>\@titlepagefalse
%<scrreprt|scrbook>\@titlepagetrue
%<!scrartcl>\newif\if@openright
\newif\if@openbib
\@openbibfalse
\newif\if@hsl
\newif\if@fsl
\newif\if@abstrt
%    \end{macrocode}
%
%  \begin{macro}{\@BCOR}
%  \begin{macro}{\@@BCOR}
%  \begin{macro}{\@@@BCOR}
%  \begin{macro}{\@@@@BCOR}
%  \begin{macro}{\@v@BCOR}
%  \begin{macro}{\@vi@BCOR}
%  \begin{macro}{\@DIV}
%  \begin{macro}{\@@DIV}
%  \begin{macro}{\@@@DIV}
%  \begin{macro}{\@@@@DIV}
%  \begin{macro}{\@v@DIV}
% Auch hier werden die Scan-Befehle f"ur die Optionen |BCOR| und |DIV|
% ben"otigt. Allerdings erfolgt keine direkte Wertzuweisung sondern nur
% eine explizite Weitergabe der globalen Option an das
% \emph{typearea}-package. Die Befehle werden anschlie"send von den
% gleichnamigen Scan-Befehlen des packages "uberladen.
%    \begin{macrocode}
\def\@BCOR{\@ifnextchar B{\@@BCOR}{\@DIV}}
\def\@@BCOR B{\@ifnextchar C{\@@@BCOR}{\sc@TraceError B}}
\def\@@@BCOR C{\@ifnextchar O{\@@@@BCOR}{\sc@TraceError BC}}
\def\@@@@BCOR O{\@ifnextchar R{\@v@BCOR}{\sc@TraceError BCO}}
\def\@v@BCOR R{\@ifnextchar .{\@vi@BCOR}
               {\@ifnextchar 0{\@vi@BCOR}
                {\@ifnextchar 1{\@vi@BCOR}
                 {\@ifnextchar 2{\@vi@BCOR}
                  {\@ifnextchar 3{\@vi@BCOR}
                   {\@ifnextchar 4{\@vi@BCOR}
                    {\@ifnextchar 5{\@vi@BCOR}
                     {\@ifnextchar 6{\@vi@BCOR}
                      {\@ifnextchar 7{\@vi@BCOR}
                       {\@ifnextchar 8{\@vi@BCOR}
                        {\@ifnextchar 9{\@vi@BCOR}
                         {\sc@TraceError BCOR}}}}}}}}}}}}
\def\@vi@BCOR#1|{\PassOptionsToPackage{BCOR#1}{typearea}}
%    \end{macrocode}
%
%    \begin{macrocode}
\def\@DIV{\@ifnextchar D{\@@DIV}{\sc@TraceError}}
\def\@@DIV D{\@ifnextchar I{\@@@DIV}{\sc@TraceError D}}
\def\@@@DIV I{\@ifnextchar V{\@@@@DIV}{\sc@TraceError DI}}
\def\@@@@DIV V{\@ifnextchar 0{\@v@DIV}
               {\@ifnextchar 1{\@v@DIV}
                {\@ifnextchar 2{\@v@DIV}
                 {\@ifnextchar 3{\@v@DIV}
                  {\@ifnextchar 4{\@v@DIV}
                   {\@ifnextchar 5{\@v@DIV}
                    {\@ifnextchar 6{\@v@DIV}
                     {\@ifnextchar 7{\@v@DIV}
                      {\@ifnextchar 8{\@v@DIV}
                       {\@ifnextchar 9{\@v@BCOR}
                        {\sc@TraceError DIV}}}}}}}}}}}
\def\@v@DIV #1|{\PassOptionsToPackage{DIV#1}{typearea}}
%    \end{macrocode}
%  \end{macro}
%  \end{macro}
%  \end{macro}
%  \end{macro}
%  \end{macro}
%  \end{macro}
%  \end{macro}
%  \end{macro}
%  \end{macro}
%  \end{macro}
%  \end{macro}
%
%  \begin{macro}{\sc@TraceError}
% Falls die zu"atzliche Option nicht \texttt{BCOR} oder \texttt{DIV} ist,
% ist hier keine Fehlermeldung f"allig. Die Option wird statt dessen
% ignoriert.
%    \begin{macrocode}
\def\sc@TraceError#1|{\relax}
%    \end{macrocode}
%  \end{macro}
%
% Es gibt einige neue Optionen gegen"uber den Standard-Classes.
%
% \subsubsection{Headseparation-Lines}
%  \begin{option}{headsepline}
%  \begin{option}{headnosepline}
% Der Kopfteil kann mit einer Linie vom Textbereich getrennt werden.
%    \begin{macrocode}
\DeclareOption{headsepline}{\PassOptionsToPackage{headinclude}{typearea}\@hsltrue}
\DeclareOption{headnosepline}{\@hslfalse}
%    \end{macrocode}
%  \end{option}
%  \end{option}
%
% \subsubsection{Footseparation-Lines}
%  \begin{option}{footsepline}
%  \begin{option}{footnosepline}
% Der Fu"steil kann mit einer Linie vom Textbereich getrennt werden.
% \changes{v2.0e}{1994/08/14}{In {\cmd\PassOptionsToPackage} fehlte die
%                             package-Angabe}
%    \begin{macrocode}
\DeclareOption{footsepline}{\PassOptionsToPackage{footinclude}{typearea}\@fsltrue}
\DeclareOption{footnosepline}{\@fslfalse}
%    \end{macrocode}
%  \end{option}
%  \end{option}
%
% \subsubsection{Standardoptionen}
%  \begin{option}{10pt}
%  \begin{option}{11pt}
%  \begin{option}{12pt}
%  \begin{option}{oneside}
%  \begin{option}{twoside}
%  \begin{option}{draft}
%  \begin{option}{final}
%  \begin{option}{titlepage}
%  \begin{option}{notitlepage}
%  \begin{option}{openright}
%  \begin{option}{openany}
%  \begin{option}{onecolumn}
%  \begin{option}{twocolumn}
%  \begin{option}{leqno}
%  \begin{option}{fleqno}
%  \begin{option}{openbib}
%    \begin{macrocode}
\DeclareOption{10pt}{\renewcommand\@ptsize{0}}
\DeclareOption{11pt}{\renewcommand\@ptsize{1}}
\DeclareOption{12pt}{\renewcommand\@ptsize{2}}
\DeclareOption{oneside}{\@twosidefalse \@mparswitchfalse}
\DeclareOption{twoside}{\@twosidetrue  \@mparswitchtrue}
\DeclareOption{draft}{\setlength\overfullrule{5pt}}
\DeclareOption{final}{\setlength\overfullrule{0pt}}
\DeclareOption{titlepage}{\@titlepagetrue}
\DeclareOption{notitlepage}{\@titlepagefalse}
%<!scrartcl>\DeclareOption{openright}{\@openrighttrue}
%<!scrartcl>\DeclareOption{openany}{\@openrightfalse}
\DeclareOption{onecolumn}{\@twocolumnfalse}
\DeclareOption{twocolumn}{\@twocolumntrue}
\DeclareOption{leqno}{\input{leqno.clo}}
\DeclareOption{fleqn}{\input{fleqn.clo}}
\DeclareOption{openbib}{\@openbibtrue}
%    \end{macrocode}
%  \end{option}
%  \end{option}
%  \end{option}
%  \end{option}
%  \end{option}
%  \end{option}
%  \end{option}
%  \end{option}
%  \end{option}
%  \end{option}
%  \end{option}
%  \end{option}
%  \end{option}
%  \end{option}
%  \end{option}
%  \end{option}
%
% \subsubsection{Abstract (Zusammenfassung)}
%  \begin{option}{abstracton}
%  \begin{option}{abstractoff}
% Das Abstract (Zusammenfassung) kann mit einem standardm"a"sigen Titel versehen
% werden. Der Titel kann aber auch unterdr"uckt werden.
%
% Bei |scrbook| gibt es kein Abstract.
%    \begin{macrocode}
%<!scrbook>\DeclareOption{abstracton}{\@abstrttrue}
%<!scrbook>\DeclareOption{abstractoff}{\@abstrtfalse}
%    \end{macrocode}
%  \end{option}
%  \end{option}
% \changes{v2.0e}{1994/09/04}{Statt abstractoff stand "`abstactoff"' in der
%                             Standardoptionenliste}
%
% \subsubsection{Andere Optionen}
%
%  \begin{option}{BCOR}
%  \begin{option}{DIV}
% \changes{v2.2a}{1995/01/25}{Neue Optionen \texttt{BCOR} und \texttt{DIV}}
% \changes{v2.2c}{1995/05/25}{Die Optionen \texttt{BCOR} und \texttt{DIV}
%                             nicht im Kompatibilit"atsmodus}
% Die Optionen |BCOR| und |DIV| m"ussen f"ur ihre Weiterleitung an das
% \emph{typearea}-package gesondert erkannt werden. Da die Optionen
% Parameter besitzen, k"onnen sie nur mit |\DeclareOption*| verarbeitet
% werden.
%    \begin{macrocode}
\if@compatibility\else
  \DeclareOption*{\expandafter\@BCOR\CurrentOption|}
\fi
%    \end{macrocode}
%  \end{option}
%  \end{option}
%
%
% \subsubsection{Optionenauswahl}
% Es m"ussen die Standardoptionen festgelegt und alle Optionen ausgew"ahlt werden.
% Anschlie"send ist die Schriftgr"o"seneinstellung vorzunehmen und der
% Seitenspiegel mit Hilfe des |typearea|-packages zu berechnen.
%    \begin{macrocode}
\ExecuteOptions{11pt,onecolumn,final,headnosepline,footnosepline,
%<scrartcl>                oneside,abstractoff}
%<scrreprt>                oneside,openany,abstractoff}
%<scrbook>                twoside,openright}
\ProcessOptions
%<!scrbook>\input{size1\@ptsize.clo}
%<scrbook>\input{bk1\@ptsize.clo}
\RequirePackage{typearea}
%    \end{macrocode}
% \subsection{Einige Gr"o"sen}
% Einige Gr"o"sen sind festzulegen:
%    \begin{macrocode}
\setlength\lineskip{1\p@}
\setlength\normallineskip{1\p@}
\renewcommand\baselinestretch{}
\setlength\parskip{0\p@ \@plus \p@}
\@lowpenalty   51
\@medpenalty  151
\@highpenalty 301
\setcounter{topnumber}{2}
\renewcommand\topfraction{.7}
\setcounter{bottomnumber}{1}
\renewcommand\bottomfraction{.3}
\setcounter{totalnumber}{3}
\renewcommand\textfraction{.2}
\renewcommand\floatpagefraction{.5}
\setcounter{dbltopnumber}{2}
\renewcommand\dbltopfraction{.7}
\renewcommand\dblfloatpagefraction{.5}
%    \end{macrocode}
% \subsection{Befehle f"ur den Kompatibilit"atsmodus}
%  \begin{macro}{\headincludeon}
%  \begin{macro}{\headincludeoff}
%  \begin{macro}{\headseplineon}
%  \begin{macro}{\headseplineoff}
%  \begin{macro}{\footincludeon}
%  \begin{macro}{\footincludeoff}
%  \begin{macro}{\footseplineon}
%  \begin{macro}{\footseplineoff}
% Da die classes des \textsf{KOMA-Script} Pakets nun auch im
% Kompatibilit"atsmodus verwendet werden k"onnen, ben"otigen wir einige
% Befehle, die es bei \textsf{Script 2.0} noch gab. Betroffen sind an dieser
% Stelle nur die Befehle f"ur die Kopf- und Fu"szeilentrennlinie und
% die Einbeziehung von Kopf- und Fu"szeilen in den Textbereich bei
% der Berechnung des Seitenspiegels.
% \changes{v2.0e}{1994/10/12}{Kopf- und Fu"szeilenhandling f"ur den
%                             Kompatibilit"atsmodus erg"anzt}
%    \begin{macrocode}
\if@compatibility
  \newcommand\headincludeon{\@hincltrue}
  \newcommand\headincludeoff{\@hinclfalse}
  \newcommand\headseplineon{\@hsltrue \@hincltrue}
  \newcommand\headseplineoff{\@hslfalse \@hinclfalse}
  \newcommand\footincludeon{\@fincltrue}
  \newcommand\footincludeoff{\@finclfalse}
  \newcommand\footseplineon{\@fsltrue \@fincltrue}
  \newcommand\footseplineoff{\@fslfalse \@finclfalse}
\fi
%    \end{macrocode}
%  \end{macro}
%  \end{macro}
%  \end{macro}
%  \end{macro}
%  \end{macro}
%  \end{macro}
%  \end{macro}
%  \end{macro}
%
% \subsection{Kopf- und Fu"szeilendefinition}
%
%  \begin{macro}{\ps@plain}
%  \begin{macro}{\ps@headings}
%  \begin{macro}{\ps@myheadings}
% Es wird das Aussehen der Kopf- und Fu"szeilen f"ur die Standardseitenstile
% |empty|, |plain|, |headings| und |myheadings| festgelegt. Diese sind bei
% |scrartcl| abh"angig davon, ob es sich um einseitiges oder beidseitiges
% Layout handelt.
%
% Im Gegensatz zu den Seitenstilen der Standard-classes steht die
% Seitennummer beim \textsf{KOMA-Script} Paket immer in der Fu"szeile.
% Au"serdem sind Trennlinien zwischen Kopf- und Textbereich sowie zwischen
% Text- und Fu"sbereich m"oglich.
%
% Die Kopfzeile wird auch nicht mehr in Gro"sbuchstaben gewandelt.
%
% \changes{v2.0e}{1994/08/10}{Bei "`scrbook"' gibt es kein einseitiges
%                             Layout!}
% \changes{v2.2a}{1995/02/07}{Bei "`scrbook"' und "`scrreprt"' Punkt
%                             hinter der section-Nummer entfernt.}
% \changes{v2.2c}{1995/05/25}{Punkt hinter der Kapitelnummer in der
%                             Kopfzeile entfernt.}
% \changes{v2.2c}{1995/05/25}{Nummern in der Kopfzeile auf CJK umgestellt}
%    \begin{macrocode}
%<!scrbook>\if@twoside
 \def\ps@plain{\let\@mkboth\@gobbletwo
  \def\@evenhead{}%
  \def\@oddhead{}%
  \def\@evenfoot{\vbox{\hsize=\textwidth
   \if@fsl \hrule \vskip 3pt \fi
   \hbox to \textwidth{{\pnumfont\thepage\hfil}}}}%
  \def\@oddfoot{\vbox{\hsize=\textwidth
   \if@fsl \hrule \vskip 3pt \fi
   \hbox to \textwidth{{\pnumfont\hfil\thepage}}}}}
 \def\ps@headings{\let\@mkboth\markboth
  \def\@evenhead{\vbox{\hsize=\textwidth
   \hbox to \textwidth{{\headfont\leftmark\hfil}}%
   \if@hsl \vskip 1.5pt \hrule \fi}}
  \def\@oddhead{\vbox{\hsize=\textwidth
   \hbox to \textwidth{{\headfont\hfil\rightmark}}%
   \if@hsl \vskip 1.5pt \hrule \fi}}
  \def\@evenfoot{\vbox{\hsize=\textwidth
   \if@fsl \hrule \vskip 3pt \fi
   \hbox to \textwidth{{\pnumfont\thepage\hfil}}}}%
  \def\@oddfoot{\vbox{\hsize=\textwidth
   \if@fsl \hrule \vskip 3pt \fi
   \hbox to \textwidth{{\pnumfont\hfil\thepage}}}}%
%<*scrartcl>
  \def\sectionmark##1{%
   \markboth {\ifnum \c@secnumdepth >\z@%
    \sectionmarkformat\fi ##1}{}}
  \def\subsectionmark##1{%
   \markright {\ifnum \c@secnumdepth >\@ne%
    \subsectionmarkformat\fi ##1}}}
%</scrartcl>
%<*scrreprt|scrbook>
  \def\chaptermark##1{%
   \markboth {\ifnum \c@secnumdepth >\m@ne
%<scrbook>      \if@mainmatter
        \chaptermarkformat\fi
%<scrbook>      \fi
        ##1}{}}%
  \def\sectionmark##1{%
    \markright {\ifnum \c@secnumdepth >\z@
        \sectionmarkformat\fi
        ##1}}}
%</scrreprt|scrbook>
 \def\ps@myheadings{\let\@mkboth\@gobbletwo
  \def\@evenhead{\vbox{\hsize=\textwidth
   \hbox to \textwidth{{\headfont\leftmark\hfil}}
   \if@hsl \vskip 1.5pt \hrule \fi}}%
  \def\@oddhead{\vbox{\hsize=\textwidth
   \hbox to \textwidth{{\headfont\hfil\rightmark}}
   \if@hsl \vskip 1.5pt \hrule \fi}}%
  \def\@evenfoot{\vbox{\hsize=\textwidth
   \if@fsl \hrule \vskip 3pt \fi
   \hbox to \textwidth{{\pnumfont\thepage\hfil}}}}%
  \def\@oddfoot{\vbox{\hsize=\textwidth
   \if@fsl \hrule \vskip 3pt \fi
   \hbox to \textwidth{{\pnumfont\hfil\thepage}}}}%
%<!scrartcl>  \def\chaptermark##1{}
%<scrartcl>  \def\subsectionmark##1{}
  \def\sectionmark##1{}}
%<*!scrbook>
\else
 \def\ps@plain{\let\@mkboth\@gobbletwo
  \def\@evenhead{}%
  \def\@oddhead{}%
  \def\@evenfoot{}%
  \def\@oddfoot{\vbox{\hsize=\textwidth
   \if@fsl \hrule \vskip 3pt \fi
   \hbox to \textwidth{{\pnumfont\hfil\thepage\hfil}}}}}
 \def\ps@headings{\let\@mkboth\markboth
  \def\@evenhead{}%
  \def\@oddhead{\vbox{\hsize=\textwidth
   \hbox to \textwidth{{\headfont\hfil\rightmark\hfil}}
   \if@hsl \vskip 1.5pt \hrule \fi}}%
  \def\@evenfoot{}%
  \def\@oddfoot{\vbox{\hsize=\textwidth
   \if@fsl \hrule \vskip 3pt \fi
   \hbox to \textwidth{{\pnumfont\hfil\thepage\hfil}}}}%
%<*scrartcl>
%    \end{macrocode}
% \changes{v2.1b}{1994/12/31}{Im einseitigen Seitenstil
%                             {\cmd\markboth} durch
%                             {\cmd\markright} ersetzt}
% \changes{v2.2a}{1995/02/07}{Im einseitigen Seitenstil
%                             bei "`scrartcl"' und \texttt{oneside}
%                             {\cmd\subsectionmark} eingef"ugt.}
% \changes{v2.2a}{1995/02/07}{Im einseitigen Seitenstil
%                             bei "`scrreprt"' und \texttt{ondeside}
%                             {\cmd\sectionmark} eingef"ugt.}
%    \begin{macrocode}
  \def\subsectionmark##1{}
  \def\sectionmark##1{\markright {\ifnum \c@secnumdepth >\z@
      \sectionmarkformat\fi ##1}}}
%</scrartcl>
%    \end{macrocode}
% \changes{v2.0e}{1994/08/17}{Im einseitigen Seitenstil
%                             {\cmd\markboth} durch
%                             {\cmd\markright} ersetzt}
%    \begin{macrocode}
%<*scrreprt>
  \def\sectionmark##1{}
  \def\chaptermark##1{\markright {\ifnum \c@secnumdepth >\m@ne
   \chaptermarkformat\fi ##1}}}
%</scrreprt>
 \def\ps@myheadings{\let\@mkboth\@gobbletwo
  \def\@evenhead{}%
  \def\@oddhead{\vbox{\hsize=\textwidth
   \hbox to \textwidth{{\headfont\hfil\rightmark\hfil}}
   \if@hsl \vskip 1.5pt \hrule \fi}}%
  \def\@evenfoot{}%
  \def\@oddfoot{\vbox{\hsize=\textwidth
   \if@fsl \hrule \vskip 3pt \fi
   \hbox to \textwidth{{\pnumfont\hfil\thepage\hfil}}}}%
%<scrartcl>  \def\subsectionmark##1{}%
%<!scrartcl>  \def\chaptermark##1{}%
  \def\sectionmark##1{}}
\fi
%</!scrbook>
%    \end{macrocode}
%  \end{macro}
%  \end{macro}
%  \end{macro}
%
% \subsection{Titel}
%
%  \begin{macro}{\extratitle}
%  \begin{macro}{\titlehead}
%  \begin{macro}{\subject}
%  \begin{macro}{\publishers}
%  \begin{macro}{\uppertitleback}
%  \begin{macro}{\lowertitleback}
%  \begin{macro}{\dedication}
% Da der Titel im \textsf{KOMA-Script} Paket wesentlich mehr
% Angaben erlaubt als bei den Standard-classes, gibt es nat"urlich
% auch einige Befehle, mit denen diese gesetzt werden k"onnen.
%
% Alle zus"atzlichen Angaben sind optional und k"onnen auch weggelassen
% werden. In diesem Fall werden Leerfelder verwendet.
%
%    \begin{macrocode}
\def\next@tpage{\newpage\thispagestyle{empty}\null}
\def\@extratitle{}
\long\def\extratitle#1{\def\@extratitle{#1}}
\def\@titlehead{}
\long\def\titlehead#1{\def\@titlehead{#1}}
\def\@subject{}
\newcommand\subject[1]{\def\@subject{#1}}
\def\@publishers{}
\newcommand\publishers[1]{\def\@publishers{#1}}
\def\@uppertitleback{}
\long\def\uppertitleback#1{\def\@uppertitleback{#1}}
\def\@lowertitleback{}
\long\def\lowertitleback#1{\def\@lowertitleback{#1}}
\def\@dedication{}
\newcommand\dedication[1]{\def\@dedication{#1}}
%    \end{macrocode}
%  \end{macro}
%  \end{macro}
%  \end{macro}
%  \end{macro}
%  \end{macro}
%  \end{macro}
%  \end{macro}
%  \begin{macro}{\maketitle}
% Anschlie"send wird der Titel generiert.
% Bei |scrartcl| mu"s unterschieden werden, ob der Titel auf einer eigenen
% Titelseite oder als Seitenkopf erstellt werden soll. Der
% \textsf{KOMA-Script}-Titel ist u.U. sehr gro"s. In diesem Fall
% sollte eigentlich immer eine Titelseite verwendet werden.
% \changes{v2.1a}{1994/10/29}{Das Hilfskonstrukt {\cmd\@maketitle}
%                             wurde aus der Unterscheidung
%                             herausgenommen. Dies ist f"ur
%                             den Fall, da"s {\cmd\maketitle}
%                             von einem package "uberladen wird}
%    \begin{macrocode}
\if@titlepage
    \newcommand\maketitle[1][1]{\begin{titlepage}%
    \setcounter{page}{#1}
    \let\footnotesize\small
    \let\footnoterule\relax
    \ifx\@extratitle\@empty \else
        \noindent\@extratitle \next@tpage \if@twoside \next@tpage \fi
    \fi
    \ifx\@titlehead\@empty \else
        \noindent\begin{minipage}[t]{\textwidth}
        \@titlehead
        \end{minipage}\par
    \fi
    \null \vfill
    \begin{center}
    \ifx\@subject\@empty \else
        {\Large \@subject \par}
        \vskip 3em
    \fi
    {\huge {\sectfont \@title \par}}
    \vskip 3em
    {\Large \lineskip 0.75em
    \begin{tabular}[t]{c}
        \@author
    \end{tabular}\par}
    \vskip 1.5em
    {\Large \@date \par}
    \vskip 0pt plus 3fill
    {\Large \@publishers \par}
    \vskip 3em
    \end{center}\par
    \@thanks
    \vfil\null
    \if@twoside\next@tpage
        \noindent\begin{minipage}[t]{\textwidth}
        \@uppertitleback
        \end{minipage}\par
        \vfill
        \noindent\begin{minipage}[b]{\textwidth}
        \@lowertitleback
        \end{minipage}
    \fi
    \ifx\@dedication\@empty \else
        \next@tpage \vfill
        {\centering \Large \@dedication \par}
        \vskip 0pt plus 3fill
        \if@twoside \next@tpage \fi
    \fi
    \end{titlepage}
    \setcounter{footnote}{0}%
    \let\thanks\relax\let\maketitle\relax%
    \gdef\@thanks{}\gdef\@author{}\gdef\@title{}%
    \gdef\@extratitle{}\gdef\@titlehead{}\gdef\@subject{}\gdef\@publishers{}%
    \gdef\@uppertitleback{}\gdef\@lowertitleback{}\gdef\@dedication{}}
\else
     \newcommand\maketitle{\par
       \begingroup
         \renewcommand\thefootnote{\fnsymbol{footnote}}%
         \def\@makefnmark{\hbox to\z@{$\m@th^{\@thefnmark}$\hss}}%
         \long\def\@makefntext##1{\parindent 1em\noindent
                 \hbox to1.8em{\hss$\m@th^{\@thefnmark}$}##1}%
         \if@twocolumn
           \ifnum \col@number=\@ne
             \@maketitle
           \else
             \twocolumn[\@maketitle]%
           \fi
         \else
           \newpage
           \global\@topnum\z@   % Prevents figures from going at top of page.
           \@maketitle
         \fi
         \thispagestyle{plain}\@thanks
       \endgroup
       \setcounter{footnote}{0}%
       \let\thanks\relax\let\maketitle\relax\let\@maketitle\relax%
       \gdef\@thanks{}\gdef\@author{}\gdef\@title{}%
         \gdef\@extratitle{}\gdef\@titlehead{}\gdef\@subject{}\gdef\@publishers{}%
         \gdef\@uppertitleback{}\gdef\@lowertitleback{}\gdef\@dedication{}}
\fi
\def\@maketitle{%
    \clearpage
    \ifx\@extratitle\@empty \else
        \noindent\@extratitle \next@tpage \if@twoside \next@tpage \fi
    \fi
    \ifx\@titlehead\@empty \else
        \noindent\begin{minipage}[t]{\textwidth}
        \@titlehead
        \end{minipage}\par
    \fi
    \null
    \vskip 2em%
    \begin{center}%
    \ifx\@subject\@empty \else
        {\Large \@subject \par}
        \vskip 1.5em
    \fi
    {\huge \@title \par}%
    \vskip 1.5em%
    {\Large
      \lineskip .5em%
      \begin{tabular}[t]{c}%
        \@author
      \end{tabular}\par}%
    \vskip 1em%
    {\Large \@date \par}%
    \vskip 0pt plus 1em
    {\Large \@publishers \par}
    \ifx\@dedication\@empty \else
        \vskip 2em
        {\Large \@dedication \par}
    \fi
  \end{center}%
  \par
  \vskip 2em}
%    \end{macrocode}
%  \end{macro}
%
% \subsection{Kapiteleinteilung}
%
%  \begin{macro}{\part}
% \changes{v2.1c}{1995/01/17}{Zeichenkette "`markboth"' durch
%                             Befehl {\cmd\markboth} ersetzt}
% \changes{v2.2c}{1995/05/25}{Part-Ausgabe auf CJK umgestellt}
%  \begin{macro}{\chapter}
%  \begin{macro}{\addchap}
% \changes{v2.0e}{1994/08/10}{{\cmd\sectdef} durch {\cmd\secdef} ersetzt}
% \changes{v2.0e}{1994/08/10}{{\cmd\addcontensline} durch
%                             {\cmd\addcontentsline} ersetzt}
% \changes{v2.0e}{1994/08/10}{{\cmd\chaptermark} durch
%                             {\cmd\markboth} ersetzt}
% \changes{v2.0e}{1994/10/12}{{\cmd\markboth} durch {\cmd\chaptermark}
%                             ersetzt}
% \changes{v2.0e}{1994/08/10}{{\cmd\@makechapterhead} durch
%                             {\cmd\@makeschapterhead} ersetzt}
% \changes{v2.0e}{1994/08/10}{{\cmd\afterheadings} durch
%                             {\cmd\@afterheading} ersetzt}
% \changes{v2.1a}{1994/10/29}{Argument von {\cmd\chaptermark} entfernt bei
%                             "`scrbook"'}
% \changes{v2.0e}{1994/10/12}{Mehrfach {\cmd\markboth} durch
%                             {\cmd\sectionmark} ersetzt.}
% \changes{v2.2b}{1995/03/20}{{\cmd\chaptermark} durch {\cmd\@mkboth}
%                 ersetzt}
%  \begin{macro}{\addsec}
% \changes{v2.0e}{1994/10/12}{Mehrfach {\cmd\markboth} durch
%                             {\cmd\sectionmark} ersetzt.}
% \changes{v2.2b}{1995/03/20}{{\cmd\sectionmark} durch {\cmd\@mkboth}
%                 ersetzt}
%  \begin{macro}{\section}
%  \begin{macro}{\subsection}
%  \begin{macro}{\subsubsection}
%  \begin{macro}{\paragraph}
%  \begin{macro}{\subparagraph}
%  \begin{macro}{\minisec}
% Die Befehle und das Aussehen der Kapiteleinteilung werden definiert. Im
% Gegensatz zu den Standard-classes gibt es im \textsf{KOMA-Script} Paket
% \emph{keine} Titel-W"orter in den Kapitel"uberschriften, gleich welcher Stufe.
%
% In |scrartcl| beginnt die erste Stufe mit |\section|, die letzte Stufe ist
% |\subparagraph|. In |scrreprt| und |scrbook| beginnt es mit |\chapter| und
% endet mit |\paragraph|. Dar"uber hinaus gibt es bei |scrartcl| noch den
% zus"atzlichen Befehl |\addsec|. In |scrreprt| und |scrbook| existiert
% stattdessen der analoge Befehl |\addchap|.
%
% In allen drei Haupt-classes gibt es den zus"atzlichen Einteilungsbefehl
% |\minisec|, der nur eine kleine "Uberschrift ohne Numerierung oder Aufnahme
% in Inhaltsverzeichnis oder Kopfzeile bietet.
%
%    \begin{macrocode}
%<!scrartcl>\newcommand\chaptermark[1]{}
\setcounter{secnumdepth}{2}
\newcounter {part}
%<!scrartcl>\newcounter {chapter}
%<scrartcl>\newcounter {section}
%<!scrartcl>\newcounter {section}[chapter]
\newcounter {subsection}[section]
\newcounter {subsubsection}[subsection]
\newcounter {paragraph}[subsubsection]
\newcounter {subparagraph}[paragraph]
\renewcommand\thepart          {\Roman{part}}
%<!scrartcl>\renewcommand\thechapter       {\arabic{chapter}}
%<!scrartcl>\renewcommand\thesection       {\thechapter.\arabic{section}}
%<scrartcl>\renewcommand\thesection       {\arabic{section}}
\renewcommand\thesubsection    {\thesection.\arabic{subsection}}
\renewcommand\thesubsubsection {\thesubsection .\arabic{subsubsection}}
\renewcommand\theparagraph     {\thesubsubsection.\arabic{paragraph}}
\renewcommand\thesubparagraph  {\theparagraph.\arabic{subparagraph}}
%<!scrartcl>\newcommand\@chapapp{\chaptername}
%<*scrartcl>
\newcommand\part{\par
   \addvspace{4ex}%
   \@afterindentfalse
   \secdef\@part\@spart}
%</scrartcl>
%<*scrbook>
\newif\if@mainmatter \@mainmattertrue
\newcommand\frontmatter{\cleardoublepage
            \@mainmatterfalse\pagenumbering{roman}}
\newcommand\mainmatter{\cleardoublepage
       \@mainmattertrue\pagenumbering{arabic}}
\newcommand\backmatter{\if@openright\cleardoublepage\else\clearpage\fi
      \@mainmatterfalse}
%</scrbook>
%<*scrreprt|scrbook>
\newcommand\part{\cleardoublepage
                 \thispagestyle{plain}%
                 \if@twocolumn
                     \onecolumn
                     \@tempswatrue
                   \else
                     \@tempswafalse
                 \fi
                 \hbox{}\vfil
                 \secdef\@part\@spart}
%</scrreprt|scrbook>
\def\@part[#1]#2{%
%<*scrartcl>
    \ifnum \c@secnumdepth >\m@ne
      \refstepcounter{part}%
      \addcontentsline{toc}{part}{\thepart\hspace{1em}#1}%
    \else
      \addcontentsline{toc}{part}{#1}%
    \fi
    {\parindent \z@ \raggedright
     \interlinepenalty \@M
     \reset@font
     \ifnum \c@secnumdepth >\m@ne
       \huge\sectfont\partformat
       \par\nobreak
     \fi
     \Huge \sectfont #2%
     \markboth{}{}\par}%
     \nobreak
     \vskip 3ex
    \@afterheading}
%</scrartcl>
%<*scrreprt|scrbook>
    \ifnum \c@secnumdepth >-2\relax
      \refstepcounter{part}%
      \addcontentsline{toc}{part}{\thepart\hspace{1em}#1}%
    \else
      \addcontentsline{toc}{part}{#1}%
    \fi
    \chaptermark{}
    {\centering
     \interlinepenalty \@M
     \reset@font
     \ifnum \c@secnumdepth >-2\relax
       \huge\sectfont\partformat
       \par
       \vskip 20\p@
     \fi
     \Huge \sectfont #2\par}%
    \@endpart}
%</scrreprt|scrbook>
\def\@spart#1{%
%<*scrartcl>
    {\parindent \z@ \raggedright
     \interlinepenalty \@M
     \reset@font
     \Huge \sectfont #1\par}%
     \nobreak
     \vskip 3ex
    \@afterheading}
%</scrartcl>
%<*scrreprt|scrbook>
    {\centering
     \interlinepenalty \@M
     \reset@font
     \Huge \sectfont #1\par}%
    \@endpart}
%</scrreprt|scrbook>
\def\@endpart{\vfil\newpage
              \if@twoside
                \hbox{}%
                \thispagestyle{empty}%
                \newpage
              \fi
              \if@tempswa
                \twocolumn
              \fi}
%<*scrreprt|scrbook>
\newcommand\chapter{\if@openright\cleardoublepage\else\clearpage\fi
                    \thispagestyle{plain}%
                    \global\@topnum\z@
                    \@afterindentfalse
                    \secdef\@chapter\@schapter}
\def\@chapter[#1]#2{\ifnum \c@secnumdepth >\m@ne
%<scrbook>                       \if@mainmatter
                         \refstepcounter{chapter}%
                         \typeout{\@chapapp\space\thechapter.}%
                         \addcontentsline{toc}{chapter}%
                                   {\protect\numberline{\thechapter}#1}%
%<scrbook>                       \else
%<scrbook>                         \addcontentsline{toc}{chapter}{#1}\fi
                    \else
                      \addcontentsline{toc}{chapter}{#1}
                    \fi
                    \chaptermark{#1}%
                    \addtocontents{lof}{\protect\addvspace{10\p@}}%
                    \addtocontents{lot}{\protect\addvspace{10\p@}}%
                    \if@twocolumn
                      \@topnewpage[\@makechapterhead{#2}]%
                    \else
                      \@makechapterhead{#2}%
                      \@afterheading
                    \fi}
\def\@makechapterhead#1{%
  \vspace*{50\p@}%
  {\Huge {\sectfont
    \@hangfrom{\ifnum \c@secnumdepth >\m@ne%
%    \end{macrocode}
% \changes{2.2e}{1995/06/08}{{\cmd\chaptermark} in {\cmd\@makechapterhead}
%                            durch {\cmd\chapterformat} ersetzt}
%    \begin{macrocode}
%<scrbook>                 \if@mainmatter \chapterformat\fi\fi}%
%<!scrbook>                  \chapterformat\fi}%
              {\raggedright \interlinepenalty \@M #1\par}}
    \nobreak
    \vskip 40\p@
  }}
\def\@schapter#1{\if@twocolumn
                   \@topnewpage[\@makeschapterhead{#1}]%
                 \else
                   \@makeschapterhead{#1}%
                   \@afterheading
                 \fi}
\def\@makeschapterhead#1{%
  \vspace*{50\p@}%
  {\parindent \z@ \raggedright
    \reset@font
    \Huge \sectfont #1\par
    \nobreak
    \vskip 40\p@
  }}
%</scrreprt|scrbook>
%<*scrartcl>
\newcommand\addsec{\secdef\@addsec\@saddsec}
\def\@addsec[#1]#2{\addcontentsline{toc}{section}{#1}
 \if@twoside \@mkboth{#1}{}\else \@mkboth{#1}{#1}\fi \section*{#2}}
\def\@saddsec#1{\section*{#1}\@mkboth{}}
%</scrartcl>
%<*scrreprt|scrbook>
\newcommand\addchap{\if@openright\cleardoublepage\else\clearpage\fi
                    \thispagestyle{plain}%
                    \global\@topnum\z@
                    \@afterindentfalse
                    \secdef\@addchap\@saddchap}
\def\@addchap[#1]#2{\typeout{#2}
                    \addcontentsline{toc}{chapter}{#1}%
                    \if@twoside\@mkboth{#1}{}\else\@mkboth{}{#1}\fi
                    \addtocontents{lof}{\protect\addvspace{10\p@}}%
                    \addtocontents{lot}{\protect\addvspace{10\p@}}%
                    \if@twocolumn
                         \@topnewpage[\@makeschapterhead{#2}]%
                    \else
                         \@makeschapterhead{#2}%
                         \@afterheading
                    \fi}
\def\@saddchap#1{\@mkboth{}{}
                 \if@twocolumn
                      \@topnewpage[\@makeschapterhead{#1}]%
                 \else
                      \@makeschapterhead{#1}%
                      \@afterheading
                 \fi}
%</scrreprt|scrbook>
\newcommand\section{\@startsection {section}{1}{\z@}%
                                   {-3.5ex \@plus -1ex \@minus -.2ex}%
                                   {2.3ex \@plus.2ex}%
                                   {\reset@font\Large\sectfont}}
\newcommand\subsection{\@startsection{subsection}{2}{\z@}%
                                     {-3.25ex\@plus -1ex \@minus -.2ex}%
                                     {1.5ex \@plus .2ex}%
                                     {\reset@font\large\sectfont}}
\newcommand\subsubsection{\@startsection{subsubsection}{3}{\z@}%
                                     {-3.25ex\@plus -1ex \@minus -.2ex}%
                                     {1.5ex \@plus .2ex}%
                                     {\reset@font\normalsize\sectfont}}
\newcommand\paragraph{\@startsection{paragraph}{4}{\z@}%
                                    {3.25ex \@plus1ex \@minus.2ex}%
                                    {-1em}%
                                    {\reset@font\normalsize\sectfont}}
\newcommand\subparagraph{\@startsection{subparagraph}{5}{\parindent}%
                                       {3.25ex \@plus1ex \@minus .2ex}%
                                       {-1em}%
                                       {\reset@font\normalsize\sectfont}}
\newcommand\minisec[1]{\@afterindentfalse \vskip 1.5ex
                       {\parindent 0pt \raggedright \sectfont #1\par\nobreak}%
                       \@afterheading}
%    \end{macrocode}
%  \end{macro}
%  \end{macro}
%  \end{macro}
%  \end{macro}
%  \end{macro}
%  \end{macro}
%  \end{macro}
%  \end{macro}
%  \end{macro}
%  \end{macro}
%
% \subsection{Listen-Umgebungen}
%
% \subsubsection{R"ander}
%
% F"ur die Listenumgebungen in verschiedenen Stufen m"ussen R"ander
% definiert werden.
%    \begin{macrocode}
\if@twocolumn
  \setlength\leftmargini  {2em}
\else
  \setlength\leftmargini  {2.5em}
\fi
\setlength\leftmarginii  {2.2em}
\setlength\leftmarginiii {1.87em}
\setlength\leftmarginiv  {1.7em}
\if@twocolumn
  \setlength\leftmarginv  {.5em}
  \setlength\leftmarginvi {.5em}
\else
  \setlength\leftmarginv  {1em}
  \setlength\leftmarginvi {1em}
\fi
\setlength\leftmargin    {\leftmargini}
\setlength  \labelsep  {.5em}
\setlength  \labelwidth{\leftmargini}
\addtolength\labelwidth{-\labelsep}
\@beginparpenalty -\@lowpenalty
\@endparpenalty   -\@lowpenalty
\@itempenalty     -\@lowpenalty
%    \end{macrocode}
%
% \subsubsection{Marken}
%
% F"ur die numerierten Listenumgebungen m"ussen Marken bzw. Numerierungen
% festgelegt werden.
%    \begin{macrocode}
\renewcommand\theenumi{\arabic{enumi}}
\renewcommand\theenumii{\alph{enumii}}
\renewcommand\theenumiii{\roman{enumiii}}
\renewcommand\theenumiv{\Alph{enumiv}}
\newcommand\labelenumi{\theenumi.}
\newcommand\labelenumii{(\theenumii)}
\newcommand\labelenumiii{\theenumiii.}
\newcommand\labelenumiv{\theenumiv.}
\renewcommand\p@enumii{\theenumi}
\renewcommand\p@enumiii{\theenumi(\theenumii)}
\renewcommand\p@enumiv{\p@enumiii\theenumiii}
\newcommand\labelitemi{$\m@th\bullet$}
\newcommand\labelitemii{\normalfont\bfseries --}
\newcommand\labelitemiii{$\m@th\triangleright$}
\newcommand\labelitemiv{$\m@th\cdot$}
%    \end{macrocode}
%
% \subsubsection{Definition der Umgebungen}
%
%  \begin{environment}{description}
% Die |description|-Umgebung dient der Beschreibung von einzelnen
% Begriffen. Der Begriff aus dem optionalen Argument des |\item|-Befehls
% wird in einem speziellen Font, dem |descfont|, gesetzte.
%    \begin{macrocode}
\newenvironment{description}
               {\list{}{\labelwidth\z@ \itemindent-\leftmargin
                        \let\makelabel\descriptionlabel}}
               {\endlist}
\newcommand\descriptionlabel[1]{\hspace\labelsep
                                \descfont #1}
%    \end{macrocode}
%  \end{environment}
%
%  \begin{environment}{labeling}
% Die |labeling|-Umgebung ist eine Erweiterung des \textsf{Script} Pakets.
% Sie erwartet ein optionales und ein normales Argument. Das optionale
% Argument beschreibt einen speziellen Trenntext zwischen |\item|-Marke und
% |\item|-Beschreibung. Das eigentliche Argument wird f"ur die Ermittlung
% der Einr"uckung des Beschreibungstextes bzw. des Trenntextes ben"otigt.
%    \begin{macrocode}
\newenvironment{labeling}[2][]
               {\def\sc@septext{#1}
                \list{}{\settowidth{\labelwidth}{#2#1}
                        \leftmargin\labelwidth \advance\leftmargin by \labelsep
                        \let\makelabel\labelinglabel}}
               {\endlist}
\newcommand\labelinglabel[1]{#1\hfil\sc@septext}
%    \end{macrocode}
%  \end{environment}
%
% \changes{v2.1a}{1994/10/29}{"`Abstract"' verschoben}
%  \begin{environment}{verse}
% Die Verse-Umgebung ist f"ur Zitate in Gedichtform und "ahnliches gedacht.
%    \begin{macrocode}
\newenvironment{verse}
               {\let\\=\@centercr
                \list{}{\itemsep      \z@
                        \itemindent   -1.5em%
                        \listparindent\itemindent
                        \rightmargin  \leftmargin
                        \advance\leftmargin 1.5em}%
                \item[]}
               {\endlist}
%    \end{macrocode}
%  \end{environment}
%
%  \begin{environment}{quotation}
%  \begin{environment}{quote}
% Die |quotation|- und die |quote|-Umgebung erlauben rechts und links
% einger"uckte Passagen. Abs"atze werden entweder in der ersten Zeile
% zus"atzlich einger"uckt oder durch vertikalen Abstand markiert.
%    \begin{macrocode}
\newenvironment{quotation}
               {\list{}{\listparindent 1em%
                        \itemindent    \listparindent
                        \rightmargin   \leftmargin
                        \parsep        \z@ \@plus\p@}%
                \item[]}
               {\endlist}
\newenvironment{quote}
               {\list{}{\rightmargin\leftmargin}%
                \item[]}
               {\endlist}
%    \end{macrocode}
%  \end{environment}
%  \end{environment}
%
% \subsection{Abstract (Zusammenfassung)}
%  \begin{environment}{abstract}
% |scrartcl| und |scrreprt| bieten die M"oglichkeit einer Zusammenfassung,
% eines sogenannten Abstracts. Wenn eine Titelseite verlangt wurde,
% wird auch die Zusammenfassung auf eine eigene Seite gesetzt.
%
% |scrbook| kennt kein Abstract.
%    \begin{macrocode}
%<*!scrbook>
\if@titlepage
 \newenvironment{abstract}{%
     \titlepage
     \null\vfil
     \if@abstrt
     \begin{center}
       \sectfont \abstractname
     \end{center}\fi}
    {\par\vfil\null\endtitlepage}
\else
 \newenvironment{abstract}{%
     \if@twocolumn\if@abstrt
       \section*{\abstractname}\fi%
     \else
       \if@abstrt
       \small
       \begin{center}%
         {\sectfont \abstractname\vspace{-.5em}\vspace{\z@}}%
       \end{center}\fi%
       \quotation
     \fi}
     {\if@twocolumn\else\endquotation\fi}
\fi
%</!scrbook>
%    \end{macrocode}
%  \end{environment}
%
% \subsection{Umgebung f"ur die Titelseite}
%
%  \begin{environment}{titlepage}
% Die Titelseite bedarf ebenfalls einer gesonderter Umgebung. Beim
% zweispaltigen Layout soll die Titelseite z.B. einspaltig gedruckt werden.
%    \begin{macrocode}
\newenvironment{titlepage}
    {%
%<!scrartcl>      \cleardoublepage
      \if@twocolumn
        \@restonecoltrue\onecolumn
      \else
        \@restonecolfalse\newpage
      \fi
      \thispagestyle{empty}%
      \if@compatibility
        \setcounter{page}{0}
      \fi}%
    {\if@restonecol\twocolumn \else \newpage \fi
    }
%    \end{macrocode}
%  \end{environment}
%
% \subsection{Randmarkierung}
%  \begin{macro}{\marginline}
% Das \textsf{Script} Paket stellt zus"atzlich ein Randzeilenmakro zur
% Verf"ugung, das je nach gerader oder ungerader Seite in doppelseitigen
% Layout rechts- oder linksb"undig gesetzt werden mu"s.
%    \begin{macrocode}
\newcommand\marginline[1]{\marginpar%
  {\if@twoside \ifodd\c@page \raggedright \else \raggedleft \fi
   \else \raggedright \fi #1}}
%    \end{macrocode}
%  \end{macro}
%
% \subsection{Anhang}
%  \begin{macro}{\appendix}
% Wird der Anhang aktiviert, so werden Kapitel zuk"unftig mit Buchstaben
% "`numeriert"'.
% \changes{v2.2d}{1995/05/28}{\texttt{scrartcl} hat keinen Z"ahler f"ur
%                             chapter}
%    \begin{macrocode}
\newcommand\appendix{\par
%<*scrartcl>
  \setcounter{section}{0}%
  \setcounter{subsection}{0}%
  \renewcommand\thesection{\Alph{section}}}
%</scrartcl>
%<*scrreprt|scrbook>
  \setcounter{chapter}{0}%
  \setcounter{section}{0}%
  \renewcommand\@chapapp{\appendixname}%
  \renewcommand\thechapter{\Alph{chapter}}}
%</scrreprt|scrbook>
%    \end{macrocode}
%  \end{macro}
%
% \subsection{Flie"sumgebungen}
%
% F"ur die Flie"sumgebungen m"ussen verschiedene Konstanten definiert werden,
% die Aufteilung zwischen Text und Flie"sumgebung und "ahnliches regeln.
%
%  \begin{environment}{figure}
% \changes{v2.2c}{1995/05/25}{Abbildungsausgabe auf CJK umgestellt}
% Zun"achst werden "`figures"', also Abbildungen behandelt.
%    \begin{macrocode}
\setlength\arraycolsep{5\p@}
\setlength\tabcolsep{6\p@}
\setlength\arrayrulewidth{.4\p@}
\setlength\doublerulesep{2\p@}
\setlength\tabbingsep{\labelsep}
\skip\@mpfootins = \skip\footins
\setlength\fboxsep{3\p@}
\setlength\fboxrule{.4\p@}
%<!scrartcl>\@addtoreset{equation}{chapter}
\renewcommand\theequation{%
%<!scrartcl>                          \thechapter.%
                          \arabic{equation}}
%<!scrartcl>\newcounter{figure}[chapter]
%<scrartcl>\newcounter{figure}
\renewcommand\thefigure{%
%<!scrartcl>                        \thechapter.%
                        \@arabic\c@figure}
\def\fps@figure{tbp}
\def\ftype@figure{1}
\def\ext@figure{lof}
\def\fnum@figure{\figureformat}
\newenvironment{figure}
               {\@float{figure}}
               {\end@float}
\newenvironment{figure*}
               {\@dblfloat{figure}}
               {\end@dblfloat}
%    \end{macrocode}
%  \end{environment}
%
%  \begin{environment}{table}
% \changes{v2.2c}{1995/05/25}{Tabellenausgabe auf CJK umgestellt}
% Auch verschiebbare Tabellen sind m"oglich:
%    \begin{macrocode}
%<scrartcl>\newcounter{table}
%<!scrartcl>\newcounter{table}[chapter]
\renewcommand\thetable{%
%<!scrartcl>                       \thechapter.%
                       \@arabic\c@table}
\def\fps@table{tbp}
\def\ftype@table{2}
\def\ext@table{lot}
\def\fnum@table{\tableformat}
\newenvironment{table}
               {\@float{table}}
               {\end@float}
\newenvironment{table*}
               {\@dblfloat{table}}
               {\end@dblfloat}
%    \end{macrocode}
%  \end{environment}
%
%  \begin{macro}{\caption}
% \changes{v2.2c}{1995/05/25}{Flie"stitel auf CJK umgestellt}
% Es ist m"oglich, die Flie"sumgebungen mit einem Titel und einer Beschreibung
% zu versehen:
%    \begin{macrocode}
\newlength\abovecaptionskip
\newlength\belowcaptionskip
\setlength\abovecaptionskip{10\p@}
\setlength\belowcaptionskip{0\p@}
\long\def\@makecaption#1#2{%
  \vskip\abovecaptionskip
  \setbox\@tempboxa\hbox{{\caplabelfont #1\captionformat\capfont #2}}%
  \ifdim \wd\@tempboxa >\hsize
    \@hangfrom{{\caplabelfont #1\captionformat}}{\capfont #2\par}
  \else
    \hbox to\hsize{\hfil\box\@tempboxa\hfil}%
  \fi
  \vskip\belowcaptionskip}
%    \end{macrocode}
%  \end{macro}
%
% \subsection{"`Alte"' Font-Auswahlbefehle}
%
%  \begin{macro}{\rm}
%  \begin{macro}{\sf}
%  \begin{macro}{\tt}
%  \begin{macro}{\bf}
%  \begin{macro}{\it}
%  \begin{macro}{\sl}
%  \begin{macro}{\sc}
%  \begin{macro}{\sfb}
% \changes{v2.2c}{1995/05/25}{nicht mehr mathematisch}
% Um die Umstellung von \LaTeX\ auf \LaTeXe\ zu erleichtern, gibt es
% die alten Font-Auswahlbefehle |\rm|, |\sf|, |\tt|, |\bf|, |\it|, |\sl|
% und |\sc| auch in den \emph{classes}. Es ist zu beachten, da"s diese
% Befehle hier nach dem alten Fontauswahlverfahren arbeiten. Es werden
% also immer alle Parameter zugleich ge"andert. Somit ist zu empfehlen,
% da"s statt dieser Befehle zuk"unftig in der Regel die neuen
% |\text..|-Befehle verwendet werden.
%
% Der aus der \textsf{Script 2.0}-Familie bekannte Befehl |\sfb| ist hier
% ebenfalls definiert. Im Kompatibilit"atsmodus arbeitet er aber bewu"st
% anders!
%    \begin{macrocode}
\DeclareOldFontCommand{\rm}{\normalfont\rmfamily}{\mathrm}
\DeclareOldFontCommand{\sf}{\normalfont\sffamily}{\mathsf}
\DeclareOldFontCommand{\tt}{\normalfont\ttfamily}{\mathtt}
\DeclareOldFontCommand{\bf}{\normalfont\bfseries}{\mathbf}
\DeclareOldFontCommand{\it}{\normalfont\itshape}{\mathit}
\DeclareOldFontCommand{\sl}{\normalfont\slshape}{\@nomath\sl}
\DeclareOldFontCommand{\sc}{\normalfont\scshape}{\@nomath\sc}
\if@compatibility               % mk 941012
    \newcommand\sfb{\sf\bf}     % schlimme Kruecke
\else                           %
    \DeclareOldFontCommand{\sfb}{\normalfont\sffamily\bfseries}{\@nomath\sfb} %
\fi                             %
%    \end{macrocode}
%  \end{macro}
%  \end{macro}
%  \end{macro}
%  \end{macro}
%  \end{macro}
%  \end{macro}
%  \end{macro}
%  \end{macro}
%
% \subsection{Font-Variablen}
%  \begin{macro}{\descfont}
%  \begin{macro}{\sectfont}
%  \begin{macro}{\headfont}
%  \begin{macro}{\capfont}
%  \begin{macro}{\caplabelfont}
% Das \textsf{Script}-Paklet definiert einige Font-Variablen, f"ur
% verschiedene Gestaltungsbereiche wie "Uberschriften, Unterschriften oder
% die Paginierung.
%    \begin{macrocode}
\newcommand\descfont{\sffamily\bfseries}
\newcommand\sectfont{\sffamily\bfseries}
\newcommand\pnumfont{\normalfont}
\newcommand\headfont{\slshape}
\newcommand\capfont{\normalfont}
\newcommand\caplabelfont{\normalfont}
\renewcommand{\cal}{\protect\pcal}
\newcommand{\pcal}{\@fontswitch{\relax}{\mathcal}}
\renewcommand{\mit}{\protect\pmit}
\newcommand{\pmit}{\@fontswitch{\relax}{\mathnormal}}
%    \end{macrocode}
%  \end{macro}
%  \end{macro}
%  \end{macro}
%  \end{macro}
%  \end{macro}
%
% \subsection{Inhaltverzeichnis}
%
%  \begin{macro}{\tableofcontents}
% F"ur das Inhaltsverzeichnis m"ussen die Eintr"age f"ur die
% unterschiedlichen Kapiteleinteilungen definiert werden.
%    \begin{macrocode}
\newcommand\@pnumwidth{1.55em}
\newcommand\@tocrmarg {2.55em}
\newcommand\@dotsep{4.5}
\setcounter{tocdepth}{2}
\newcommand\tableofcontents{%
%<*scrartcl>
    \section*{\contentsname
        \@mkboth{\contentsname}{\contentsname}}%
    \@starttoc{toc}%
%</scrartcl>
%<*scrreprt|scrbook>
    \if@twocolumn
      \@restonecoltrue\onecolumn
    \else
      \@restonecolfalse
    \fi
    \chapter*{\contentsname
        \@mkboth{\contentsname}{\contentsname}}%
    \@starttoc{toc}%
    \if@restonecol\twocolumn\fi
%</scrreprt|scrbook>
    }
\newcommand\l@part[2]{%
  \ifnum \c@tocdepth >-2\relax
%<scrartcl>    \addpenalty{\@secpenalty}%
%<!scrartcl>    \addpenalty{-\@highpenalty}%
    \addvspace{2.25em \@plus\p@}%
    \begingroup
      \setlength\@tempdima{3em}%
      \parindent \z@ \rightskip \@pnumwidth
      \parfillskip -\@pnumwidth
      {\leavevmode
       \large \sectfont #1\hfil \hbox to\@pnumwidth{\hss #2}}\par
       \nobreak
%<scrartcl>       \if@compatibility
         \global\@nobreaktrue
         \everypar{\global\@nobreakfalse\everypar{}}
%<scrartcl>       \fi
    \endgroup
  \fi}
%<*scrartcl>
\newcommand\l@section[2]{%
  \ifnum \c@tocdepth >\z@
    \addpenalty{\@secpenalty}%
    \addvspace{1.0em \@plus\p@}%
    \setlength\@tempdima{1.5em}%
    \begingroup
      \parindent \z@ \rightskip \@pnumwidth
      \parfillskip -\@pnumwidth
      \leavevmode \sectfont
      \advance\leftskip\@tempdima
      \hskip -\leftskip
      #1\nobreak\hfil \nobreak\hbox to\@pnumwidth{\hss #2}\par
    \endgroup
  \fi}
%</scrartcl>
%<*scrreprt|scrbook>
\newcommand\l@chapter[2]{%
  \ifnum \c@tocdepth >\m@ne
    \addpenalty{-\@highpenalty}%
    \vskip 1.0em \@plus\p@
    \setlength\@tempdima{1.5em}%
    \begingroup
      \parindent \z@ \rightskip \@pnumwidth
      \parfillskip -\@pnumwidth
      \leavevmode \sectfont
      \advance\leftskip\@tempdima
      \hskip -\leftskip
      #1\nobreak\hfil \nobreak\hbox to\@pnumwidth{\hss #2}\par
      \penalty\@highpenalty
    \endgroup
  \fi}
\newcommand\l@section      {\@dottedtocline{1}{1.5em}{2.3em}}
%</scrreprt|scrbook>
%<*scrartcl>
\newcommand\l@subsection   {\@dottedtocline{2}{1.5em}{2.3em}}
\newcommand\l@subsubsection{\@dottedtocline{3}{3.8em}{3.2em}}
\newcommand\l@paragraph    {\@dottedtocline{4}{7.0em}{4.1em}}
\newcommand\l@subparagraph {\@dottedtocline{5}{10em}{5em}}
%</scrartcl>
%<*scrreprt|scrbook>
\newcommand\l@subsection   {\@dottedtocline{2}{3.8em}{3.2em}}
\newcommand\l@subsubsection{\@dottedtocline{3}{7.0em}{4.1em}}
\newcommand\l@paragraph    {\@dottedtocline{4}{10em}{5em}}
\newcommand\l@subparagraph {\@dottedtocline{5}{12em}{6em}}
%</scrreprt|scrbook>
\newcommand\listoffigures{%
%<*scrartcl>
    \section*{\listfigurename
      \@mkboth{\listfigurename}%
              {\listfigurename}}%
    \@starttoc{lof}%
%</scrartcl>
%<*scrreprt|scrbook>
    \if@twocolumn
      \@restonecoltrue\onecolumn
    \else
      \@restonecolfalse
    \fi
    \chapter*{\listfigurename
      \@mkboth{\listfigurename}%
              {\listfigurename}}%
    \@starttoc{lof}%
    \if@restonecol\twocolumn\fi
%</scrreprt|scrbook>
    }
\newcommand\l@figure{\@dottedtocline{1}{1.5em}{2.3em}}
\newcommand\listoftables{%
%<*scrartcl>
    \section*{\listtablename
      \@mkboth{\listtablename}{\listtablename}}%
    \@starttoc{lot}%
%</scrartcl>
%<*scrreprt|scrbook>
    \if@twocolumn
      \@restonecoltrue\onecolumn
    \else
      \@restonecolfalse
    \fi
    \chapter*{\listtablename
      \@mkboth{\listtablename}{\listtablename}}%
    \@starttoc{lot}%
    \if@restonecol\twocolumn\fi
%</scrreprt|scrbook>
    }
\let\l@table\l@figure
%    \end{macrocode}
%  \end{macro}
%
% \subsection{Das Literaturverzeichnis}
%
%  \begin{environment}{thebibliography}
%  \begin{macro}{\bibitem}
%  \changes{2.2a}{1995/02/01}{In \texttt{scrartcl} {\cmd\bibname}
%                             vollst"andig durch {\cmd\refname} ersetzt}
% Nun werden noch die Umgebung f"ur das Literaturverzeichnis und der Befehl
% f"ur die einzelnen Eintr"age definiert.
%    \begin{macrocode}
\newdimen\bibindent
\bibindent=1.5em
\newenvironment{thebibliography}[1]
%<scrartcl>     {\section*{\refname
%<!scrartcl>     {\chapter*{\bibname
%<scrartcl>        \@mkboth{\refname}{\refname}}%
%<!scrartcl>        \@mkboth{\bibname}{\bibname}}%
      \list{\@biblabel{\arabic{enumiv}}}%
           {\settowidth\labelwidth{\@biblabel{#1}}%
            \leftmargin\labelwidth
            \advance\leftmargin\labelsep
            \if@openbib
              \advance\leftmargin\bibindent
              \itemindent -\bibindent
              \listparindent \itemindent
              \parsep \z@
            \fi
            \usecounter{enumiv}%
            \let\p@enumiv\@empty
            \renewcommand\theenumiv{\arabic{enumiv}}}%
      \if@openbib
        \renewcommand\newblock{\par}
      \else
        \renewcommand\newblock{\hskip .11em \@plus.33em \@minus.07em}%
      \fi
      \sloppy\clubpenalty4000\widowpenalty4000%
      \sfcode`\.=\@m}
     {\def\@noitemerr
       {\@latex@warning{Empty `thebibliography' environment}}%
      \endlist}
\newcommand\newblock{}
%    \end{macrocode}
%  \end{macro}
%  \end{environment}
%
% \subsection{Index}
%  \begin{environment}{theindex}
% Ein Index ist ebenfalls m"oglich. Dieser ist wie "ublich definiert.
%    \begin{macrocode}
\newenvironment{theindex}
               {\if@twocolumn
                  \@restonecolfalse
                \else
                  \@restonecoltrue
                \fi
                \columnseprule \z@
                \columnsep 35\p@
%<scrartcl>                \twocolumn[\section*{\indexname}]%
%<!scrartcl>                \twocolumn[\@makeschapterhead{\indexname}]%
                \@mkboth{\indexname}%
                        {\indexname}%
                \thispagestyle{plain}\parindent\z@
                \parskip\z@ \@plus .3\p@\relax
                \let\item\@idxitem}
               {\if@restonecol\onecolumn\else\clearpage\fi}
\newcommand\@idxitem  {\par\hangindent 40\p@}
\newcommand\subitem   {\par\hangindent 40\p@ \hspace*{20\p@}}
\newcommand\subsubitem{\par\hangindent 40\p@ \hspace*{30\p@}}
\newcommand\indexspace{\par \vskip 10\p@ \@plus5\p@ \@minus3\p@\relax}
%    \end{macrocode}
%  \end{environment}
%
% \subsection{Fu"snoten}
%
% Fu"snoten sind etwas abweichend definiert.
%    \begin{macrocode}
\renewcommand\footnoterule{%
  \kern-3\p@
  \hrule width .4\columnwidth
  \kern 2.6\p@}
%<!scrartcl>\@addtoreset{footnote}{chapter}
\newdimen\sc@temp
\long\def\@makefntext#1{%
  \noindent \sc@temp\columnwidth%
  \advance\sc@temp by -1.5em%
  \hbox to 1em{\hss$^{\@thefnmark}$}\hskip .5em%
  \parbox[t]{\sc@temp}{\parindent 0pt\parskip 0pt\hskip -.5em #1}}
%    \end{macrocode}
%
% \subsection{Standardbezeichnungen}
%
% Diese werden von |german.sty| ohnehin "uberschrieben.
%    \begin{macrocode}
\newcommand\contentsname{Contents}
\newcommand\listfigurename{List of Figures}
\newcommand\listtablename{List of Tables}
%<scrartcl>\newcommand\refname{References}
%<!scrartcl>\newcommand\bibname{Bibliography}
\newcommand\indexname{Index}
\newcommand\figurename{Figure}
\newcommand\tablename{Table}
\newcommand\partname{Part}
%<!scrartcl>\newcommand\chaptername{Chapter}
\newcommand\appendixname{Appendix}
\newcommand\abstractname{Abstract}
\newcommand\today{\ifcase\month\or
  January\or February\or March\or April\or May\or June\or
  July\or August\or September\or October\or November\or December\fi
  \space\number\day, \number\year}
%    \end{macrocode}
%
% \subsection{Erweiterung der Internationalisierung}
% \changes{v2.2c}{1995/05/25}{Anpassung an CJK von Werner Lemberg}
%
% Die Standardnamen wie |\figurename| etc. sind nicht immer ausreichend, da
% manche Sprachen Z"ahlw"orter vor oder nach dem jeweiligen Z"ahler einf"ugen
% m"ussen (man denke da sogar im Deutschen an "`Abbildung~1"' und "`Erste
% Abbildung"'). Desweiteren werden bei manchen Sprachen die Zwischenr"aume
% anders gesetzt bzw. sogar ganz unterdr"uckt.
%
% Es gibt drei Ebenen, die man modifizieren kann, um verschiedenste Sprachen
% zu implementieren: Ebene~1 besteht aus den hinl"anglich bekannten Makros wie
% |\figurename| und alle weiteren Makros, die z.B. |german.sty| modifiziert.
% Desweiteren k"onnen die Makros |\sectfont| etc. etwaige zus"atzliche Fonts
% aktivieren. Ebene~2 ist die zus"atzliche Adaptierung von den Z"ahlern selbst
% (|\thesection| k"onnte z.B. chinesische Schriftzeichen ansprechen anstelle
% von arabischen Ziffern). Die allgemeinste Form der dritten Ebene besteht aus
% den Makros |\chaptermarkformat|, |\sectionmarkformat|,
% |\subsectionmarkformat|, |\partformat|, |\chapterformat|, |\figureformat|,
% |\tableformat| und |\captionformat|, welche die "Anderung der Reihenfolge von
% Z"ahler und Titel sowie die genaue Kontrolle der Zwischenr"aume etc.
% erm"oglichen.
%
% F"ur die g"angigen Sprachen k"onnen alle Makros f"ur die dritte Ebene
% identisch definiert werden. Bei Verwendung von "`exotischen"' Sprachen,
% aber auch speziellen Darstellungen in den g"angigen Sprachen k"onnen diese
% Makros umdefiniert werden.
%
% Das Konzept f"ur der Internationalisierung mit der dritten Ebene wurde
% urspr"unglich von Werner Lemberg\footnote{Werner Lember ist im InterNet
% unter \texttt{A7621GAC@AWIUNI11.EDVZ.UNIVIE.AC.AT} zu erreichen.}
% entwickelt. Sein CJK-Paket
% (\textbf{C}hinesisch, \textbf{J}apanisch, \textbf{K}oreanisch), baut auf
% diesem Konzept auf. Damit ist \textsf{KOMA-Script} f"ur alle m"oglichen
% Sprachanpassungen bestens ge"ustet.
%
%  \begin{macro}{\chaptermarkformat}
%  \begin{macro}{\sectionmarkformat}
%  \begin{macro}{\subsectionmarkformat}
% Diese drei Makros werden f"ur die Markierungen innerhalb der pagestyles
% in |\chaptermark|, |\sectionmark| und |\subsectionmark| verwendet.
% Die drei Makros sind bewu"st unabh"angig voneinander definiert.
%    \begin{macrocode}
%<*scrreprt|scrbook>
\newcommand\chaptermarkformat    {\thechapter\ }
\newcommand\sectionmarkformat    {\thesection\ }
%</scrreprt|scrbook>
%<*scrartcl>
\newcommand\sectionmarkformat    {\thesection\ }
\newcommand\subsectionmarkformat {\thesubsection\ }
%</scrartcl>
%    \end{macrocode}
%  \end{macro}
%  \end{macro}
%  \end{macro}
%  \begin{macro}{\partformat}
%  \begin{macro}{\chapterformat}
%  \begin{macro}{\figureformat}
%  \begin{macro}{\tableformat}
%  \begin{macro}{\captionformat}
% Diese f"unf Makros werden nun innerhalb der entsprechenden "Uberschriften,
% Unterschriften, Titel etc. verwendet.
%    \begin{macrocode}
\newcommand\partformat    {\partname~\thepart}
%<*scrreprt|scrbook>
\newcommand\chapterformat {\thechapter\ }
%</scrreprt|scrbook>
\newcommand\figureformat  {\figurename~\thefigure}
\newcommand\tableformat   {\tablename~\thetable}
\newcommand\captionformat {:\ }
%    \end{macrocode}
%  \end{macro}
%  \end{macro}
%  \end{macro}
%  \end{macro}
%  \end{macro}
%
% \subsection{Grundeinstellungen}
%
%    \begin{macrocode}
\setlength\columnsep{10\p@}
\setlength\columnseprule{0\p@}
%<!scrbook>\pagestyle{plain}
%<scrbook>\pagestyle{headings}
\pagenumbering{arabic}      % Arabic page numbers
%<*!scrbook>
\if@twoside
\else
     \raggedbottom
\fi
%</!scrbook>
\if@twocolumn
  \twocolumn
  \sloppy
  \flushbottom
\else
  \onecolumn
\fi
%    \end{macrocode}
%
% \subsection{Das Ende}
%
%    \begin{macrocode}
%</scrartcl|scrreprt|scrbook>
%    \end{macrocode}
%
% \IndexPrologue{\section*{Index}
%                \markboth{Index}{Index}
%                Die kursiven Zahlen geben die Seiten an, auf denen
%                der entsprechende Eintrag beschrieben ist.
%                Die unterstrichenden Zahlen geben die Stelle der
%                Definition des Eintrags an.
%                Alle anderen Zahlen benennen Stellen, an denen der
%                entsprechende Eintrag verwendet ist.
%                \vspace{1em}\noindent}
%
% \GlossaryPrologue{\section*{"Anderungsverzeichnis}
%                   \markboth{"Anderungsverzeichnis}{"Anderungsverzeichnis}
%                   \addcontentsline{toc}{section}{"Anderungsverzeichnis}
%                   Die erste Version des \textsf{KOMA-Script} Pakets
%                   stammt vom 7.\,Juli~1994. Es werden nur die
%                   "Anderungen ab diesem Zeitpunkt dokumentiert.\par%
%                   \vspace{1em}\noindent}
%
% \Finale
%
\endinput