summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/koma-script/doc/scrlayer-notecolumn-de.tex
diff options
context:
space:
mode:
Diffstat (limited to 'macros/latex/contrib/koma-script/doc/scrlayer-notecolumn-de.tex')
-rw-r--r--macros/latex/contrib/koma-script/doc/scrlayer-notecolumn-de.tex802
1 files changed, 802 insertions, 0 deletions
diff --git a/macros/latex/contrib/koma-script/doc/scrlayer-notecolumn-de.tex b/macros/latex/contrib/koma-script/doc/scrlayer-notecolumn-de.tex
new file mode 100644
index 0000000000..e1da0d969b
--- /dev/null
+++ b/macros/latex/contrib/koma-script/doc/scrlayer-notecolumn-de.tex
@@ -0,0 +1,802 @@
+% ======================================================================
+% scrlayer-notecolumn-de.tex
+% Copyright (c) Markus Kohm, 2013-2022
+%
+% 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.md.
+% ======================================================================
+%
+% Chapter about scrlayer-notecolumn of the KOMA-Script guide
+% Maintained by Markus Kohm
+%
+% ----------------------------------------------------------------------
+%
+% Kapitel über scrlayer-notecolumn in der KOMA-Script-Anleitung
+% Verwaltet von Markus Kohm
+%
+% ============================================================================
+
+\KOMAProvidesFile{scrlayer-notecolumn.tex}
+ [$Date: 2022-06-05 12:40:11 +0200 (So, 05. Jun 2022) $
+ KOMA-Script guide (chapter:scrlayer-notecolumn)]
+
+\chapter{Notizspalten mit \Package{scrlayer-notecolumn}}
+\labelbase{scrlayer-notecolumn}
+
+\BeginIndexGroup
+\BeginIndex{Package}{scrlayer-notecolumn}%
+Bis einschließlich Version~3.11b unterstützte \KOMAScript{} Notizspalten nur
+in Form der Marginalienspalte, die mit \DescRef{maincls.cmd.marginpar} und
+\DescRef{maincls.cmd.marginline} (siehe \autoref{sec:maincls.marginNotes},
+\DescPageRef{maincls.cmd.marginline}) mit Inhalt versehen werden
+können. Jene Art der Randnotizen hat allerdings einige Nachteile:
+\begin{itemize}
+\item Randnotizen können nur vollständig auf einer einzelnen Seite gesetzt
+ werden. Seitenumbrüche\textnote{Seitenumbruch} innerhalb von Randnotizen
+ sind nicht möglich. Dies führt teilweise dazu, dass die Randnotizen bis in
+ den unteren Rand hineinragen.
+\item Randnotizen in der Nähe des Seitenumbruchs können auf die nächste Seite
+ rutschen und dort im Falle des doppelseitigen Layouts mit alternierenden
+ Marginalienspalten im falschen Rand\textnote{Zuordnung zum richtigen Rand}
+ ausgegeben werden. Dieses Problem ist mit dem Zusatzpaket
+ \Package{mparhack}\IndexPackage{mparhack} oder durch Verwendung von
+ \Macro{marginnote} aus dem Paket
+ \Package{marginnote}\IndexPackage{marginnote} (siehe
+ \cite{package:marginnote}) lösbar.
+\item Randnotizen innerhalb von Gleitumgebungen\textnote{Gleitumgebungen} oder
+ Fußnoten\textnote{Fußnoten} sind nicht möglich. Auch dieses Problem ist mit
+ \Package{marginnote} lösbar.
+\item Es gibt nur eine Marginalienspalte\textnote{mehrere Notizspalten} oder
+ allenfalls zwei, wenn mit \Macro{reversemarginpar} und
+ \Macro{normalmarginpar} gearbeitet wird, wobei \Macro{reversemarginpar} bei
+ doppelseitigen Dokumenten kaum zu gebrauchen ist.
+\end{itemize}
+Die Verwendung von \Package{marginnote}\IndexPackage{marginnote} führt zu
+einem weiteren Problem. Da das Paket keine Kollisionserkennung besitzt, können
+sich Randnotizen, die in unmittelbarer Nähe veranlasst wurden, gegenseitig
+ganz oder teilweise überdecken. Darüber hinaus führt \Macro{marginnote}, je
+nach den gewählten Einstellungen von \Package{marginnote}, manchmal zu
+Veränderungen beim Zeilenabstand des normalen Textes.
+
+Das Paket \Package{scrlayer-notecolumn} tritt an, all diese Probleme zu
+lösen. Dazu stützt es sich auf die Grundfunktionalität von
+\hyperref[cha:scrlayer]{\Package{scrlayer}}\IndexPackage{scrlayer}%
+\important{\hyperref[cha:scrlayer]{\Package{scrlayer}}}. Damit geht aber
+auch ein Nachteil einher:\textnote{Achtung!} Notizen können nur auf den Seiten
+ausgegeben werden, die einen auf \hyperref[cha:scrlayer]{\Package{scrlayer}}
+basierenden Seitenstil besitzen. Dieser Nachteil lässt sich mit Hilfe von
+\hyperref[cha:scrlayer-scrpage]{\Package{scrlayer-scrpage}}%
+\important{\hyperref[cha:scrlayer-scrpage]{\Package{scrlayer-scrpage}}}%
+\IndexPackage{scrlayer-scrpage} jedoch leicht auf"|lösen oder sogar in einen
+Vorteil verwandeln.
+
+
+\section{Hinweise zum Entwicklungsstand}
+\seclabel{draft}
+
+Das Paket wurde ausschließlich zur Demonstration des Potentials von
+\hyperref[cha:scrlayer]{\Package{scrlayer}}\important{\hyperref[cha:scrlayer]{\Package{scrlayer}}}
+als sogenannter\textnote{Proof of Concept} \emph{Proof of Concept}
+entwickelt. Obwohl es sich derzeit noch in einem recht frühen
+Entwicklungsstadium befindet, ist die Stabilität von weiten Teilen weniger
+eine Frage von \Package{scrlayer-notecolumn} als von
+\hyperref[cha:scrlayer]{\Package{scrlayer}}. Dennoch ist davon auszugehen,
+dass sich auch in \Package{scrlayer-notecolumn} noch Fehler befinden. Es wird
+darum gebeten, diese bei Auf"|finden zu melden. Einige
+\emph{Unzulänglichkeiten} des Pakets sind jedoch auch der Minimierung des
+Aufwands geschuldet. So können Notizspalten zwar über Seiten hinweg umbrochen
+werden, allerdings findet dabei kein neuerlicher Absatzumbruch statt. Dies ist
+bei \TeX{} schlicht nicht vorgesehen.
+
+Da das Paket eher als experimentell\textnote{experimentell} gilt, findet sich
+die Anleitung hier im zweiten Teil \iffree{der \KOMAScript-Anleitung}{dieses
+ Buches}. Dementsprechend richtet sie sich auch in erster Linie an erfahrene
+Anwender. Für Anfänger oder Anwender, die sich bereits deutlich auf dem Weg
+zum \LaTeX-Experten\textnote{für \LaTeX-Experten} befinden, mag daher einiges
+in den nachfolgenden Erklärungen unklar oder gar unverständlich
+sein. \iffree{Ich bitte um Nachsicht, dass ich bei experimentellen Paketen den
+ Aufwand für die Anleitung halbwegs erträglich halten will.}{Sie sollten
+ jedoch genügen, um einfache Aufgaben mit \Package{scrlayer-notecolumn} lösen
+ zu können. Gleichzeitig finden Entwickler hoffentlich nützliche Anregungen
+ für eigene Ideen.}
+
+\iffalse% Umbruchoptimierung
+Es sei auch darauf\textnote{Achtung!} hingewiesen, dass der \KOMAScript-Autor
+nicht für die Weiterentwicklung des Pakets garantiert und nur eingeschränkten
+Support dafür bietet. Das liegt in der Natur eines Pakets, das nur zu
+Demonstrationszwecken geschrieben wurde.%
+\fi
+
+\LoadCommonFile{options}% \section{Frühe oder späte Optionenwahl}
+
+\LoadCommonFile{textmarkup}% \section{Textauszeichnungen}
+
+\section{Deklaration neuer Notizspalten}
+\seclabel{declaration}
+
+Beim Laden des Pakets wird bereits automatisch eine Notizspalte namens
+\PValue{marginpar} deklariert. Wie der Name andeutet, liegt diese Notizspalte
+im Bereich der normalen Marginalienspalte von \DescRef{maincls.cmd.marginpar}
+und \DescRef{maincls.cmd.marginline}. Dabei werden auch die Einstellungen
+\Macro{reversemarginpar} und \Macro{normalmarginpar} beachtet, allerdings
+nicht für die einzelnen Notizen, sondern nur für die gesamten Notizen einer
+Seite. Maßgeblich ist die Einstellung, die am Ende der Seite, nämlich
+bei der Ausgabe der Notizspalte, gilt. Will man hingegen innerhalb einer Seite
+sowohl Notizen links als auch rechts neben dem Haupttext haben, so sollte man
+sich eine zweite Notizspalte definieren.
+
+Die Voreinstellungen für alle neu deklarierten Notizspalten entsprechen im
+Übrigen \iffree{}{\pagebreak}% Umbruchkorrektur
+den erwähnten Einstellungen für die vordefinierte
+\PValue{marginpar}. %
+\iftrue% Umbruchoptimierung
+Diese können bei der Deklaration jedoch leicht geändert werden.%
+\fi
+
+Es ist zu beachten\textnote{Achtung!}, dass Notizspalten nur auf Seiten
+ausgegeben werden, deren Seitenstil auf dem Paket
+\hyperref[cha:scrlayer]{\Package{scrlayer}}\IndexPackage{scrlayer}%
+\important{\hyperref[cha:scrlayer]{\Package{scrlayer}}} basiert. Das Paket
+\hyperref[cha:scrlayer]{\Package{scrlayer}} wird von
+\Package{scrlayer-notecolumn} automatisch geladen und stellt in der
+Voreinstellung lediglich den Seitenstil
+\PageStyle{empty}\IndexPagestyle{empty} bereit. Werden weitere Seitenstile
+benötigt, wird zusätzlich das Paket
+\hyperref[cha:scrlayer-scrpage]{\Package{scrlayer-scrpage}}%
+\IndexPackage{scrlayer-scrpage}%
+\important{\hyperref[cha:scrlayer-scrpage]{\Package{scrlayer-scrpage}}}
+empfohlen.
+
+\begin{Declaration}
+ \Macro{DeclareNoteColumn}\OParameter{Liste~der~Einstellungen}
+ \Parameter{Name~der~Notizspalte}
+ \Macro{DeclareNewNoteColumn}\OParameter{Liste~der~Einstellungen}
+ \Parameter{Name~der~Notizspalte}
+ \Macro{ProvideNoteColumn}\OParameter{Liste~der~Einstellungen}
+ \Parameter{Name~der~Notizspalte}
+ \Macro{RedeclareNoteColumn}\OParameter{Liste~der~Einstellungen}
+ \Parameter{Name~der~Notizspalte}%
+\end{Declaration}
+Mit Hilfe dieser Anweisungen können Notizspalten angelegt werden. Dabei
+erzeugt \Macro{DeclareNoteColumn} die Notizspalte ungeachtet der Tatsache, ob
+sie bereits existiert, während \Macro{DeclareNewNoteColumn} einen
+Fehler ausgibt, falls der \PName{Name der Notizspalte} bereits für eine andere
+Notizspalte vergeben ist, und \Macro{ProvideNoteColumn} in eben diesem Fall
+schlicht nichts tut. Mit \Macro{RedeclareNoteColumn} wiederum kann nur eine
+bereits existierende Notiz-Spalte neu konfiguriert werden.
+
+Bei der Neukonfigurierung bereits existierender Notizspalten mit
+\Macro{DeclareNoteColumn} oder \Macro{RedeclareNoteColumn} gehen im Übrigen
+die bereits erzeugten Notizen für diese Spalte nicht verloren, sondern bleiben
+erhalten.
+
+\BeginIndex{FontElement}{notecolumn.\PName{Name der Notizspalte}}%
+\BeginIndex{FontElement}{notecolumn.marginpar}%
+Für neue Notizspalten wird immer ein Element zur Änderung der Schriftattribute
+mit \DescRef{\LabelBase.cmd.setkomafont} und \DescRef{\LabelBase.cmd.addtokomafont} angelegt,
+falls dieses noch nicht existiert. Als Name für das Element wird
+\PValue{notecolumn.}\PName{Name der Notizspalte} verwendet. Dementsprechend
+existiert für die vordefinierte Notizspalte \PValue{marginpar} das
+Element\textnote{Name des Elements} \PValue{notecolumn.marginpar}. Die
+Voreinstellung kann bei der Deklaration einer Notizspalte direkt über die
+Option \Option{font} innerhalb der optionalen \PName{Liste der Einstellungen}
+angegeben werden.%
+\EndIndex{FontElement}{notecolumn.marginpar}%
+\EndIndex{FontElement}{notecolumn.\PName{Name der Notizspalte}}%
+
+Die \PName{Liste der Einstellungen} ist eine durch Komma separierte Liste von
+Einstellungen oder Optionen. Die verfügbaren Optionen sind in
+\autoref{tab:scrlayer-notecolumn.note.column.options} %
+\iffalse % Umbruchkorrektur
+\unskip, \autopageref{tab:scrlayer-notecolumn.note.column.options} %
+\fi%
+zu finden. Als\textnote{Voreinstellung: Option \Option{marginpar}}
+Voreinstellung ist \Option{marginpar} immer gesetzt, kann aber durch
+individuelle Einstellungen überschrieben werden.
+
+%
+%\begin{table}% Umbruchoptimierung: Tabelle hinter das Beispiel verschoben
+\begin{desclist}
+ \desccaption{%
+% \caption[Mögliche Einstellungen für die Deklaration von Notizspalten]{%
+ Mögliche Einstellungen für die Deklaration von Notizspalten%
+% }%
+ \label{tab:scrlayer-notecolumn.note.column.options}%
+ }{%
+ Mögliche Einstellungen für die Deklaration von Notizspalten
+ (\emph{Fortsetzung})%
+ }%
+% \begin{desctabular}
+ \entry{\OptionVName{font}{Schriftattribute}}{%
+ Einstellung der \PName{Schriftattribute} der Notizspalte mit Hilfe von
+ \DescRef{\LabelBase.cmd.setkomafont}. Für erlaubte Werte sei auf
+ \autoref{sec:\LabelBase.textmarkup},
+ \DescPageRef{\LabelBase.cmd.setkomafont} verwiesen.\par%
+ Voreinstellung: \emph{leer}%
+ }%
+ \entry{\Option{marginpar}}{%
+ Position und Breite der Notizspalte werden so eingestellt, dass sie der
+ Marginalienspalte von \DescRef{maincls.cmd.marginpar} entsprechen. Eine
+ Umschaltung zwischen \Macro{reversemarginpar}\IndexCmd{reversemarginpar}
+ und \Macro{normalmarginpar}\IndexCmd{normalmarginpar} wird immer nur am
+ Ende der Seite bei der Ausgabe der Notizspalte beachtet. Es wird darauf
+ hingewiesen, dass diese Option kein Argument erwartet oder erlaubt.\par%
+ Voreinstellung: \emph{ja}%
+ }%
+ \entry{\Option{normalmarginpar}}{%
+ Position und Breite der Notizspalte werden so eingestellt, dass sie der
+ Marginalienspalte von \DescRef{maincls.cmd.marginpar} bei Einstellung
+ \Macro{normalmarginpar} entsprechen. Es wird darauf hingewiesen, dass
+ diese Option kein Argument erwartet oder erlaubt.\par%
+ Voreinstellung: \emph{nein}%
+ }%
+ \entry{\OptionVName{position}{Abstand}}{%
+ Die Notizspalte wird mit \PName{Abstand} vom linken Rand des Papiers
+ gesetzt. Dabei sind für \PName{Abstand} auch komplexe Ausdrücke
+ gestattet, solange diese voll expandierbar sind und zum Zeitpunkt der
+ Ausgabe der Notizspalte zu einer Länge oder zu einem Längenwert oder
+ einem Längenausdruck expandieren. Siehe
+ \cite[Abschnitt~3.5]{manual:eTeX} für weitere Informationen zu
+ Längenausdrücken.\par%
+ Voreinstellung: \emph{durch Option \Option{marginpar}}%
+ }%
+ \entry{\Option{reversemarginpar}}{%
+ Position und Breite der Notizspalte werden so eingestellt, dass sie der
+ Marginalienspalte von \DescRef{maincls.cmd.marginpar} bei Einstellung
+ \Macro{reversemarginpar} entsprechen. Es wird darauf hingewiesen, dass
+ diese Option kein Argument erwartet oder erlaubt.\par%
+ Voreinstellung: \emph{nein}%
+ }%
+ \entry{\OptionVName{width}{Breite}}{%
+ Die Notizspalte wird mit der angegebenen Breite gesetzt. Dabei sind für
+ \PName{Breite} auch komplexe Ausdrücke gestattet, solange diese voll
+ expandierbar sind und zum Zeitpunkt der Ausgabe der Notizspalte zu einer
+ Länge oder einem Längenwert oder einem Längenausdruck expandieren. Siehe
+ \cite[Abschnitt~3.5]{manual:eTeX} für weitere Informationen zu
+ Längenausdrücken.\par%
+ Voreinstellung: \emph{durch Option \Option{marginpar}}%
+ }%
+% \end{desctabular}
+%\end{table}
+\end{desclist}
+
+Da die Notizspalten mit Hilfe von \hyperref[cha:scrlayer]{\Package{scrlayer}}%
+\important{\hyperref[cha:scrlayer]{\Package{scrlayer}}} definiert werden, wird
+auch für jede Notizspalte eine Ebene\Index{Ebenen} angelegt. Als
+Name\textnote{Name der Ebene} für diese Ebene wird ebenfalls
+\PValue{notecolumn.}\PName{Name der Notizspalte} verwendet. Näheres zu Ebenen
+ist \autoref{sec:scrlayer.layers}, ab \autopageref{sec:scrlayer.layers} zu
+entnehmen.
+%
+\begin{Example}
+ Angenommen, Sie sind Professor für ulkiges Recht und wollen eine Abhandlung
+ über das neue »Gesetz über die ausgelassene Verbreitung allgemeiner Späße«,
+ kurz GüdaVaS, schreiben. Der Hauptaugenmerk soll dabei jeweils auf dem
+ Kommentar zu einzelnen Paragraphen liegen. Sie entscheiden sich für ein
+ zweispaltiges Layout, wobei der Kommentar in der Hauptspalte enthalten sein
+ soll und die Paragraphen jeweils klein\iffree{ und in Farbe}{} in einer
+ schmaleren Notizspalte rechts daneben.
+\begin{lstcode}
+ \documentclass{scrartcl}
+ \usepackage[ngerman]{babel}
+
+ \usepackage[T1]{fontenc}
+ \usepackage{lmodern}
+ \usepackage{xcolor}
+
+ \usepackage{scrjura}
+ \setkomafont{contract.Clause}{\bfseries}
+ \setkeys{contract}{preskip=-\dp\strutbox}
+
+ \usepackage{scrlayer-scrpage}
+ \usepackage{scrlayer-notecolumn}
+
+ \newlength{\paragraphscolwidth}
+ \AfterCalculatingTypearea{%
+ \setlength{\paragraphscolwidth}{%
+ .333\textwidth}%
+ \addtolength{\paragraphscolwidth}{%
+ -\marginparsep}%
+ }
+ \recalctypearea
+ \DeclareNewNoteColumn[%
+ position=\oddsidemargin+1in
+ +.667\textwidth
+ +\marginparsep,
+ width=\paragraphscolwidth,
+ font=\raggedright\footnotesize
+ \color{blue}
+ ]{paragraphs}
+\end{lstcode}
+ Es wird ein einseitiger Artikel verfasst. Dazu wird die
+ Sprache\textnote{Sprache mit \Package{babel}} mit Hilfe
+ des \Package{babel}\IndexPackage{babel}-Pakets auf Deutsch (neue
+ Rechtschreibung) festgelegt. Bezüglich der Eingabecodierung wird von UTF-8
+ und einer \LaTeX-Version ab 2018-04-01 ausgegangen. Als Schrift
+ wird Latin Modern in 8-Bit-Codierung verwendet.\iffree{ Für die
+ Farbeinstellungen wird das Paket \Package{xcolor}\IndexPackage{xcolor}
+ genutzt.}{}
+
+ Bezüglich des Setzens von Gesetzestexten\textnote{Gesetz mit
+ \hyperref[cha:scrjura]{\Package{scrjura}}} mit
+ \hyperref[cha:scrjura]{\Package{scrjura}}\IndexPackage{scrjura} sei auf
+ \iffree{dessen Anleitung}{\autoref{cha:scrjura}} verwiesen.
+
+ Da ein Seitenstil\textnote{Seitenstil mit
+ \hyperref[cha:scrlayer-scrpage]{\Package{scrlayer-scrpage}}} mit
+ Seitenzahl verwendet werden soll, wird das Paket
+ \hyperref[cha:scrlayer-scrpage]{\Package{scrlayer-scrpage}}%
+ \IndexPackage{scrlayer-scrpage} geladen. Somit können Notizspalten auf allen
+ Seiten ausgegeben werden.
+
+ Dann wird das Paket \Package{scrlayer-notecolumn}\textnote{Notizspalte mit
+ \Package{scrlayer-notecolumn}} für die Notizspalten geladen. Die
+ gewünschte Breite der Notizspalte wird über
+ \DescRef{typearea-experts.cmd.AfterCalculatingTypearea}%
+ \IndexPackage{typearea}%
+ \IndexCmd{AfterCalculatingTypearea} nach jeder etwaigen Neuberechnung des
+ Satzspiegels\textnote{Satzspiegel mit
+ \hyperref[cha:typearea]{\Package{typearea}}}%
+ \IndexPackage{typearea} neu berechnet. Sie soll jeweils ein Drittel der
+ Satzspiegelbreite betragen, wobei der Abstand zwischen Text und Notizspalte
+ zu Lasten der Notizspalte geht. %
+ \iftrue% Umbruchoptimierung
+ Diese ist also effektiv um \Length{marginparsep}\IndexLength{marginparsep}
+ schmaler.%
+ \fi
+
+ Mit dieser Information kann dann die neue Notizspalte definiert werden. Bei
+ der Festlegung der Position wird ein einfacher Längenausdruck genutzt. Dabei
+ ist zu beachten, dass \Length{oddsidemargin} nicht der gesamte linke Rand
+ ist, sondern aus historischen Gründen der linke Rand abzüglich
+ 1\Unit{inch}. Daher muss dieser Wert noch hinzugezählt werden.
+
+ Damit ist die Deklaration abgeschlossen. Es ist zu beachten, dass die
+ Notizspalte bisher im Textbereich ausgegeben wird. Die Notizspalte würde
+ also den Text überschreiben.
+
+\begin{lstcode}
+ \begin{document}
+
+ \title{Kommentar zum GüdaVaS}
+ \author{Professor R. O. Tenase}
+ \date{11.\,11.~2011}
+ \maketitle
+ \tableofcontents
+
+ \section{Vormerkung}
+ Das GüdaVaS ist ohne jeden Zweifel das wichtigste
+ Gesetz, das in Spaßmanien in den letzten eintausend
+ Jahren verabschiedet wurde. Die erste Lesung fand
+ bereits am 11.\,11.~1111 im obersten spaßmanischen
+ Kongress statt, wurde aber vom damaligen Spaßvesier
+ abgelehnt. Erst nach Umwandlung der spaßmanischen,
+ aberwitzigen Monarchie in eine repräsentative,
+ witzige Monarchie durch W. Itzbold,
+ den Urkomischen, am 9.\,9.~1999 war der Weg für
+ dieses Gesetz endlich frei.
+\end{lstcode}
+Dadurch,\textnote{Achtung!} dass der Textbereich nicht verkleinert wurde, wird
+hier der ganze Vorspann über die Gesamtbreite ausgegeben. Um das Beispiel zu
+testen, können Sie vorübergehend
+\begin{lstcode}
+ \end{document}
+\end{lstcode}
+ ergänzen.
+\end{Example}
+%
+Offen blieb in dem Beispiel die Frage, wie der Text für den Kommentar schmaler
+gesetzt werden kann. Dies werden Sie bei der Fortsetzung des Beispiels
+erfahren.%
+\EndIndexGroup
+
+
+\section{Erstellen einer Notiz}
+\seclabel{makenote}
+
+Nachdem eine Notizspalte deklariert wurde, können Notizen für diese Spalte
+erstellt werden. Diese Notizen werden allerdings nicht unmittelbar ausgegeben,
+sondern zunächst nur in eine Hilfsdatei mit Endung »\File{.slnc}«
+geschrieben. Ganz genau werden die Notizen sogar zunächst in die
+\File{aux}-Datei geschrieben und erst beim Lesen der \File{aux}-Datei
+innerhalb von \Macro{end}\PParameter{document} in die \File{slnc}-Datei
+übertragen. Dabei wird gegebenenfalls auch die Einstellung
+\Macro{nofiles}\IndexCmd{nofiles} beachtet. Beim nächsten \LaTeX-Lauf wird
+diese Hilfsdatei dann Stück für Stück je nach Fortschritt des Dokuments wieder
+eingelesen und am Ende der Seite werden die Notizen für die jeweilige Seite
+ausgegeben.
+
+Es ist jedoch zu beachten\textnote{Achtung!}, dass Notizspalten nur auf Seiten
+ausgegeben werden, deren Seitenstil auf dem Paket
+\hyperref[cha:scrlayer]{\Package{scrlayer}}\IndexPackage{scrlayer}%
+\important{\hyperref[cha:scrlayer]{\Package{scrlayer}}} basiert. Das Paket
+\hyperref[cha:scrlayer]{\Package{scrlayer}} wird von
+\Package{scrlayer-notecolumn} automatisch geladen und stellt in der
+Voreinstellung lediglich den Seitenstil
+\PageStyle{empty}\IndexPagestyle{empty} bereit. Werden weitere Seitenstile
+benötigt, wird zusätzlich das Paket
+\hyperref[cha:scrlayer-scrpage]{\Package{scrlayer-scrpage}}%
+\IndexPackage{scrlayer-scrpage}%
+\important{\hyperref[cha:scrlayer-scrpage]{\Package{scrlayer-scrpage}}}
+empfohlen.
+
+
+\begin{Declaration}
+ \Macro{makenote}\OParameter{Name der Notizspalte}\Parameter{Notiz}\\
+ \Macro{makenote*}\OParameter{Name der Notizspalte}\Parameter{Notiz}
+\end{Declaration}
+Mit Hilfe dieser Anweisungen kann eine \PName{Notiz} erstellt werden. Dabei
+wird die aktuelle vertikale Position als vertikale Position für den Anfang der
+\PName{Notiz} verwendet. Die horizontale Position für die Notiz ergibt sich
+aus der definierten Position der Notizspalte. Für die korrekte Funktion ist
+das Paket dabei auf \Macro{pdfsavepos}\IndexCmd{pdfsavepos},
+\Macro{pdflastypos}\IndexCmd{pdflastypos} und
+\Macro{pdfpageheight}\IndexLength{pdfpageheight} beziehungsweise deren
+Entsprechungen bei neueren Lua\TeX-Versionen angewiesen. Ohne diese Befehle
+funktioniert \Package{scrlayer-notecolumn} nicht. %
+\iffalse % Umbruchkorrektur
+Dabei wird außerdem davon ausgegangen, dass die genannten Primitiven exakt
+die Ergebnisse von PDF\TeX{} liefern.%
+\fi
+
+Wird allerdings bei der Ausgabe der \PName{Notiz} eine
+Kollision\textnote{Kollisionsauf"|lösung} mit einer früheren Notiz in derselben
+Notizspalte erkannt, so wird die \PName{Notiz} bis unter diese frühere Notiz
+verschoben. Passt die \PName{Notiz} nicht mehr auf die
+Seite\textnote{Seitenumbruch}\Index{Seiten>Umbruch}, so wird sie ganz oder
+teilweise auf die nächste Seite umbrochen.
+
+Für welche Notizspalte die \PName{Notiz} erstellt werden soll, wird über das
+optionale Argument \PName{Name der Notizspalte} bestimmt. Ist kein optionales
+Argument angegeben, so wird die vordefinierte Notizspalte \PValue{marginpar}
+verwendet.%
+\begin{Example}
+ Fügen wir nun dem Beispiel aus dem vorherigen Abschnitt einen kommentierten
+ Paragraphen hinzu, wobei der Paragraph selbst in der neu definierten
+ Notizspalte gesetzt werden soll.
+\begin{lstcode}
+ \section{Analyse}
+ \begin{addmargin}[0pt]{.333\textwidth}
+ \makenote[paragraphs]{%
+ \protect\begin{contract}
+ \protect\Clause{%
+ title={Kein Witz ohne Publikum}%
+ }
+ Ein Witz kann nur dort witzig sein, wo er
+ auf ein Publikum trifft.
+ \protect\end{contract}%
+ }
+ Dies ist eine der zentralsten Aussagen des
+ Gesetzes. Sie ist derart elementar, dass es
+ durchaus angebracht ist, sich vor der Weisheit
+ der Verfasser zu verbeugen.
+\end{lstcode}
+ Die in \autoref{sec:maincls.lists}, \DescPageRef{maincls.env.addmargin}
+ dokumentierte Umgebung
+ \DescRef{maincls.env.addmargin}\IndexEnv{addmargin}\textnote{Spaltenbreite
+ mit \DescRef{maincls.env.addmargin}} wird genutzt, um den
+ Haupttext in der Breite um die Spalte für die Paragraphen zu
+ vermindern.
+
+ Hier ist auch eines der wenigen Probleme bei Verwendung von \Macro{makenote}
+ zu erkennen. Da das obligatorische Argument in Dateien geschrieben wird,
+ können Befehle\textnote{zerbrechliche Befehle} innerhalb des Arguments
+ leider \emph{zerbrechen}. Um das zu verhindern, wird empfohlen, vor alle
+ Befehle ein \Macro{protect} zu setzen. Anderenfalls kann die Verwendung von
+ Befehlen innerhalb dieses Arguments zu Fehlermeldungen führen.
+
+ Prinzipiell könnten Sie das Beispiel nun bereits mit
+\begin{lstcode}
+ \end{addmargin}
+ \end{document}
+\end{lstcode}
+ beenden, wenn Sie ein Ergebnis sehen wollen.
+\end{Example}%
+
+Beim Testen des Beispiels, werden Sie feststellen, dass die Gesetzes\-spalte
+tiefer hinunter reicht als der Kommentartext. Wenn\textnote{Achtung!} Sie
+zwecks Übung einen weiteren Abschnitt mit einem weiteren Paragraphen
+hinzufügen, ergibt sich eventuell das Problem, dass der Kommentar nicht
+unterhalb des Gesetzestextes, sondern direkt im Anschluss an den bisherigen
+Kommentar fortgesetzt wird. Eine Lösung für dieses Problem werden Sie gleich
+kennenlernen.
+
+Das\ChangedAt{v0.1.2583}{\Package{scrlayer-notecolumn}} im Beispiel erwähnte
+Problem mit dem Zerbrechen von Befehlen tritt bei der
+Sternvariante\important{\Macro{makenote*}} normalerweise nicht auf. Diese
+verwendet \Macro{detokenize}, um die Expansion zu verhindern. Das bedeutet
+aber auch, dass man in der \PName{Notiz} keine Befehle verwenden sollte, die
+ihre Bedeutung innerhalb des Dokuments verändern.
+
+Allerdings treten bei beiden Formen zwei andere Probleme\textnote{Achtung!}
+auf. Das erste betrifft die Verwendung von Farbe mit Hilfe von
+\Package{color}\IndexPackage{color} oder \Package{xcolor}\IndexPackage{xcolor}
+innerhalb der Notizspalten. Um Farbumschaltungen innerhalb der Notizspalten zu
+ermöglichen, wäre für jede Notizspalte eine eigene Farbverwaltung mit einem
+sogenannten \emph{Color Stack} notwendig. Da das Paket lediglich als
+Machbarkeitsstudie entworfen ist und \XeTeX{} nicht mehrere \emph{Color
+ Stacks} unterstützt, sind mit \XeTeX{} Farbumschaltungen nur eingeschränkt
+über die Schriftattribute des Elements \FontElement{notecolumn.\PName{Name der
+ Notizspalte}} möglich, wodurch der Aufwand für die Implementierung einer
+eigenen Farbverwaltung umgangen wurde.
+
+Das zweite, eher konzeptionelle Problem\textnote{Achtung!} ist, dass die
+Hilfsdatei mit den Informationen zum Inhalt der Notizspalte während der
+Verarbeitung der Kopfzeile einer Seite eingelesen wird. Das hat vor allem dann
+Auswirkungen, wenn dies geschieht, während eine Umgebung wie
+\Environment{verbatim} aktiv ist. In diesem Fall wären während des Einlesens
+der Hilfsdatei die \Macro{catcode}-Einstellungen dieser Umgebung aktiv. Das
+würde zwangsläufig zu Fehlern in der Verarbeitung und Ausgabe führen. Um dies
+abzumildern, werden während \Macro{begin}\PParameter{document} die
+\Macro{catcode}-Einstellungen der in \Macro{dospecials}\IndexCmd{dospecials}
+gespeicherten Zeichen gespeichert und während dem Einlesen der Hilfsdatei
+explizit wiederhergestellt.%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{syncwithnotecolumn}\OParameter{Name der Notizspalte}
+\end{Declaration}
+Mit Hilfe dieser Anweisung wird in einer Notizspalte und im Haupttext des
+Dokuments je ein
+Synchronisierungspunkt\textnote{Synchronisation}\Index{Synchronisation}
+erstellt. Wann immer bei der Ausgabe einer Notizspalte oder des Haupttextes
+ein solcher Synchronisierungspunkt erreicht wird, wird eine Marke angelegt,
+deren Inhalt die aktuelle Seite und die aktuelle vertikale Position ist.
+
+Parallel zum Erstellen der Synchronisierungspunkte wird ermittelt, ob in
+der Notizspalte und im Haupttext beim letzten \LaTeX-Lauf eine Marke angelegt
+wurde. Falls das der Fall ist, werden deren Werte miteinander
+verglichen. Liegt die Marke der Notizspalte tiefer auf der Seite oder auf
+einer späteren Seite, so wird im Haupttext bis zu der Stelle der Notizspalte
+vorgerückt.
+
+In der Regel sollten Synchronisierungspunkte\textnote{Hinweis!} nicht
+innerhalb eines Absatzes des Haupttextes, sondern nur zwischen diesen gesetzt
+werden. Wird \Macro{syncwithnotecolumn} dennoch innerhalb eines Absatzes
+verwendet, so wird der Synchronisierungspunkt im Haupttext tatsächlich erst
+nach der aktuellen Zeile eingefügt. In dieser Hinsicht ähnelt
+\Macro{syncwithnotecolumn} also beispielsweise
+\Macro{vspace}\IndexCmd{vspace}.
+
+Dadurch, dass Synchronisierungspunkte in den Notizspalten erst beim nächsten
+\LaTeX-Lauf\textnote{mehrere \LaTeX-Läufe} erkannt werden, benötigt der
+Mechanismus mindestens drei \LaTeX-Läufe. Aus jeder neuen Synchronisierung
+können sich außerdem Verschiebungen für spätere Synchronisierungspunkte
+ergeben, was wiederum die Notwendigkeit weiterer \LaTeX-Läufe nach sich
+zieht. Zu erkennen sind solche Verschiebungen in der Regel an der Meldung:
+»\LaTeX{} Warning: Label(s) may have changed. Rerun to get cross-references
+right.« Aber auch Meldungen über undefinierte \emph{Labels} können auf die
+Notwendigkeit eines weiteren \LaTeX-Laufs hinweisen.
+
+Wird das optionale Argument nicht angegeben, so wird an seiner Stelle
+\PValue{marginpar}, also die vordefinierte Notizspalte
+verwendet. Es\textnote{Achtung!} sei an dieser Stelle darauf hingewiesen, dass
+ein leeres optionales Argument nicht gleichbedeutend mit dem Weglassen eines
+optionalen Arguments ist!
+
+Es ist nicht\textnote{Achtung!} erlaubt, \Macro{syncwithnotecolumn} innerhalb
+einer Notiz selbst, also im obligatorischen Argument von
+\Macro{makenote}\IndexCmd{makenote} zu verwenden! Dieser Fehler kann derzeit
+nicht abgefangen werden und führt dazu, dass mit jedem \LaTeX-Lauf neue
+Verschiebungen auf"|treten, so dass nie ein endgültiger Zustand erreicht
+wird. Um zwei oder mehrere Notizspalten miteinander zu synchronisieren, sind
+sie stattdessen mit dem Haupttext zu synchronisieren, da dabei auch die
+Spalten miteinander synchronisiert werden. Die hierzu empfohlene Anweisung
+wird nachfolgend beschrieben.%
+%
+\begin{Example}
+ Führen wir nun das obige Beispiel fort, indem wir zunächst einen
+ Synchronisationspunkt und dann einen weiteren Paragraphen
+ mit Kommentar hinzufügen:
+\begin{lstcode}
+ \syncwithnotecolumn[paragraphs]\bigskip
+ \makenote[paragraphs]{%
+ \protect\begin{contract}
+ \protect\Clause{title={Komik der Kultur}}
+ \setcounter{par}{0}%
+ Die Komik eines Witzes kann durch das
+ kulturelle Umfeld, in dem er erzählt wird,
+ bestimmt sein.
+
+ Die Komik eines Witzes kann durch das
+ kulturelle Umfeld, in dem er spielt,
+ bestimmt sein.
+ \protect\end{contract}
+ }
+ Die kulturelle Komponente eines Witzes ist
+ tatsächlich nicht zu vernachlässigen. Über die
+ politische Korrektheit der Nutzung des
+ kulturellen Umfeldes kann zwar treff"|lich
+ gestritten werden, nichtsdestotrotz ist die
+ Treffsicherheit einer solchen Komik im
+ entsprechenden Umfeld frappierend. Auf der
+ anderen Seite kann ein vermeintlicher Witz im
+ falschen kulturellen Umfeld auch zu einer
+ echten Gefahr für den Witzeerzähler werden.
+\end{lstcode}
+ Außer dem Synchronisationspunkt wurde hier auch noch ein vertikaler
+ Abstand mit \Macro{bigskip} eingefügt, um die einzelnen Paragraphen und ihre
+ Kommentare besser voneinander abzusetzen.
+
+ Außerdem\textnote{Achtung!} wird hier ein weiterer Punkt, der zu einem
+ Problem werden kann, sichtbar. Da die Notizspalten mit Boxen arbeiten, die
+ zusammengebaut und zerlegt werden, kann es bei Zählern\textnote{Zähler in
+ Notizspalten} innerhalb der Notizspalten teilweise zu Verschiebungen
+ kommen. Im Beispiel würde daher der erste Absatz nicht mit 1, sondern mit 2
+ nummeriert. Dies kann jedoch mit einem beherzten Zurücksetzen des
+ entsprechenden Zählers leicht korrigiert werden.
+
+ Das Beispiel ist damit fast fertig, was noch fehlt, ist das Ende der
+ Umgebungen:
+\begin{lstcode}
+ \end{addmargin}
+ \end{document}
+\end{lstcode}
+ Tatsächlich wären natürlich auch noch die restlichen Paragraphen des
+ Gesetzes zu kommentieren. Dies sei mir hier jedoch erlassen.
+\end{Example}%
+Doch halt! Was wäre, wenn in diesem Beispiel der Paragraph nicht mehr auf die
+Seiten passen würde? Würde er dann auf der nächsten Seite ausgegeben? Diese
+Frage wird im nächsten Abschnitt beantwortet werden.
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{syncwithnotecolumns}\OParameter{Liste von Notizspalte}
+\end{Declaration}
+Diese Anweisung führt eine Synchronisierung des Haupttextes mit allen in der
+mit Komma separierten \PName{Liste von Notizspalten} angegebenen Notitzspalten
+durch. Dabei wird der Haupttext mit der Notizspalte synchronisiert, deren
+Marke am weitesten hinten im Dokument steht. Somit werden als Nebeneffekt auch
+die Notizspalten untereinander synchronisiert.
+
+Wird das optionale Argument nicht angegeben oder ist es leer, so wird mit
+allen deklarierten Notizspalten synchronisiert.%
+\EndIndexGroup
+
+
+\section{Erzwungene Ausgabe von Notizspalten}
+\seclabel{clearnotes}
+
+\iftrue % Umbruchkorrektur
+Im vorherigen Abschnitt wurde dokumentiert, wie die Ausgabe der Notitzspalten
+normalerweise erfolgt. Manchmal ist es aber %
+\else%
+Neben der normalen Ausgabe der Notizspalten, wie sie im vorherigen Abschnitt
+beschrieben ist, ist es manchmal %
+\fi %
+auch erforderlich, alle aufgesammelten Notizen, die noch nicht ausgegeben
+wurden, unmittelbar auszugeben. Das ist insbesondere dann sinnvoll, wenn
+längere Notizen dazu führen, dass immer mehr Notizen nach unten und auf neue
+Seiten verschoben werden. Ein guter Zeitpunkt für eine solche erzwungene
+Ausgabe\Index{Ausgabe>erzwungene} ist beispielsweise das Ende eines Kapitels
+oder das Ende des Dokuments.
+
+\begin{Declaration}
+ \Macro{clearnotecolumn}\OParameter{Name der Notizspalte}
+\end{Declaration}
+Mit dieser Anweisung werden alle Notizen einer bestimmen Notizspalte
+ausgegeben, die\textnote{anhängige Notizen}\Index{Notiz>anhaengige=anhängige}
+bis zum Ende der aktuellen Seite noch nicht ausgegeben sind, aber auf dieser
+oder einer vorherigen Seite erstellt wurden. Zur Ausgabe dieser noch
+anhängigen Notizen werden nach Bedarf Leerseiten erstellt. Während der Ausgabe
+der anhängigen Notizen dieser Notizspalte werden gegebenenfalls auch anhängige
+Notizen anderer Notizspalten ausgegeben, jedoch nur so lange, wie dies zur
+Ausgabe der anhängigen Notizen der angegebenen Notizspalte notwendig ist.
+
+Während der Ausgabe der anhängigen Notizen kann es auch geschehen, dass
+irrtümlich Notizen\textnote{irrtümliche
+ Notizen}\Index{Notiz>irrtuemliche=irrtümliche} ausgegeben werden, die im
+vorherigen \LaTeX-Lauf auf den Seiten erstellt wurden, die nun durch die
+eingefügten Leerseiten ersetzt werden. Dies normalisiert sich in einem der
+nächsten \LaTeX-Läufe. Zu erkennen sind solche Verschiebungen in der Regel an
+der Meldung: »\LaTeX{} Warning: Label(s) may have changed. Rerun to get
+cross-references right.«
+
+Die Notizspalte, deren anhängige Notizen ausgegeben werden soll, ist über das
+optionale Argument \PName{Name der Notizspalte} angegeben. Ist kein solches
+Argument angegeben, so wird die vordefinierte Notizspalte \PValue{marginpar}
+verwendet.
+
+Dem aufmerksamen Leser wird nicht entgangen sein, dass die
+erzwungene\textnote{erzwungene Ausgabe vs. Synchronisation} Ausgabe einer
+Notizspalte der Synchronisierung nicht unähnlich ist. Allerdings befindet man
+sich nach der erzwungenen Ausgabe im Fall, dass tatsächlich eine Ausgabe
+stattfindet, am Anfang der Seite nach der letzten Ausgabe und nicht
+unmittelbar unterhalb der letzten Ausgabe. Dafür terminiert die erzwungene
+Ausgabe in der Regel mit weniger \LaTeX-Läufen.%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{clearnotecolumns}\OParameter{Liste von Notizspalten-Namen}
+\end{Declaration}
+Diese Anweisung arbeitet vergleichbar mit
+\DescRef{\LabelBase.cmd.clearnotecolumn}. Allerdings kann hier als optionales
+Argument nicht nur eine Notizspalte angegeben werden, sondern es ist eine
+durch Komma getrennte Liste mehrerer Namen von Notizspalten erlaubt. Es werden
+dann die anhängigen Notizen all dieser Spalten ausgegeben.
+
+Wurde das optionale Argument nicht angegeben oder ist es leer, so werden die
+anhängigen Notizen aller Notizspalten ausgegeben.%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \OptionVName{autoclearnotecolumns}{Ein-Aus-Wert}
+\end{Declaration}
+In der Regel wird man anhängige Notizen immer dann ausgeben lassen, wenn im
+Dokument explizit oder implizit -- beispielsweise in Folge von
+\DescRef{maincls.cmd.chapter} -- die Anweisung \DescRef{maincls.cmd.clearpage}
+ausgeführt wird. Dies ist auch am Ende eines Dokuments innerhalb von
+\Macro{end}\PParameter{document} der Fall. Über die Option
+\Option{autoclearnotecolumns} kann daher gesteuert werden, ob bei Ausführung
+von \DescRef{maincls.cmd.clearpage} automatisch auch
+\DescRef{\LabelBase.cmd.clearnotecolumns} ohne Argument ausgeführt werden
+soll. Da davon ausgegangen wird, dass dies in der Regel erwünscht ist, ist die
+Option in der Voreinstellung aktiv. Man kann sie jedoch über die
+entsprechenden Werte für einfache Schalter (siehe
+\autoref{tab:truefalseswitch} auf \autopageref{tab:truefalseswitch}) jederzeit
+aus- und auch wieder einschalten.
+
+Es ist zu beachten\textnote{Achtung!}, dass im Falle der Deaktivierung der
+automatischen Ausgabe anhängiger Notizen am Ende des Dokuments Notizen ganz
+oder teilweise verloren gehen können. Daher sollte man in diesem Fall vor
+\Macro{end}\PParameter{document} sicherheitshalber ein
+\DescRef{\LabelBase.cmd.clearnotecolumns} einfügen.
+
+Damit ist nun auch die Frage nach dem Beispiel im letzten Abschnitt
+beantwortet, ob der Paragraph auch komplett ausgegeben würde, wenn er auf die
+nächste Seite umbrochen werden müsste. Dies ist in der Voreinstellung
+selbstverständlich der Fall. Da es jedoch nach dem Ende der
+\DescRef{maincls.env.addmargin}-Umgebung geschehen würde, könnte es eventuell
+noch zu Überlappungen durch nachfolgenden Text kommen. Daher wäre es im
+Beispiel durchaus sinnvoll, nach der \DescRef{maincls.env.addmargin}-Umgebung
+einen weiteren Synchronisationspunkt einzufügen.
+
+Das Ergebnis des Beispiels ist übrigens in
+\autoref{fig:scrlayer-notecolumn.example} zu sehen.\iffree{}{ Dabei wurde
+ lediglich die Farbeinstellung für die \PValue{paragraphs}-Spalte von Blau in
+ Grau geändert.}
+
+\begin{figure}
+ \KOMAoptions{captions=bottombeside}%
+ \setcapindent{0pt}%
+ \begin{captionbeside}[{Eine Ergebnisseite zu dem Beispiel aus dem Kapitel}]%
+ {Eine Ergebnisseite zu dem Beispiel aus diesem
+ Kapitel\label{fig:scrlayer-notecolumn.example}}[l]
+ \frame{\includegraphics[width=.667\textwidth,keepaspectratio]%
+ {scrlayer-notecolumn-example-de}}
+ \end{captionbeside}
+\end{figure}
+\EndIndexGroup
+%
+\EndIndexGroup
+
+%%% Local Variables:
+%%% mode: latex
+%%% TeX-master: "scrguide-de.tex"
+%%% coding: utf-8
+%%% ispell-local-dictionary: "de_DE"
+%%% eval: (flyspell-mode 1)
+%%% End:
+
+% LocalWords: Randnotizen Entwicklungsstadium Notizspalte Notizspalten
+% LocalWords: Neukonfigurierung Synchronisierungspunkt marginpar marginline
+% LocalWords: Haupttext Demonstrationszwecken Längenausdruck Gesetzestexten
+% LocalWords: Längenausdrücken Satzspiegels typearea scrlayer notecolumn
+% LocalWords: AfterCalculatingTypearea scrjura scrpage Farbeinstellung
+% LocalWords: Sternvariante