diff options
author | Karl Berry <karl@freefriends.org> | 2013-12-26 23:18:36 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2013-12-26 23:18:36 +0000 |
commit | 9b219d1b664067729034647a4b37626cf2bf5e26 (patch) | |
tree | 00708467b44f90736dc32ed1bebb95e9c4710139 /Master/texmf-dist/source/latex/koma-script/scrkernel-compatibility.dtx | |
parent | c00c8298eb6913b74270a36c1f1018f1e9946f7b (diff) |
koma-script (26dec13)
git-svn-id: svn://tug.org/texlive/trunk@32489 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/source/latex/koma-script/scrkernel-compatibility.dtx')
-rw-r--r-- | Master/texmf-dist/source/latex/koma-script/scrkernel-compatibility.dtx | 497 |
1 files changed, 497 insertions, 0 deletions
diff --git a/Master/texmf-dist/source/latex/koma-script/scrkernel-compatibility.dtx b/Master/texmf-dist/source/latex/koma-script/scrkernel-compatibility.dtx new file mode 100644 index 00000000000..d98490a00ba --- /dev/null +++ b/Master/texmf-dist/source/latex/koma-script/scrkernel-compatibility.dtx @@ -0,0 +1,497 @@ +% \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: |