% \CheckSum{142}
% \iffalse meta-comment
% ======================================================================
% scrkernel-compatibility.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-compatibility.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-compatibility.dtx 1512 2013-11-11 10:35:04Z mjk $
%<*driver>
% \fi
\ProvidesFile{scrkernel-compatibility.dtx}[2013/11/05 v3.11b KOMA-Script 
                                                         (compatibility)]
% \iffalse
\documentclass{scrdoc}
\usepackage[english,ngerman]{babel}
\usepackage[latin1]{inputenc}
\CodelineIndex
\RecordChanges
\GetFileInfo{scrkernel-compatibility.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{Kompatibilität mit den Standardklassen oder 
%  zu früheren Versionen}
%
% \KOMAScript{} ist bezüglich der Anwenderschnittstelle von vornherein
% aufwärtskompatibel mit den Standardklassen. Allerdings unterscheiden sich
% diverse Voreinstellungen doch sehr erheblich von denen der
% Standardklassen. In Zukunft soll man beim Laden der Klassen (nicht jedoch
% später!) mit Option \texttt{emulatestandardclasses} die Voreinstellungen
% anpassen können. Dabei wird jedoch nicht komplette Umbruchkompatibilität mit
% den Standardklassen erreicht, sondern nur einige Einstellungen werden
% angepasst.
%
%
% Manchmal ist es sinnvoll, dass sich eine neue Version von \KOMAScript{}
% etwas anders verhält als frühere Versionen. Gleichzeitig ist es aber für den
% Anwender manchmal auch notwendig, dass sich neue Versionen ganz genau so
% verhalten wie frühere. Daher wird eine Option geboten, mit der man die
% Kompatibilität selbst steuern kann. Voreingestellt ist jeweils maximale
% Kompatibilität.
%
% \StopEventually{\PrintIndex\PrintChanges}
%
% \iffalse
%<*option>
% \fi
%
% \subsection{Optionen für die Kompatibilität mit den Standardklassen}
% Hier gibt es derzeit nur eine Optione, die nur beim Laden aber nicht zur
% Laufzeit verwendet werden kann:
%
% \begin{option}{emulatestandardclasses}
%   \changes{v3.12}{2013/11/11}{Neue Option}
%   Diese Option muss sich auf diverse andere Einstellungen auswirken und
%   sollte deshalb so früh wie möglich verwendet werden. Vieles ändert sie
%   sofort, manches aber auch erst später.
% \begin{macro}{\if@scr@emulatestandardclasses}
%   \changes{v3.12}{2013/11/11}{Neuer Schalter (intern)}
%   Für die späteren Änderungen wird ein Schalter benötigt, der jedoch nicht
%   wie gewohnt geändert werden kann.
%    \begin{macrocode}
%<*class&!letter>
\newif\if@scr@emulatestandardclasses
\let\scr@emulatestandardclassestrue\relax
\let\scr@emulatestandardclassesfalse\relax
\DeclareOption{emulatestandardclasses}{%
  \let\if@scr@emulatestandardclasses\iftrue
  \KOMAExecuteOptions{%
    fontsize=10pt,%
%<book|report>    headings=standardclasses,%
    cleardoublepage=current
  }%
  \newcommand*{\defaultpapersize}{letter}%
  \AtEndOfClass{%
    \setkomafont{descriptionlabel}{\bfseries}%
    \setkomafont{dictum}{\normalfont\small}%
    \setkomafont{caption}{}%
    \setkomafont{captionlabel}{}%
    \setcapindent{0pt}%
    \RequirePackage[pagestyleset=standard,markcase=upper]{scrlayer-scrpage}%
    \PreventPackageFromLoading{scrpage2}%
    \setkomafont{pagenumber}{\normalfont}%
    \setkomafont{pageheadfoot}{\normalfont}%
    \cfoot[\pagemark]{}%
%<article|report>    \pagestyle{plain}%
  }%
}
%</class&!letter>
%    \end{macrocode}
% \end{macro}
% \end{option}
%
%
% \subsection{Option für die Kompatibilität zu früheren Versionen}
% Die gesamte Kompatibilitätssteuerung erfolgt mit einer einzigen Option, bei
% der man angibt, zu welcher Version Kompatibilität hergestellt werden
% soll. Dies bedeutet ggf. dann auch, dass einzelne neuere Möglichkeiten nicht
% zur Verfügung stehen.
% \changes{v3.01b}{2008/12/09}{Kompatibilitätseinstellungen werden in Paketen
%   nur definiert, wenn sie noch nicht vorhanden sind}
%
% \begin{option}{version}
%   \changes{v2.9u}{2005/03/05}{Neue Option}
%   \changes{v2.95}{2006/03/16}{Option kann nur beim Laden der Klasse gesetzt
%     werden}
% \begin{macro}{\scr@compatibility}
%   \changes{v2.9u}{2005/03/05}{Neues Macro}
%   \changes{v3.01a}{2008/11/20}{Voreinstellung auf \textit{last} geändert}
% \begin{macro}{\scr@ta@compatibility}
%   \changes{v3.01b}{2008/12/09}{Neues Macro}
% In einigen Fällen sind Verbesserungen nicht kompatibel mit früheren
% Versionen. Deshalb sind solche Verbesserungen nur verfügbar, wenn mit diesem
% Schalter die neue Version ausgewählt wird. Aber es gilt: Entweder kompatibel
% oder in allen Dingen neu. Mischmasch machen wir nicht. Die aktuell
% eingestellte Kompatibilität wird in \cs{scr@compatibility} als Zahl
% gespeichert. In den Makros \cs{scr@v@\emph{Version}} werden die
% zugehörigen Nummern gespeichert.
%    \begin{macrocode}
%<class>\newcommand*
%<package>\providecommand*
  {\scr@compatibility}{\scr@v@last}
%<typearea>\newcommand*{\scr@ta@compatibility}{\scr@compatibility}
\KOMA@key{version}[last]{%
  \scr@ifundefinedorrelax{scr@v@#1}{%
    \def\scr@compatibility{0}%
%<class>    \ClassWarningNoLine{\KOMAClassName}{%
%<package>    \PackageWarningNoLine{%
%<extend>      scrextend%
%<typearea>      typearea%
%<package>    }{%
      You have set option `version' to value `#1', but\MessageBreak
      this value of version is not supported.\MessageBreak
      Because of this, version was set to `first'%
    }%
  }{%
%<class>    \ClassInfoNoLine{\KOMAClassName}{%
%<package>    \PackageInfoNoLine{scrextend}{%
      Switching compatibility level to `#1'%
    }%
%<class|extend>    \edef\scr@compatibility{\@nameuse{scr@v@#1}}%
%<typearea>    \edef\scr@ta@compatibility{\@nameuse{scr@v@#1}}%
    \FamilyKeyStateProcessed
  }%
}
%    \end{macrocode} 
% Eine zusätzliche Bedingung gibt es noch: Die Kompatibilität kann nur beim
% Laden gesetzt werden. Danach geht es nicht mehr. Ausnahmsweise wird hier
% auch nicht mit \cs{FamilyKeyState} signalisiert, sondern direkt ein Fehler
% ausgegeben.
%    \begin{macrocode}
%<class>\AtEndOfClass{%
%<package>\AtEndOfPackage{%
  \KOMA@key{version}[]{%
%<class>    \ClassError{\KOMAClassName}{%
%<package>    \PackageError{%
%<extend>      scrextend%
%<typearea>      typearea%
%<package>    }{%
      Option `version' too late%
    }{%
      Option `version' may be set only while loading the 
%<class>      class.\MessageBreak
%<package>      package.\MessageBreak
      But you've tried to set it up later.%
    }%
    \FamilyKeyStateProcessed
  }%
}
%    \end{macrocode}
%
% \begin{macro}{\scr@v@first}
%   \changes{v2.9u}{2005/03/05}{Neues Macro}
% \begin{macro}{\scr@v@2.9}
%   \changes{v2.9u}{2005/03/05}{Neues Macro}
% \begin{macro}{\scr@v@2.9t}
%   \changes{v2.9u}{2005/03/05}{Neues Macro}
% \begin{macro}{\scr@v@2.95}
%   \changes{v2.95}{2006/03/23}{Neues Macro}
% \begin{macro}{\scr@v@2.95a}
%   \changes{v2.96a}{2006/11/27}{Neues Macro}
% \begin{macro}{\scr@v@2.95b}
%   \changes{v2.96a}{2006/11/27}{Neues Macro}
% \begin{macro}{\scr@v@2.96}
%   \changes{v2.96a}{2006/11/27}{Neues Macro}
% \begin{macro}{\scr@v@2.96a}
%   \changes{v2.96a}{2006/11/27}{Neues Macro}
% \begin{macro}{\scr@v@2.97}
%   \changes{v2.97}{2007/03/02}{Neues Macro}
% \begin{macro}{\scr@v@2.97a}
%   \changes{v2.97a}{2007/03/07}{Neues Macro}
% \begin{macro}{\scr@v@2.97b}
%   \changes{v2.97b}{2007/03/25}{Neues Macro}
% \begin{macro}{\scr@v@2.97c}
%   \changes{v2.97c}{2007/05/12}{Neues Macro}
%   \changes{v2.97d}{2007/10/09}{Wert geändert}
% \begin{macro}{\scr@v@2.97d}
%   \changes{v2.97d}{2007/10/03}{Neues Macro}
%   \changes{v2.97d}{2007/10/09}{Wert geändert}
% \begin{macro}{\scr@v@2.97e}
%   \changes{v2.97e}{2007/11/27}{Neues Macro}
% \begin{macro}{\scr@v@2.98}
%   \changes{v2.98}{2007/12/24}{Neues Macro}
% \begin{macro}{\scr@v@2.98a}
%   \changes{v2.98a}{2008/01/08}{Neues Macro}
% \begin{macro}{\scr@v@2.98b}
%   \changes{v2.98b}{2008/01/30}{Neues Macro}
% \begin{macro}{\scr@v@2.98c}
%   \changes{v2.98c}{2008/02/01}{Neues Macro}
% \begin{macro}{\scr@v@3.00}
%   \changes{v3.00}{2008/11/04}{Neues Macro}
% \begin{macro}{\scr@v@3.01}
%   \changes{v3.01}{2008/11/14}{Neues Macro}
% \begin{macro}{\scr@v@3.01a}
%   \changes{v3.01a}{2008/11/20}{Neues Macro}
% \begin{macro}{\scr@v@3.01b}
%   \changes{v3.01b}{2008/11/24}{Neues Macro}
% \begin{macro}{\scr@v@3.01c}
%   \changes{v3.01c}{2008/12/09}{Neues Macro}
% \begin{macro}{\scr@v@3.02}
%   \changes{v3.02}{2009/01/01}{Neues Macro}
% \begin{macro}{\scr@v@3.02b}
%   \changes{v3.02b}{2009/01/24}{Neues Macro}
% \begin{macro}{\scr@v@3.02c}
%   \changes{v3.02c}{2009/01/28}{Neues Macro}
% \begin{macro}{\scr@v@3.03}
%   \changes{v3.03}{2009/04/01}{Neues Macro}
% \begin{macro}{\scr@v@3.03a}
%   \changes{v3.03a}{2009/04/02}{Neues Macro}
% \begin{macro}{\scr@v@3.03b}
%   \changes{v3.03b}{2009/04/12}{Neues Macro}
% \begin{macro}{\scr@v@3.04}
%   \changes{v3.04}{2009/07/07}{Neues Macro}
% \begin{macro}{\scr@v@3.05}
%   \changes{v3.05}{2009/07/08}{Neues Macro}
% \begin{macro}{\scr@v@3.04a}
%   \changes{v3.04a}{2009/07/24}{Neues Macro}
% \begin{macro}{\scr@v@3.05a}
%   \changes{v3.05a}{2010/03/10}{Neues Macro}
% \begin{macro}{\scr@v@3.06}
%   \changes{v3.06}{2010/06/17}{Neues Macro}
% \begin{macro}{\scr@v@3.07}
%   \changes{v3.07}{2010/09/14}{Neues Macro}
% \begin{macro}{\scr@v@3.08}
%   \changes{v3.08}{2010/10/28}{Neues Macro}
% \begin{macro}{\scr@v@3.08a}
%   \changes{v3.08a}{2011/01/25}{Neues Macro}
% \begin{macro}{\scr@v@3.08b}
%   \changes{v3.08b}{2011/02/22}{Neues Macro}
% \begin{macro}{\scr@v@3.09}
%   \changes{v3.09}{2011/04/02}{Neues Macro}
% \begin{macro}{\scr@v@3.09a}
%   \changes{v3.09a}{2011/04/12}{Neues Macro}
% \begin{macro}{\scr@v@3.10}
%   \changes{v3.10}{2011/08/30}{Neues Macro}
% \begin{macro}{\scr@v@3.10a}
%   \changes{v3.10a}{2012/03/08}{Neues Macro}
% \begin{macro}{\scr@v@3.10b}
%   \changes{v3.10b}{2012/03/13}{Neues Macro}
% \begin{macro}{\scr@v@3.11}
%   \changes{v3.11}{2012/05/15}{Neues Macro}
% \begin{macro}{\scr@v@3.11a}
%   \changes{v3.11a}{2012/05/25}{Neues Macro}
% \begin{macro}{\scr@v@3.11b}
%   \changes{v3.11b}{2012/07/29}{Neues Macro}
% \begin{macro}{\scr@v@3.12}
%   \changes{v3.12}{2013/03/05}{Neues Macro}
% \begin{macro}{\scr@v@last}
%   \changes{v2.9u}{2005/03/05}{Neues Macro}
% Nun die unterschiedlichen möglichen Werte (|\scr@v@last| ist jeweils die
% höchste vorhandene Nummer):
%    \begin{macrocode}
\@namedef{scr@v@first}{0}
\@namedef{scr@v@2.9}{0}
\@namedef{scr@v@2.9t}{0}
\@namedef{scr@v@2.9u}{1}
\@namedef{scr@v@2.95}{2}
\@namedef{scr@v@2.95a}{2}
\@namedef{scr@v@2.95b}{2}
\@namedef{scr@v@2.96}{2}
\@namedef{scr@v@2.96a}{3}
\@namedef{scr@v@2.97}{3}
\@namedef{scr@v@2.97a}{3}
\@namedef{scr@v@2.97b}{3}
\@namedef{scr@v@2.97c}{4}
\@namedef{scr@v@2.97d}{5}
\@namedef{scr@v@2.97e}{6}
\@namedef{scr@v@2.98}{6}
\@namedef{scr@v@2.98a}{6}
\@namedef{scr@v@2.98b}{6}
\@namedef{scr@v@2.98c}{7}
\@namedef{scr@v@3.00}{8}
\@namedef{scr@v@3.01}{8}
\@namedef{scr@v@3.01a}{8}
\@namedef{scr@v@3.01b}{9}
\@namedef{scr@v@3.01c}{9}
\@namedef{scr@v@3.02}{9}
\@namedef{scr@v@3.02b}{9}
\@namedef{scr@v@3.02c}{10}
\@namedef{scr@v@3.03}{10}
\@namedef{scr@v@3.03a}{10}
\@namedef{scr@v@3.03b}{10}
\@namedef{scr@v@3.04}{10}
\@namedef{scr@v@3.04a}{10}
\@namedef{scr@v@3.05}{10}
\@namedef{scr@v@3.05a}{10}
\@namedef{scr@v@3.06}{10}
\@namedef{scr@v@3.07}{10}
\@namedef{scr@v@3.08}{10}
\@namedef{scr@v@3.08a}{10}
\@namedef{scr@v@3.08b}{10}
\@namedef{scr@v@3.09}{10}
\@namedef{scr@v@3.09a}{10}
\@namedef{scr@v@3.10}{10}
\@namedef{scr@v@3.10a}{10}
\@namedef{scr@v@3.10b}{10}
\@namedef{scr@v@3.11}{10}
\@namedef{scr@v@3.11a}{10}
\@namedef{scr@v@3.11b}{10}
\@namedef{scr@v@3.12}{11}
\@namedef{scr@v@last}{11}
%    \end{macrocode}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro} 
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{option}
%
%
% \iffalse
%</option>
%<*body>
% \fi
%
% \subsection{Kompatibilität mit früheren Versionen von \textsf{scrlttr2}}
% In früheren Versionen von \textsf{scrlttr2} gab es weitere Befehle, die
% eventuell von \texttt{lco}-Dateien oder Paketen verwendet werden.
% Gemeldete Inkompatibitlitäten sind nach Möglichkeit zu lösen.
%
% \iffalse
%<*letter>
% \fi
% \begin{macro}{\@setif}
%   \changes{v2.8q}{2001/10/08}{Neu}
%   \changes{v2.95}{2006/03/31}{Nur vor Version 2.95}
% Dies war ein Makro, mit dem man einen Schalter über die symbolischen
% Werte \texttt{true}, \texttt{false}, \texttt{on} und \texttt{off} setzen
% kann. Das erste, optionale Argument war der Name des Schalters ohne Präfix
% "`\texttt{if}"'. Das zweite Argument war der Name der Option und das dritte
% der gewünschte Wert. War das optionale Argument nicht gesetzt oder leer, so
% wurde der Optionenname mit einem vorangestellten "`\texttt{@}"' als Name des
% Schalters verwendet. Dieses Makro wird nun mit Hilfe von \cs{KOMA@set@ifkey}
% nachgebildet. Dadurch ist es nicht absolut fehlerkompatibel, das es nun mehr
% Werte versteht als vorher.
%    \begin{macrocode}
\expandafter\ifnum \@nameuse{scr@v@2.95}>\scr@compatibility\relax
  \newcommand*{\@setif}[2][]{%
    \begingroup
      \edef\@tempa{#1}\ifx\@tempa\@empty
        \def\@tempa{\KOMA@set@ifkey{#2}{@#2}}%
      \else
        \def\@tempa{\KOMA@set@ifkey{#2}{#1}}%
      \fi
    \expandafter\endgroup\@tempa
  }%
\fi
%    \end{macrocode}
% \end{macro}
% \iffalse
%</letter>
% \fi
%
% \iffalse
%</body>
% \fi
%
% \Finale
%
\endinput
%
% end of file `scrkernel-compatibility.dtx'
%%% Local Variables:
%%% mode: doctex
%%% TeX-master: t
%%% End:
