diff options
Diffstat (limited to 'macros/latex/contrib/koma-script/doc/typearea-experts-de.tex')
-rw-r--r-- | macros/latex/contrib/koma-script/doc/typearea-experts-de.tex | 304 |
1 files changed, 304 insertions, 0 deletions
diff --git a/macros/latex/contrib/koma-script/doc/typearea-experts-de.tex b/macros/latex/contrib/koma-script/doc/typearea-experts-de.tex new file mode 100644 index 0000000000..cd9b859737 --- /dev/null +++ b/macros/latex/contrib/koma-script/doc/typearea-experts-de.tex @@ -0,0 +1,304 @@ +% ====================================================================== +% typearea-experts-de.tex +% Copyright (c) Markus Kohm, 2008-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 typearea of the KOMA-Script guide part II +% Maintained by Markus Kohm +% +% ====================================================================== + +\KOMAProvidesFile{typearea-experts-de.tex} + [$Date: 2022-06-05 12:40:11 +0200 (So, 05. Jun 2022) $ + KOMA-Script guide (chapter: typearea for experts)] + +\chapter{Zusätzliche Informationen zum Paket \Package{typearea.sty}} +\labelbase{typearea-experts} + +\BeginIndexGroup \BeginIndex{Package}{typearea} In diesem Kapitel finden Sie +zusätzliche Informationen zum Paket +\hyperref[cha:typearea]{\Package{typearea}}. \iffree{Einige Teile des Kapitels + sind dabei dem \KOMAScript-Buch \cite{book:komascript} vorbehalten. Dies + sollte kein Problem sein, denn der}{Der} normale Anwender, der das Paket +einfach nur verwenden will, wird diese Informationen eher selten +benötigen. Ein Teil der Informationen richtet sich an Anwender, die +ausgefallene Aufgaben lösen oder eigene Pakete schreiben wollen, die auf +\Package{typearea} basieren. Ein weiterer Teil der Informationen behandelt +Möglichkeiten von \Package{typearea}, die aus Gründen der Kompatibilität zu +den Standardklassen oder früheren Versionen von \KOMAScript{} existieren. Die +Teile, die nur aus Gründen der Kompatibilität zu früheren Versionen von +\KOMAScript{} existieren, sind in serifenloser Schrift gesetzt und sollten +nicht mehr verwendet werden. + + +\section{Experimentelle Möglichkeiten} +\seclabel{experimental} + +In diesem Abschnitt werden experimentelle Möglichkeiten +beschrieben. Experimentell bedeutet in diesem Zusammenhang, dass die Funktion +nicht garantiert werden kann. +\iffalse % Umbruchkorrektur +Dafür kann es zwei Gründe geben. Zum einen +steht die endgültige Funktion oder Implementierung eventuell noch nicht +abschließend fest. Zum anderen hängen die Möglichkeiten teilweise von Interna +anderer Pakete ab und können deshalb in ihrer Funktion nur so lange garantiert +werden, wie diese anderen Pakete nicht geändert werden. +\fi + +\begin{Declaration} + \OptionVName{usegeometry}{Ein-Aus-Wert} +\end{Declaration} +Normalerweise kümmert sich \Package{typearea} wenig darum, ob es in irgend +einer Konstellation zusammen mit dem Paket +\Package{geometry}\IndexPackage{geometry} (siehe \cite{package:geometry}) +verwendet wird. Das bedeutet insbesondere, dass \Package{geometry} nach wie +vor nichts davon mitbekommt, wenn man mit \Package{typearea} beispielsweise +die Papiergröße ändert -- etwas, das \Package{geometry} selbst gar nicht +bietet. + +Sobald\ChangedAt{v3.17}{\Package{typearea}} Option \Option{usegeometry} +gesetzt wird, versucht \Package{typearea}, alle eigenen Optionen für +\Package{geometry} in dessen Optionen zu übersetzen. Innerhalb des Dokuments +wird sogar \Macro{newgeometry} aufgerufen, wenn neue Parameter aktiviert +werden (siehe \DescRef{\LabelBase.cmd.activateareas} im nachfolgenden +Abschnitt). Da \Package{geometry} keine Änderung der Papiergröße oder +Papierausrichtung via \Macro{newgeometry} bietet, wird diese bei Bedarf über +interne Anweisungen und Längen von \Package{geometry} umgesetzt. Getestet ist +dies für \Package{geometry}~5.3 bis 5.6. + +Die Option bedeutet übrigens nicht, dass bei Verwendung von \Package{geometry} +nach einer Papiergrößen- oder Papierausrichtungsänderung mit +\Package{typearea} das neue Papier direkt optimal genutzt wird. Da +\Package{geometry} aus Komfortgründen deutlich mehr Optionen für die +Papiereinstellung bietet, als für die Bestimmung von Textbereich, Rändern, +Kopf, Fuß etc. benötigt werden -- man spricht von \emph{Überbestimmung} -- und +gleichzeitig bei neuen Aufrufen von \Macro{newgeometry} fehlende Angaben aus +bereits bekannten ableitet -- man spricht von \emph{Werterhalt} --, +muss man gegebenenfalls durch vollständige Bestimmung neuer Werte +mit einem eigenen Aufruf von \Macro{newgeometry} alle gewünschten +Einstellungen explizit vornehmen. Nichtsdestotrotz kann die Berücksichtigung +von \Package{geometry} durch \Package{typearea} zusätzliche Möglichkeiten +eröffnen. + +{\setlength{\emergencystretch}{1em}% +Von \Package{typearea} werden mit \Option{usegeometry} für \Package{geometry} +derzeit die Optionen +\Option{bindingoffset}, \Option{footskip}, \Option{headheight}, +\Option{headsep}, \Option{includefoot}, \Option{includehead}, +\Option{includemp}, \Option{lmargin}, \Option{marginparsep}, +\Option{marginparwidth}, \Option{textheight}, \Option{textwidth}, \Option{top} +und in der Dokumentpräambel zusätzlich \Option{paperheight} und +\Option{paperwidth} gesetzt.\par}% +\EndIndexGroup + + +\begin{Declaration} + \OptionVName{areasetadvanced}{Ein-Aus-Wert} + \Macro{areaset}\OParameter{BCOR}\Parameter{Breite}\Parameter{Höhe} +\end{Declaration} +Normalerweise berücksichtigt \DescRef{typearea.cmd.areaset} Optionen zur +Bestimmung der Höhe von Kopf und Fuß oder zur Festlegung, ob Randelemente Teil +des Satzspiegels sein sollen, nicht in gleicher Weise wie +\DescRef{typearea.cmd.typearea}. Mit Option +\Option{areasetadvanced}\ChangedAt{v3.11}{\Package{typearea}} kann jedoch +eingestellt werden, dass sich \DescRef{typearea.cmd.areaset} diesbezüglich +mehr wie \DescRef{typearea.cmd.typearea} verhalten soll. Trotzdem +unterscheiden sich Einstellungen, die zu gleich großen Textbereichen führen +zwischen den beiden Befehlen weiterhin, da \DescRef{typearea.cmd.typearea} +immer auf ganze Zeilen rundet und dabei gegebenenfalls den unteren Rand um bis +zu eine Zeile kleiner wählt, während \DescRef{typearea.cmd.areaset} den oberen +und unteren Rand immer im Verhältnis 1:2 einstellt. Die Textbereiche der +unterschiedlichen Befehle können also bei gleicher Größe vertikal leicht +verschoben sein. + +Nach Aktivierung von \Option{areasetadvanced} kann jedoch mit einer +Kombination wie +\begin{lstcode}[escapeinside=><] + \typearea{>\PName{BCOR}<}{>\PName{DIV}<} + \areaset[current]{\textwidth}{\textheight} +\end{lstcode} +das unterschiedliche Verhalten ausgeglichen werden, ohne dass dabei die +eingangs erwähnten Abstriche in der Arbeitsweise von \Macro{areaset} in Kauf +genommen werden müssen. Siehe dazu auch das Beispiel im nächsten Abschnitt.% +\EndIndexGroup + + +\section{Anweisungen für Experten} +\seclabel{experts} + + +In diesem Abschnitt werden Anweisungen beschrieben, die für den normalen +Anwender kaum oder gar nicht von Interesse sind. Experten bieten diese +Anweisungen zusätzliche Möglichkeiten. + +\begin{Declaration} + \Macro{activateareas} +\end{Declaration}% +Diese Anweisung wird von \Package{typearea} genutzt, um die Einstellungen für +Satzspiegel und Ränder in die internen \LaTeX-Längen zu übertragen, wenn der +Satzspiegel innerhalb des Dokuments, also nach +\Macro{begin}\PParameter{document} neu berechnet wurde. Wurde die Option +\DescRef{typearea.option.pagesize} verwendet, so wird diese anschließend mit +demselben Wert neu aufgerufen. Damit kann beispielsweise innerhalb von +PDF-Dokumenten die Seitengröße tatsächlich variieren. + +Experten können diese Anweisung auch verwenden, wenn Sie aus irgendwelchen +Gründen Längen wie \Length{textwidth} oder \Length{textheight} innerhalb des +Dokuments manuell geändert haben. Der Experte ist dabei für eventuell +notwendige Seitenumbrüche vor oder nach der Verwendung jedoch selbst +verantwortlich! Darüber hinaus sind alle von \Macro{activateareas} +durchgeführten Änderungen lokal!% +\EndIndexGroup + + +\begin{Declaration} + \Macro{storeareas}\Parameter{Anweisung} + \Macro{BeforeRestoreareas}\Parameter{Code} + \Macro{BeforeRestoreareas*}\Parameter{Code} + \Macro{AfterRestoreareas}\Parameter{Code} + \Macro{AfterRestoreareas*}\Parameter{Code} +\end{Declaration} +Mit Hilfe von \Macro{storeareas} wird eine \PName{Anweisung} definiert, über +die alle aktuellen Seitenspiegeleinstellungen wiederhergestellt werden +können. So ist es möglich, die aktuellen Einstellungen zu speichern, +anschließend die Einstellungen zu ändern und dann die gespeicherten +Einstellungen wieder zu reaktivieren. + +\begin{Example} + Immer wieder fragen Anwender nach der Möglichkeit, in einem A4-Dokument + unter Beibehaltung der Randeinstellungen eine A3-Seite im Querformat + einfügen zu können. Der Textbereich soll also lediglich um die gewonnene + Papierbreite verbreitert werden. Mit \Macro{storeareas}, + \DescRef{\LabelBase.cmd.areaset} und der zuvor bereits erklärten Option + \DescRef{\LabelBase.option.areasetadvanced} ist das sehr einfach möglich: +\begin{lstcode} + \documentclass[areasetadvanced]{scrartcl} + \areaset[current]{\textwidth}{\textheight} + + \begin{document} + \noindent\rule{\textwidth}{\textheight} + + \storeareas\meinegespeichertenWerte + \KOMAoption{paper}{a3,landscape} + \areaset[current] + {\dimexpr\textwidth+.5\paperwidth\relax} + {\textheight} + \noindent\rule{\textwidth}{\textheight} + + \clearpage + \meinegespeichertenWerte + \noindent\rule{\textwidth}{\textheight} + \end{document} +\end{lstcode} + Die \DescRef{\LabelBase.cmd.areaset}-Anweisung\IndexCmd{areaset} in der + Dokumentpräambel dient dabei zusammen mit Option + \DescRef{\LabelBase.option.areasetadvanced}\IndexOption{areasetadvanced} + dazu, die Unterschiede zwischen der + \DescRef{typearea.cmd.typearea}-Voreinstellung und der späteren Verwendung + von \DescRef{\LabelBase.cmd.areaset} auszugleichen, wie dies bereits auf + \DescPageRef{\LabelBase.option.areasetadvanced} erklärt wurde. Ohne diese + Maßnahme könnte es insbesondere bei Verwendung von Optionen wie + \DescRef{typearea.option.headinclude} und + \DescRef{typearea.option.headheight} zu deutlichen Abweichungen bei den + Randeinstellungen kommen. + + Wichtig\textnote{Achtung!} ist auch die Anweisung + \DescRef{maincls.cmd.clearpage} vor dem Aufruf von + \Macro{meinegespeichertenWerte}, damit die Wiederherstellung erst auf der + nächsten Seite erfolgt. Bei doppelseitigen Dokumenten sollte bei Änderungen + am Papierformat stattdessen sogar + \DescRef{maincls.cmd.cleardoubleoddpage}\IndexCmd{cleardoubleoddpage} oder + -- wenn keine \KOMAScript-Klasse zum Einsatz kommt -- + \DescRef{maincls.cmd.cleardoublepage}\IndexCmd{cleardoublepage} verwendet + werden.% + \iffree{\par Außerdem wird \Macro{noindent} verwendet, um den normalen + Absatzeinzug vor den schwarzen Kästen zu verhindern. Sie würden sonst kein + korrektes Bild des Seitenlayouts wiedergeben.}{}% +\end{Example} + +Bei\textnote{Achtung!} der Verwendung von \Macro{storeareas} ist zu beachten, +dass sowohl \Macro{storeareas} als auch die damit definierte \PName{Anweisung} +nicht innerhalb einer Gruppe aufgerufen werden sollten. Die Definition der +\PName{Anweisung} erfolgt intern mit +\Macro{newcommand}\IndexCmd{newcommand*}\important{\Macro{newcommand*}}. Bei +erneuter Verwendung einer bereits definierten \PName{Anweisung} wird eine +entsprechende Fehlermeldung ausgegeben. + +Oftmals\ChangedAt{v3.18}{\Package{typearea}} ist auch erwünscht, vor der +Wiederherstellung der Einstelllungen per \PName{Anweisung} grundsätzlich +bestimmte Aktionen wie beispielsweise ein +\DescRef{maincls.cmd.cleardoubleoddpage} auszuführen. Dies kann man mit Hilfe +von \Macro{BeforeRestoreareas} und \Macro{BeforeRestoreareas*} +erreichen. Entsprechend kann man mit \Macro{AfterRestoreareas} und +\Macro{AfterRestoreareas*} \PName{Code} nach der Wiederherstellung der +Einstellungen ausführen lassen. Die Formen mit und ohne Stern unterscheiden +sich insoweit, als die Sternform nur für noch nicht per \Macro{storeareas} +gespeicherte Einstellungen gilt, während sich die Variante ohne Stern auch auf +die zukünftige Verwendung bereits früher gespeicherter Einstellungen +auswirkt.% +% +\EndIndexGroup + + +\begin{Declaration} + \Macro{AfterCalculatingTypearea}\Parameter{Anweisungen} + \Macro{AfterCalculatingTypearea*}\Parameter{Anweisungen} + \Macro{AfterSettingArea}\Parameter{Anweisungen} + \Macro{AfterSettingArea*}\Parameter{Anweisungen} +\end{Declaration}% +Diese Anweisungen dienen der Verwaltung zweier Haken\Index{Haken} (engl. +\emph{hooks}\Index{hook=\emph{hook}}). Die ersten beiden, +\Macro{AfterCalculatingTypearea} und deren Sternform, ermöglichen es dem +Experten jedes Mal, nachdem \Package{typearea} eine neue Auf"|teilung in +Satzspiegel und Ränder berechnet hat, also nach jeder impliziten oder +expliziten Ausführung von \DescRef{typearea.cmd.typearea}, \PName{Anweisungen} +ausführen zu lassen. Entsprechendes leisten +\Macro{AfterSettingArea}\ChangedAt{v3.11}{\Package{typearea}} und dessen +Stern-Form für die Ausführung von \DescRef{typearea.cmd.areaset}. Die +Normalformen arbeiten dabei global, während die Änderungen durch die +Sternformen nur lokal wirksam sind. Die \PName{Anweisungen} werden jeweils +unmittelbar vor \DescRef{\LabelBase.cmd.activateareas} ausgeführt.\iffree{}{ + In \autoref{cha:modernletters} wird für die \emph{Letter-Class-Option} + \File{asymTypB.lco} davon Gebrauch gemacht, um die Randverteilung zu + ändern.}% +% +\EndIndexGroup + + +\section{Lokale Einstellungen durch die Datei \File{typearea.cfg}} +\seclabel{cfg} +\BeginIndex{File}{typearea.cfg} + +\LoadNonFree{typearea-experts}{0} + +\section{Mehr oder weniger obsolete Optionen und Anweisungen} +\seclabel{obsolete} + +\LoadNonFree{typearea-experts}{1} +% +\EndIndexGroup + +%%% Local Variables: +%%% mode: latex +%%% TeX-master: "scrguide-en.tex" +%%% coding: utf-8 +%%% ispell-local-dictionary: "en_GB" +%%% eval: (flyspell-mode 1) +%%% End: + +% LocalWords: Hochformat Seitenspiegels |