summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/koma-script/source-doc/ngerman/typearea-experts.tex
blob: 9b071f0edd3ebf85869d514e22919bc8a64c525c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
% ======================================================================
% typearea-experts.tex
% Copyright (c) Markus Kohm, 2008-2018
%
% 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.
% ----------------------------------------------------------------------
% typearea-experts.tex
% Copyright (c) Markus Kohm, 2008-2018
%
% 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.
% ======================================================================
%
% Chapter about typearea of the KOMA-Script guide part II
% Maintained by Markus Kohm
%
% ----------------------------------------------------------------------
%
% Kapitel über typearea in der KOMA-Script-Anleitung Teil II
% Verwaltet von Markus Kohm
%
% ======================================================================

\KOMAProvidesFile{typearea-experts.tex}
                 [$Date: 2018-01-31 09:49:41 +0100 (Wed, 31 Jan 2018) $
                  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. 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.

\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
bei einem eigenen Aufruf von \Macro{newgeometry} alle gewünschten
Einstellungen explizit vornehmen. Nichts desto Trotz 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 Zeile 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.%
\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.\iffree{ Da die Beschreibungen für
  Experten gedacht sind, sind sie kürzer gefasst.}{}

\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 wieder hergestellt 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}
  Sie wollen in einem Dokument im Hochformat eine Seite im Querformat
  unterbringen. Mit \Macro{storeareas} kein Problem:
\begin{lstcode}
  \documentclass{scrartcl}

  \begin{document}
  \noindent\rule{\textwidth}{\textheight}

  \storeareas\meinegespeichertenWerte
  \KOMAoptions{paper=landscape,DIV=current}
  \noindent\rule{\textwidth}{\textheight}

  \clearpage
  \meinegespeichertenWerte
  \noindent\rule{\textwidth}{\textheight}
  \end{document}
\end{lstcode}
  Wichtig\textnote{Achtung!} ist dabei 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
%%% coding: iso-latin-1
%%% TeX-master: "../guide"
%%% End:

% LocalWords:  Hochformat Seitenspiegels