% ====================================================================== % common-compatibility.tex % Copyright (c) Markus Kohm, 2001-2019 % % 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. % ---------------------------------------------------------------------- % common-compatibility.tex % Copyright (c) Markus Kohm, 2001-2019 % % 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. % ====================================================================== % % Paragraphs that are common for several chapters of the KOMA-Script guide % Maintained by Markus Kohm % % ---------------------------------------------------------------------- % % Absätze, die mehreren Kapiteln der KOMA-Script-Anleitung gemeinsam sind % Verwaltet von Markus Kohm % % ====================================================================== \KOMAProvidesFile{common-compatibility.tex} [$Date: 2019-10-31 08:38:01 +0100 (Thu, 31 Oct 2019) $ KOMA-Script guide (common paragraphs)] \section{Kompatibilität zu früheren Versionen von \KOMAScript} \seclabel{compatibilityOptions} \BeginIndexGroup \BeginIndex{}{Kompatibilität} \IfThisCommonFirstRun{}{% Es gilt sinngemäß, was in \autoref{sec:\ThisCommonFirstLabelBase.compatibilityOptions} geschrieben wurde.\IfThisCommonLabelBase{scrlttr2}{ Allerdings existiert diese Möglichkeit bei \Class{scrlttr2}\OnlyAt{\Class{scrlttr2}} bereits seit Version~2.9t, während \Package{scrletter} sie nicht bietet, sondern sozusagen immer von \OptionValue{version}{last} ausgeht.}{} Falls Sie also \autoref{sec:\ThisCommonFirstLabelBase.compatibilityOptions} bereits gelesen und verstanden haben, können Sie in \autoref{sec:\ThisCommonLabelBase.compatibilityOptions.next} auf \autopageref{sec:\ThisCommonLabelBase.compatibilityOptions.next} fortfahren.% } \IfThisCommonLabelBaseOneOf{typearea,maincls,scrlttr2}{% Wer seine Dokumente im Quellcode archiviert, legt in der Regel allergrößten Wert darauf, dass bei zukünftigen \LaTeX{}-Läufen immer wieder exakt dasselbe Ergebnis erzielt wird. In einigen Fällen führen aber Verbesserungen und Korrekturen \IfThisCommonLabelBaseOneOf{maincls,scrlttr2}{an der Klasse}{am Paket} zu Änderungen im Verhalten, inbesondere beim Umbruch. Dies ist jedoch manchmal eher unerwünscht.% }{% \IfThisCommonLabelBase{scrextend}{% % In einigen Fällen ist es so, dass Verbesserungen und Korrekturen am Paket % zu Änderungen im Verhalten, inbesondere beim Umbruch, führen. Dies ist % jedoch nicht immer erwünscht.% % Wer seine Dokumente im Quellcode archiviert, legt in der Regel % allergrößten Wert darauf, dass bei zukünftigen \LaTeX{}-Läufen immer % wieder exakt dasselbe Ergebnis erzielt wird. In einigen Fällen ist es aber % so, dass Verbesserungen und Korrekturen an der Klasse zu Änderungen im % Verhalten, inbesondere beim Umbruch, führen.% }{% \ThisCommonLabelBaseFailure % \IfThisCommonLabelBase{scrlttr2}{% % In einigen Fällen ist es so, dass Verbesserungen und Korrekturen an der % Klasse zu Änderungen im Verhalten, inbesondere beim Umbruch, % führen. Dies ist jedoch nicht immer erwünscht.% % }{}% }% }% \begin{Declaration} \OptionVName{version}{Wert} \OptionValue{version}{first} \OptionValue{version}{last} \end{Declaration} \IfThisCommonLabelBase{scrextend}{Bei }{Seit }% \ChangedAt{v2.96a}{\Class{scrbook}\and \Class{scrreprt}\and \Class{scrartcl}}% \ChangedAt{v2.9t}{\Class{scrlttr2}}% \ChangedAt{v3.01b}{\Package{typearea}}% \IfThisCommonLabelBase{typearea}{% Version~3.01b besteht bei \Package{typearea} }{% \IfThisCommonLabelBase{maincls}{% Version~2.96a besteht bei \KOMAScript{} }{% \IfThisCommonLabelBase{scrlttr2}{% Version~2.9t besteht bei \Class{scrlttr2}\OnlyAt{\Class{scrlttr2}} }{% \IfThisCommonLabelBase{scrextend}{\Package{scrextend} besteht }{% \InteralCommonFileUsageError }% }% }% }% die Wahl, ob eine Quelldatei, soweit irgend möglich, auch zukünftig bei einem \LaTeX{}-Lauf zu exakt demselben Ergebnis führen soll oder ob sie jeweils entsprechend der Anpassungen der neusten Version\IfThisCommonLabelBaseOneOf{maincls,scrlttr2}{ der Klasse}{} zu setzen ist. Zu welcher Version Kompatibilität herzustellen ist, wird dabei über die Option \Option{version} festgelegt. Kompatibilität zur ältesten unterstützten \KOMAScript-Version kann mit \OptionValue{version}{first}\important{\OptionValue{version}{first}} oder \OptionValue{version}{2.9} oder \OptionValue{version}{2.9t} erreicht werden. Bei Angabe einer unbekannten Version als \PName{Wert} wird eine Warnung ausgegeben und sicherheitshalber \OptionValue{version}{first} angenommen. Mit \OptionValue{version}{last}\important{\OptionValue{version}{last}}% \textnote{Voreinstellung} kann die jeweils neuste Version ausgewählt werden. In diesem Fall wird also auf rückwirkende Kompatibilität verzichtet. Wird die Option ohne Wertangabe verwendet, so wird ebenfalls \PValue{last} angenommen. \ChangedAt{v3.01a}{\Class{scrbook}\and \Class{scrreprt}\and \Class{scrartcl}\and \Class{scrlttr2}\and \Package{scrextend}}Dies entspricht auch der Voreinstellung\IfThisCommonLabelBase{scrextend}{}{, solange keine obsolete Option verwendet wird}. \IfThisCommonLabelBase{scrextend}{% scrextend kennt keine obsoleten Optionen }{% Bei\textnote{Achtung!} der Verwendung einer obsoleten Option von \KOMAScript~2 setzt \KOMAScript~3 automatisch \OptionValue{version}{first}. In der dabei ausgegebenen Warnung wird erklärt, wie man diese Kompatibilitätsumschaltung verhindern kann. Alternativ kann man auch nach der obsoleten Option selbst eine abweichende Einstellung für Option \Option{version} wählen.% } Die Frage der Kompatibilität betrifft in erster Linie Fragen des Umbruchs. Neue Möglichkeiten, die sich nicht auf den Umbruch auswirken, sind auch dann verfügbar, wenn man per Option die Kompatibilität zu einer älteren Version ausgewählt hat. Die Option hat keine Auswirkungen auf Umbruchänderungen, die bei Verwendung einer neueren Version durch Beseitigung eindeutiger Fehler entstehen. Wer\textnote{Tipp!} auch im Fehlerfall unbedingte Umbruchkompatibilität benötigt, sollte stattdessen mit dem Dokument auch die verwendete \KOMAScript-Version archivieren. \IfThisCommonLabelBase{scrlttr2}{\begin{Example} Die Beispielbriefe dieses Kapitels sollen alle Möglichkeiten nutzen, die in der neusten Version von \KOMAScript{} zur Verfügung stehen. Dazu muss beim Laden der Klasse die Kompatibilität entsprechend gesetzt werden:% \lstinputcode[xleftmargin=1em,lastline=1]{letter-0.tex}% \iftrue% Umbruchkorrektur Hier wurde einfach mit dem symbolischen Wert \PValue{last} die neuste Version gewählt.% \else% Um nicht bei jeder neuen Version eine neue Versionsnummer angeben zu müssen, wurde hier die Möglichkeit des symbolischen Wertes \PValue{last} gewählt.% \fi \end{Example}}{} Es\textnote{Achtung!} ist zu beachten, dass die Option \Option{version} nach dem Laden % \IfThisCommonLabelBaseOneOf{maincls,scrlttr2}{der Klasse}{% des Pakets \IfThisCommonLabelBase{typearea}{\Package{typearea}}{% \IfThisCommonLabelBase{scrextend}{\Package{scrextend}}{% \InternalCommonFileUsageError }% }% } nicht mehr verändert werden kann. Das Setzen mit \DescRef{\ThisCommonLabelBase.cmd.KOMAoptions} oder \DescRef{\ThisCommonLabelBase.cmd.KOMAoption} ist % Umbruchkorrektur!!!! \IfThisCommonLabelBaseNotOneOf{maincls,scrlttr2,typearea}{für diese Option }{}% daher nicht vorgesehen.% % \EndIndexGroup % \EndIndexGroup \phantomsection \label{sec:\ThisCommonLabelBase.compatibilityOptions.end} \endinput %%% Local Variables: %%% mode: latex %%% coding: utf-8 %%% TeX-master: "../guide" %%% End: