% ======================================================================
% 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:
