% \CheckSum{146} % \iffalse meta-comment % ====================================================================== % scrkernel-compatibility.dtx % Copyright (c) Markus Kohm, 2006-2014 % % 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-2014 % % 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 1870 2014-12-10 09:04:55Z kohm $ %<*driver> % \fi \ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi \begingroup \def\filedate$#1: #2-#3-#4 #5${\gdef\filedate{#2/#3/#4}} \filedate$Date: 2014-12-10 10:04:55 +0100 (Wed, 10 Dec 2014) $ \def\filerevision$#1: #2 ${\gdef\filerevision{#2}} \filerevision$Revision: 1638 $ \endgroup \ProvidesFile{scrkernel-compatibility.dtx}[\filedate\space v3.13a.\filerevision\space 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} % % \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,% % 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]{}% % \pagestyle{plain}% }% } % % \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} %\newcommand* %\providecommand* {\scr@compatibility}{\scr@v@last} %\newcommand*{\scr@ta@compatibility}{\scr@compatibility} \KOMA@key{version}[last]{% \scr@ifundefinedorrelax{scr@v@#1}{% \def\scr@compatibility{0}% % \ClassWarningNoLine{\KOMAClassName}{% %<*package> \PackageWarningNoLine{% % scrextend% % typearea% % scrletter% }{% % 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'% }% }{% % \ClassInfoNoLine{\KOMAClassName}{% %<*package> \PackageInfoNoLine{% % scrextend% % typearea% % scrletter% }{% % Switching compatibility level to `#1'% }% % \edef\scr@compatibility{\@nameuse{scr@v@#1}}% % \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} %\AtEndOfClass{% %\AtEndOfPackage{% \KOMA@key{version}[]{% % \ClassError{\KOMAClassName}{% %<*package> \PackageError{% % scrextend% % typearea% % scrletter% }{% % Option `version' too late% }{% Option `version' may be set only while loading the % class.\MessageBreak % 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@3.13} % \changes{v3.13}{2014/03/19}{Neues Macro} % \begin{macro}{\scr@v@3.13a} % \changes{v3.13a}{2014/08/07}{Neues Macro} % \begin{macro}{\scr@v@3.14} % \changes{v3.14}{2014/10/28}{Neues Macro} % \begin{macro}{\scr@v@3.15} % \changes{v3.14}{2014/11/20}{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@3.13}{12} \@namedef{scr@v@3.13a}{13} \@namedef{scr@v@3.14}{13} \@namedef{scr@v@3.15}{14} \@namedef{scr@v@last}{14} % \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{macro} % \end{macro} % \end{macro} % \end{macro} % \end{option} % % % \iffalse % %<*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 % % \fi % % \iffalse % % \fi % % \Finale % \endinput % % end of file `scrkernel-compatibility.dtx' %%% Local Variables: %%% mode: doctex %%% TeX-master: t %%% End: