% ======================================================================
% common-oddorevenpage.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-oddorevenpage.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-oddorevenpage.tex}
                 [$Date: 2019-11-19 12:56:28 +0100 (Tue, 19 Nov 2019) $
                  KOMA-Script guide (common paragraphs)]

\section{Erkennung von rechten und linken Seiten}
\seclabel{oddOrEven}%
\BeginIndexGroup
\BeginIndex{}{Seiten>gerade}%
\BeginIndex{}{Seiten>ungerade}%

\IfThisCommonFirstRun{}{%
  Es gilt sinngemäß, was in
  \autoref{sec:\ThisCommonFirstLabelBase.oddOrEven} geschrieben
  wurde. Falls Sie also \autoref{sec:\ThisCommonFirstLabelBase.oddOrEven}
  bereits gelesen und verstanden haben, können Sie in
  \autoref{sec:\ThisCommonLabelBase.oddOrEven.next} auf
  \autopageref{sec:\ThisCommonLabelBase.oddOrEven.next} fortfahren.%
}

\IfThisCommonLabelBase{scrextend}{}{% Umbruchkorrektur
  Bei doppelseitigen Dokumenten wird zwischen linken und rechten Seiten
  unterschieden. Dabei hat eine linke Seite immer eine gerade Nummer und eine
  rechte Seite immer eine ungerade Nummer. %
  \IfThisCommonLabelBase{maincls}{%
    Die Erkennung von rechten und linken Seiten ist damit gleichbedeutend mit
    der Erkennung von Seiten mit ungerader oder gerader Nummer. In
    \iffree{dieser Anleitung}{diesem Buch} ist vereinfachend auch von
    ungeraden und geraden Seiten die Rede.%

  % Umbruchkorrekturtext
    \iftrue%
    Bei einseitigen Dokumenten existiert die Unterscheidung zwischen linken
    und rechten Seiten nicht. Dennoch gibt es natürlich auch bei einseitigen
    Dokumenten sowohl Seiten mit gerader als auch Seiten mit ungerader
    Nummer.%
    \fi%
  }{%
    \IfThisCommonLabelBase{scrlttr2}{%
      In der Regel werden Briefe einseitig gesetzt. Sollen Briefe mit
      einseitigem Layout jedoch auf Vorder- und Rückseite gedruckt oder
      ausnahmsweise tatsächlich doppelseitige Briefe erstellt werden, kann
      unter Umständen das Wissen, ob man sich auf einer Vorder- oder einer
      Rückseite befindet, nützlich sein.%
    }{}%
  }%
}

\begin{Declaration}
  \Macro{Ifthispageodd}\Parameter{Dann-Teil}\Parameter{Sonst-Teil}
\end{Declaration}%
Will\IfThisCommonLabelBase{maincls}{%
  \ChangedAt{v3.28}{\Class{scrbook}\and \Class{scrreprt}\and
    \Class{scrartcl}}%
}{%
  \IfThisCommonLabelBase{scrlttr2}{%
    \ChangedAt{v3.28}{\Class{scrlttr2}}%
  }{%
    \IfThisCommonLabelBase{scrextend}{%
      \ChangedAt{v3.28}{\Package{scrextend}}%
    }{}%
  }%
} %
man bei \KOMAScript{} feststellen, ob ein Text auf einer geraden oder einer
ungeraden Seite ausgegeben wird, so verwendet man die Anweisung
\Macro{Ifthispageodd}. Dabei wird das Argument \PName{Dann-Teil} nur dann
ausgeführt, wenn man sich aktuell auf einer ungeraden Seite
befindet. Anderenfalls kommt das Argument \PName{Sonst-Teil} zur Anwendung.
%
\IfThisCommonLabelBase{scrextend}{\iffalse}{\csname iftrue\endcsname}%
\begin{Example}
  Angenommen, Sie wollen einfach nur ausgeben, ob ein Text auf einer geraden
  oder ungeraden Seite ausgegeben wird. Sie könnten dann beispielsweise mit
  der Eingabe{\phantomsection\xmpllabel{Ifthispageodd}}
\begin{lstcode}
  Dies ist eine Seite mit 
  \Ifthispageodd{un}{}gerader Seitenzahl.
\end{lstcode}
  \iffree{}{mit leerem \PName{Sonst-Teil} }% Umbruchkorrekturtext!!!
  die Ausgabe
  \begin{quote}
    Dies ist eine Seite mit \Ifthispageodd{un}{}gerader Seitenzahl.
  \end{quote}
  erhalten.\iffree{ Beachten Sie, dass in diesem Beispiel das Argument
  \PName{Sonst-Teil} leer geblieben ist.}{}% Umbruchkorrekturtext!!!
\end{Example}
\fi

Da die Anweisung \Macro{Ifthispageodd} mit einem Mechanismus arbeitet, der
einem Label und einer Referenz darauf sehr ähnlich ist, werden nach jeder
Textänderung mindestens zwei \LaTeX-Durchläufe benötigt. Erst dann ist die
Entscheidung korrekt. Im ersten Durchlauf wird für die
Entscheidung eine Heuristik verwendet.

Näheres zur Problematik der Erkennung von linken und rechten Seiten oder
geraden und ungeraden Seitennummern ist für Experten in
\autoref{sec:maincls-experts.addInfos},
\DescPageRef{maincls-experts.cmd.Ifthispageodd} zu finden.%
\IfThisCommonLabelBase{scrextend}{%
  \ Ein Beispiel zur Verwendung von \Macro{Ifthispageodd} ist in
  \autoref{sec:maincls.oddOrEven} auf \PageRefxmpl{maincls.Ifthispageodd}
  angegeben.}{}%
\EndIndexGroup
%
\EndIndexGroup


%%% Local Variables:
%%% mode: latex
%%% coding: utf-8
%%% TeX-master: "../guide"
%%% End:
