% ====================================================================== % typearea.tex % Copyright (c) Markus Kohm, 2001-2008 % % 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.3b of the license. % The latest version of this license is in % http://www.latex-project.org/lppl.txt % and version 1.3b 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.tex % Copyright (c) Markus Kohm, 2001-2008 % % Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, % Version 1.3b, verteilt und/oder veraendert werden. % Die neuste Version dieser Lizenz ist % http://www.latex-project.org/lppl.txt % und Version 1.3b 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 % Maintained by Markus Kohm % % ---------------------------------------------------------------------- % % Kapitel über typearea in der KOMA-Script-Anleitung % Verwaltet von Markus Kohm % % ====================================================================== \ProvidesFile{typearea.tex}[2008/10/31 KOMA-Script guide (chapter: typearea)] \chapter{Satzspiegelberechnung mit \Package{typearea.sty}} \labelbase{typearea} Viele \LaTeX-Klassen, darunter auch die Standardklassen, bieten dem Anwender eine weitgehend feste Auf"|teilung von Rändern und Textbereich. Bei den Standardklassen ist die konkrete Auf"|teilung in engen Grenzen von der gewählten Schriftgröße abhängig. Darüber hinaus gibt es Pakete wie \Package{geometry}\IndexPackage{geometry} (siehe \cite{package:geometry}), die dem Anwender die volle Kontrolle, aber auch die Verantwortung für die Einstellungen des Textbereichs und der Ränder überlassen. \KOMAScript{} geht mit dem Paket \Package{typearea} einen etwas anderen Weg. Hier werden basierend auf einer in der Typografie etablierten Konstruktion Einstellmöglichkeiten und Automatismen geboten, die es dem Anwender erleichtern, eine gute Wahl zu treffen. Es wird darauf hingewiesen, dass sich \Package{typearea} des Pakets \Package{scrbase} bedient. Letzteres Paket ist im Expertenteil \iffree{dieser Anleitung}{dieses Buches} in \autoref{cha:scrbase} ab \autopageref{cha:scrbase} erklärt. Die Mehrzahl der dort dokumentierten Anweisungen richten sich jedoch nicht an Anwender, sondern an Klassen- und Paketautoren. \section{Grundlagen der Satzspiegelkonstruktion} \label{sec:typearea.basics} \begin{Explain} Betrachtet man eine einzelne Seite eines Buches oder eines anderen Druckwerkes, so besteht diese auf den ersten Blick aus den Rändern% \iffalse% Umbruchkorrekturtext \footnote{Der Autor und der Lektor haben an dieser Stelle überlegt, ob eine Seite nicht nur einen umlaufenden Rand hat und daher von »dem Rand« die Rede sein müsste. Da jedoch \LaTeX{} diesen einen Rand logisch in mehrere Ränder unterteilt, die getrennt bestimmt werden, ist hier auch von »den Rändern« die Rede.}% \fi% , einem Kopfbereich, einem Textkörper und einem Fußbereich. Genauer betrachtet kommt noch ein Abstand zwischen Kopfbereich und Textkörper sowie zwischen Textkörper und Fußbereich hinzu. Der Textkörper heißt in der Fachsprache der Typografen und Setzer \emph{Satzspiegel}. Die Auf"|teilung dieser Bereiche, sowie ihre Anordnung zueinander und auf dem Papier nennen wir \emph{Satzspiegeldefinition} oder \emph{Satzspiegelkonstruktion}.\Index[indexmain]{Satzspiegel} In der Literatur werden verschiedene Algorithmen und heuristische Verfahren zur Konstruktion eines guten Satzspiegels vorgeschlagen und diskutiert \ifx\BUCH\undefined\cite{DANTE:TK0402:MJK}\else(siehe \autoref{cha:typeareaconstruction})\fi. Häufig findet man dabei ein Verfahren, das mit verschiedenen Diagonalen und Schnittpunkten arbeitet. Das gewünschte Ergebnis dabei ist, dass das Seitenverhältnis des Satzspiegels dem Seitenverhältnis \emph{der Seite} entspricht. Bei einem einseitigen\Index{einseitig} Dokument sollen außerdem der linke und der rechte Rand gleich breit sein, während der obere zum unteren Rand im Verhältnis 1:2 stehen sollte. Bei einem doppelseitigen\Index{doppelseitig} Dokument, beispielsweise einem Buch, ist hingegen zu beachten, dass der gesamte innere Rand genauso groß sein sollte wie jeder der beiden äußeren Ränder. Eine einzelne Seite steuert dabei jeweils nur die Hälfte des inneren Randes bei. Im vorherigen Absatz wurde \emph{die Seite} erwähnt und hervorgehoben. Irrtümlich wird oftmals angenommen, das Format der Seite wäre mit dem Format des Papiers gleichzusetzen.\Index[indexmain]{Seitenformat} \Index[indexmain]{Papierformat} Betrachtet man jedoch ein gebundenes Druckerzeugnis, so ist zu erkennen, dass ein Teil des Papiers in der Bindung\Index[indexmain]{Bindung} verschwindet und nicht mehr als Seite zu sehen ist. Für den Satzspiegel ist jedoch nicht entscheidend, welches Format das Papier hat, sondern, was der Leser für einen Eindruck vom Format der Seite bekommt. Damit ist klar, dass bei der Berechnung des Satzspiegels der Teil, der durch die Bindung versteckt wird, aus dem Papierformat herausgerechnet und dann zum inneren Rand hinzugefügt werden muss. Wir nennen diesen Teil \emph{Bindekorrektur}.\Index[indexmain]{Bindekorrektur} Die Bindekorrektur ist also rechnerischer Bestandteil des \emph{Bundstegs}\Index[indexmain]{Bundsteg}, nicht jedoch des sichtbaren inneren Randes. Die Bindekorrektur ist vom jeweiligen Produktionsvorgang abhängig und kann nicht allgemein festgelegt werden. Es handelt sich dabei also um einen Parameter, der für jeden Produktionsvorgang neu festzulegen ist. Im professionellen Bereich spielt dieser Wert nur eine geringe Rolle, da ohnehin auf größere Papierbögen gedruckt und entsprechend geschnitten wird. Beim Schneiden wird dann wiederum sichergestellt, dass obige Verhältnisse für die sichtbare Doppelseite eingehalten sind. Wir wissen nun also, wie die einzelnen Teile zueinander stehen. Wir wissen aber noch nicht, wie breit und hoch der Satzspiegel ist. Kennen wir eines dieser beiden Maße, so ergeben sich zusammen mit dem Papierformat und dem Seitenformat oder der Bindekorrektur alle anderen Maße durch Lösung mehrerer mathematischer Gleichungen. \begin{align*} \Var{Satzspiegelhöhe}\Index{Satzspiegel} : \Var{Satzspiegelbreite} &= \Var{Seitenhöhe}\Index{Seite} : \Var{Seitenbreite} \\ \Var{oberer~Rand}\Index{Rand} : \Var{unterer~Rand} &= \text{1} : \text{2} \\ % \Var{linker~Rand} : \Var{rechter~Rand} &= \text{1} : \text{1} \\ % \Var{innerer~Randanteil} : \Var{äußerer~Rand} &= \text{1} : \text{2} \\ % \Var{Seitenbreite} &= \Var{Papierbreite}\Index{Papier} - \Var{Bindekorrektur}\Index{Bindekorrektur}\\ % \Var{oberer~Rand} + \Var{unterer~Rand} &= \Var{Seitenhöhe} - \Var{Satzspiegelhöhe} \\ % \Var{linker~Rand} + \Var{rechter Rand} &= \Var{Seitenbreite} - \Var{Satzspiegelbreite} \\ % \Var{innerer Randanteil} + \Var{äußerer Rand} &= \Var{Seitenbreite} - \Var{Satzspiegelbreite} \\ % \Var{innerer~Randanteil} + \Var{Bindekorrektur} &= \Var{Bundsteg}\index{Bundsteg} \end{align*} \Index[indexmain]{Rand}% Dabei gibt es \Var{linker~Rand} und \Var{rechter~Rand} nur im einseitigen Druck. Entsprechend gibt es \Var{innerer~Randanteil} und \Var{äußerer~Rand} nur im doppelseitigen Druck. In den Gleichungen wird mit \Var{innerer~Randanteil} gearbeitet, weil der ganze innere Rand zur Doppelseite gehört. Zu einer Seite gehört also nur die Hälfte des inneren Randes, \Var{innerer~Randanteil}. Die Frage nach der Breite des Satzspiegels wird in der Literatur ebenfalls diskutiert. Die optimale Satzspiegelbreite ist von verschiedenen Faktoren abhängig: \begin{itemize} \item Größe, Laufweite und Art der verwendeten Schrift \item Verwendeter Durchschuss \item Länge der Worte \item Verfügbarer Platz \end{itemize} Der Einfluss der Schrift wird deutlich, wenn man sich bewusst macht, wozu Serifen dienen. Serifen\Index[indexmain]{Serifen} sind kleine Striche an den Linienenden der Buchstaben. Buchstaben, die mit vertikalen Linien auf die Grundlinie der Textzeile treffen, lösen diese eher auf, als dass sie das Auge auf der Linie halten. Genau bei diesen Buchstaben liegen die Serifen horizontal auf der Grundlinie und verstärken damit die Zeilenwirkung der Schrift. Das Auge kann der Textzeile nicht nur beim Lesen der Worte, sondern insbesondere auch beim schnellen Zurückspringen an den Anfang der nächsten Zeile besser folgen. Damit darf die Zeile bei einer Schrift mit Serifen genau genommen länger sein als bei einer Schrift ohne Serifen. Unter dem Durchschuss\Index[indexmain]{Durchschuss} versteht man den Abstand zwischen Textzeilen. Bei \LaTeX{} ist ein Durchschuss von etwa 20\,\% der Schriftgröße voreingestellt. Mit Befehlen wie \Macro{linespread}\IndexCmd{linespread} oder besser mit Hilfe von Paketen wie \Package{setspace}\IndexPackage{setspace} (siehe \cite{package:setspace}) kann der Durchschuss verändert werden. Ein großer Durchschuss erleichtert dem Auge die Verfolgung einer Zeile. Bei sehr großem Durchschuss wird das Lesen aber dadurch gestört, dass das Auge zwischen den Zeilen weite Wege zurücklegen muss. Daneben wird sich der Leser des entstehenden Streifeneffekts sehr deutlich und unangenehm bewusst. Der Graueindruck der Seite ist in diesem Fall gestört. Dennoch dürfen bei großem Durchschuss die Zeilen länger sein. Auf der Suche nach konkreten Werten für gute Zeilenlängen\Index[indexmain]{Zeilenlaenge=Zeilenlänge} findet man in der Literatur je nach Autor unterschiedliche Angaben. Teilweise ist dies auch in der Muttersprache des Autors begründet. Das Auge springt nämlich üblicherweise von Wort zu Wort, wobei kurze Worte diese Aufgabe erleichtern. Über alle Sprachen und Schriftarten hinweg kann man sagen, dass eine Zeilenlänge von 60 bis 70 Zeichen, einschließlich Leer- und Satzzeichen, einen brauchbaren Kompromiss darstellen. Ein gut gewählter Durchschuss wird dabei vorausgesetzt. Bei den Voreinstellungen von \LaTeX{} braucht man sich über Letzteres normalerweise keine Sorgen zu machen. Größere Zeilenlängen darf man nur Gewohnheitslesern zumuten, die täglich viele Stunden lesend zubringen. Aber auch dann sind Zeilenlängen jenseits von 80 Zeichen unzumutbar. In jedem Fall ist dann der Durchschuss anzupassen. 5\,\% bis 10\,\% zusätzlich sind dabei als Faustregel empfehlenswert. Bei Schriften wie Palatino, die bereits bei einer normalen Zeilenlänge nach 5\,\% mehr Durchschuss verlangt, können es auch mehr sein. Bevor wir uns an die konkrete Konstruktion machen, fehlen jetzt nur noch Kleinigkeiten, die man wissen sollte. \LaTeX{} beginnt die erste Zeile des Textbereichs einer Seite nicht am oberen Rand des Textbereichs, sondern setzt die Grundlinie der Zeile mit einem definierten Mindestabstand zum oberen Rand des Textbereichs. Des Weiteren verfügt \LaTeX{} über die beiden Befehle \Macro{raggedbottom}\IndexCmd{raggedbottom} und \Macro{flushbottom}\IndexCmd{flushbottom}. Der erste dieser Befehle legt fest, dass die letzte Zeile einer jeden Seite dort liegen soll, wo sie eben zu liegen kommt. Das kann dazu führen, dass sich die Position der letzten Zeile von Seite zu Seite vertikal um nahezu eine Zeile verändern kann -- bei Zusammentreffen des Seitenendes mit Überschriften, Abbildungen, Tabellen oder Ähnlichem auch mehr. Im doppelseitigen Druck ist das in der Regel unerwünscht. Mit dem zweiten Befehl, \Macro{flushbottom}, wird hingegen festgelegt, dass die letzte Zeile immer am unteren Rand des Textbereichs zu liegen kommt. Um diesen vertikalen Ausgleich zu erreichen, muss \LaTeX{} gegebenenfalls dehnbare vertikale Abstände über das erlaubte Maß hinaus strecken. Ein solcher Abstand ist beispielsweise der Absatzabstand. Dies gilt in der Regel auch, wenn man gar keinen Absatzabstand verwendet. Um nicht bereits auf normalen Seiten, auf denen der Absatzabstand das einzige dehnbare vertikale Maß darstellt, eine Dehnung zu erzwingen, sollte die Höhe des Textbereichs ein Vielfaches der Textzeilenhöhe zuzüglich des Abstands der ersten Zeile vom oberen Rand des Textbereichs sein. \looseness=-1 % Umbruchkorrektur Damit sind alle Grundlagen der Satzspiegelberechnung, die bei {\KOMAScript} eine Rolle spielen, erklärt. \iffalse% Umbruchkorrektur Wir können also mit der konkreten Konstruktion beginnen. \fi In den folgenden beiden Abschnitten werden die von {\KOMAScript} angebotenen Konstruktionen vorgestellt. \end{Explain} \section{Satzspiegelkonstruktion durch Teilung} \label{sec:typearea.divConstruction} \begin{Explain} Der einfachste Weg, um zu erreichen, dass der Textbereich dasselbe Verhältnis aufweist wie die Seite, ist folgender: Zunächst zieht man an der Innenseite des Papiers den Teil \Var{BCOR}, der für die Bindekorrektur\Index{Bindekorrektur} benötigt wird, ab und teilt die restliche Seite vertikal in eine Anzahl \Var{DIV} gleich hoher Streifen. Dann teilt man die Seite horizontal in die gleiche Anzahl \Var{DIV} gleich breiter Streifen. Nun verwendet man den obersten horizontalen Streifen als oberen und die beiden untersten horizontalen Streifen als unteren Rand. Im doppelseitigen Druck verwendet man außerdem den innersten vertikalen Streifen als inneren und die beiden äußersten vertikalen Streifen als äußeren Rand. Zum inneren Rand gibt man dann noch \Var{BCOR} hinzu. Was nun innerhalb der Seite noch übrig bleibt, ist der Textbereich.\Index{Textbereich} Die Breite bzw. Höhe der Ränder und des Textbereichs resultiert damit automatisch aus der Anzahl \Var{DIV} der Streifen. Da für die Ränder insgesamt jeweils drei Streifen benötigt werden, muss \Var{DIV} zwingend größer als drei sein. Damit der Satzspiegel mindestens doppelt so viel Platz wie die Ränder einnimmt, sollte \Var{DIV} sogar mindestens 9 betragen. Mit diesem Wert ist die Konstruktion auch als \emph{klassische Neunerteilung} bekannt (siehe \autoref{fig:typearea.nineparts}). \begin{figure} \centering \setlength{\unitlength}{.25mm} \definecolor{komalight}{gray}{.75} \definecolor{komamed}{gray}{.6} \definecolor{komadark}{gray}{.3} \begin{picture}(420,297) % BCOR \put(198,0){\color{komalight}\rule{24\unitlength}{297\unitlength}} \multiput(198,2)(0,20){15}{\thinlines\line(0,1){10}} \multiput(222,2)(0,20){15}{\thinlines\line(0,1){10}} % Das Papier \put(0,0){\thicklines\framebox(420,297){}} % \put(210,0){\thicklines\framebox(210,297){}} % Der Satzspiegel \put(44,66){\color{komamed}\rule{132\unitlength}{198\unitlength}} \put(244,66){\color{komamed}\rule{132\unitlength}{198\unitlength}} % Hilfslinien \multiput(0,33)(0,33){8}{\thinlines\line(1,0){198}} \multiput(222,33)(0,33){8}{\thinlines\line(1,0){198}} \multiput(22,0)(22,0){8}{\thinlines\line(0,1){297}} \multiput(244,0)(22,0){8}{\thinlines\line(0,1){297}} % Beschriftung \put(198,0){\color{white}\makebox(24,297)[c]{% \rotatebox[origin=c]{-90}{Bindekorrektur}}} \put(44,66){\color{white}\makebox(132,198)[c]{Satzspiegel links}} \put(244,66){\color{white}\makebox(132,198)[c]{Satzspiegel rechts}} % Kästchennummern \makeatletter \multiput(1,27)(0,33){9}{\footnotesize\makebox(0,0)[l]{\the\@multicnt}} \multiput(177,291)(-22,0){9}{% \footnotesize\makebox(0,0)[l]{\the\@multicnt}} \multiput(419,27)(0,33){9}{% \footnotesize\makebox(0,0)[r]{\the\@multicnt}} \multiput(243,291)(22,0){8}{% \footnotesize\makebox(0,0)[r]{\the\numexpr\@multicnt+1\relax}} \makeatother \end{picture} \caption{Doppelseite mit der Rasterkonstruktion für die klassische Neunerteilung nach Abzug einer Bindekorrektur} \label{fig:typearea.nineparts} \end{figure} Bei {\KOMAScript} ist diese Art der Konstruktion im Paket \Package{typearea} realisiert, wobei der untere Rand weniger als eine Textzeile kleiner ausfallen kann, um die im vorherigen Abschnitt erwähnte Nebenbedingung für die Satzspiegelhöhe einzuhalten und damit die dort erwähnte Problematik in Bezug auf \Macro{flushbottom} zu mindern. Dabei sind für A4-Papier je nach Schriftgröße unterschiedliche Werte für \Var{DIV} voreingestellt, die \autoref{tab:typearea.div}, \autopageref{tab:typearea.div} zu entnehmen sind. Bei Verzicht auf Bindekorrektur, wenn also \Var{BCOR} = 0\Unit{pt} gilt, ergeben sich in etwa die Satzspiegelmaße aus \autoref{tab:typearea.typearea}, \autopageref{tab:typearea.typearea}. Neben den voreingestellten Werten kann man \Var{BCOR} und \Var{DIV} direkt beim Laden des Pakets als Option angeben (siehe \autoref{sec:typearea.typearea} ab \autopageref{sec:typearea.typearea}). Zusätzlich existiert ein Befehl, mit dem man einen Satzspiegel explizit berechnen kann und dem man die beiden Werte als Parameter übergibt (\iffalse siehe ebenfalls \autoref{sec:typearea.typearea}, \fi\autopageref{desc:typearea.cmd.typearea}). Das \Package{typearea}-Paket bietet außerdem die Möglichkeit, den optimalen \Var{DIV}-Wert automatisch zu bestimmen. Dieser ist von der Schrift und dem Durchschuss abhängig, der zum Zeitpunkt der Satzspiegelberechnung eingestellt ist% \iffalse. Siehe hierzu ebenfalls \autoref{sec:typearea.typearea}, \else\ (\fi\autopageref{desc:typearea.option.DIV.calc}\iftrue)\fi. \end{Explain} \section{Satzspiegelkonstruktion durch Kreisschlagen} \label{sec:typearea.circleConstruction} \begin{Explain} Neben der zuvor beschriebenen Satzspiegelkonstruktion\Index{Satzspiegel} gibt es in der Literatur noch eine eher klassische oder sogar mittelalterliche Methode. Bei diesem Verfahren will man die gleichen Werte nicht nur in Form des Seitenverhältnisses wiederfinden; man geht außerdem davon aus, dass das Optimum dann erreicht wird, wenn die Höhe des Textbereichs der Breite der Seite entspricht. Das genaue Verfahren ist beispielsweise in \cite{JTsch87} nachzulesen. Als Nachteil dieses spätmittelalterlichen Buchseitenkanons ergibt sich, dass die Breite des Textbereichs nicht mehr von der Schriftart abhängt. Es wird also nicht mehr der zur Schrift passende Textbereich gewählt, stattdessen muss der Autor oder Setzer die zum Textbereich passende Schrift wählen. Dies ist als zwingend zu betrachten. Im \Package{typearea}-Paket wird diese Konstruktion dahingehend abgewandelt, dass durch Auswahl eines ausgezeichneten -- normalerweise unsinnigen -- \Var{DIV}-Wertes oder eine spezielle Paket-Option derjenige \Var{DIV}-Wert ermittelt wird, bei dem der resultierende Satzspiegel dem spätmittelalterlichen Buchseitenkanon am nächsten kommt. Es wird also wiederum auf die Satzspiegelkonstruktion durch Teilung zurückgegriffen. \iftrue % Umbruchkorrekturtext Bei Wahl einer guten Schrift stimmt dieses Ergebnis nicht selten mit der Suche nach dem optimalen \Var{DIV}-Wert überein. Siehe hierzu ebenfalls \autoref{sec:typearea.typearea}, \autopageref{desc:typearea.option.DIV.calc}. % \fi \end{Explain} \LoadCommon{0} % \section{Frühe oder späte Optionenwahl} \section{Einstellung des Satzspiegels und der \texorpdfstring{Seitenauf"|teilung}{Seitenaufteilung}} \label{sec:typearea.typearea} Das Paket \Package{typearea} bietet zwei unterschiedliche Benutzerschnittstellen, um auf die Satzspiegelkonstruktion Einfluss zu nehmen. Die wichtigste Möglichkeit ist die Angabe von Optionen. Wie im vorherigen Abschnitt erwähnt, können die Optionen dabei auf unterschiedlichen Wegen gesetzt werden. In diesem Abschnitt wird die Klasse \Class{protokol} verwendet werden. Es handelt sich dabei nicht um eine \KOMAScript-Klasse, sondern um eine hypothetische Klasse. Diese\iffree{ Anleitung}{s Buch} geht von dem Idealfall aus, dass für jede Aufgabe eine dafür passende Klasse zur Verfügung steht. \BeginIndex{Option}{BCOR~=\PName{Wert}}% \begin{Declaration} \KOption{BCOR}\PName{Korrektur} \end{Declaration}% Mit Hilfe der Option \KOption{BCOR}\PName{Korrektur}\ChangedAt{v3.00}{\Package{typearea}} geben Sie den absoluten Wert der Bindekorrektur\Index{Bindekorrektur} an, also die Breite des Bereichs, der durch die Bindung von der Papierbreite verloren geht. Dieser Wert wird in der Satzspiegelkonstruktion automatisch berücksichtigt und bei der Ausgabe wieder dem inneren beziehungsweise linken Rand zugeschlagen. Als \PName{Korrektur} können Sie jede von \TeX{} verstandene Maßeinheit angeben. \begin{Example} Angenommen, Sie erstellen einen Finanzbericht. Das Ganze soll einseitig in A4 gedruckt und anschließend in eine Klemmmappe geheftet werden. Die Klemme der Mappe verdeckt 7,5\Unit{mm}. Der Papierstapel ist sehr dünn, deshalb gehen beim Knicken und Blättern durchschnittlich höchstens weitere 0,75\Unit{mm} verloren. Sie schreiben dann also: \begin{lstcode} \documentclass[a4paper]{report} \usepackage[BCOR=8.25mm]{typearea} \end{lstcode} oder \begin{lstcode} \documentclass[a4paper,BCOR=8.25mm]{report} \usepackage{typearea} \end{lstcode} bei Angabe von \Option{BCOR} als globale Option. Bei Verwendung einer \KOMAScript-Klasse kann das explizite Laden von \Package{typearea} entfallen: \begin{lstcode} \documentclass[BCOR=8.25mm]{scrreprt} \end{lstcode} Die Option \Option{a4paper} konnte bei \Class{scrreprt} entfallen, da diese der Voreinstellung bei allen \KOMAScript-Klassen entspricht. Setzt man die Option erst später auf einen neuen Wert, verwendet man also beispielsweise \begin{lstcode} \documentclass{scrreprt} \KOMAoptions{BCOR=8.25mm} \end{lstcode} so werden bereits beim Laden der Klasse \Class{scrreprt} Standardeinstellungen vorgenommen. Beim Ändern der Einstellung mit Hilfe der Anweisung \Macro{KOMAoptions} oder \Macro{KOMAoption} wird dann automatisch ein neuer Satzspiegel mit neuen Randeinstellungen berechnet. \end{Example} Bitte beachten Sie unbedingt, dass diese Option bei Verwendung einer der \KOMAScript-Klassen wie im Beispiel als Klassenoption oder per \Macro{KOMAoptions} beziehungsweise \Macro{KOMAoption} nach dem Laden der Klasse übergeben werden muss. Weder sollte das Paket \Package{typearea} bei Verwendung einer \KOMAScript-Klasse explizit per \Macro{usepackage} geladen, noch die Option dabei als optionales Argument angegeben werden. Wird die Option per \Macro{KOMAoptions} oder \Macro{KOMAoption} nach dem Laden des Pakets geändert, so werden Satzspiegel und Ränder automatisch neu berechnet.% % \EndIndex{Option}{BCOR~=\PName{Wert}} \BeginIndex{Option}{DIV~=\PName{Wert}}% \begin{Declaration} \KOption{DIV}\PName{Faktor} \end{Declaration}% Mit Hilfe der Option \KOption{DIV}\PName{Faktor}\ChangedAt{v3.00}{\Package{typearea}} wird festgelegt, in wie viele Streifen die Seite horizontal und vertikal bei der Satzspiegelkonstruktion eingeteilt wird. Die genaue Konstruktion ist \autoref{sec:typearea.divConstruction} zu entnehmen. Wichtig zu wissen ist, dass gilt: Je größer der \PName{Faktor}, desto größer wird der Textbereich und desto kleiner die Ränder. Als \PName{Faktor} kann jeder ganzzahlige Wert ab 4 verwendet werden. Bitte beachten Sie jedoch, dass sehr große Werte dazu führen können, dass Randbedingungen der Satzspiegelkonstruktion, je nach Wahl der weiteren Optionen, verletzt werden. So kann die Kopfzeile im Extremfall auch außerhalb der Seite liegen. Bei Verwendung der Option \KOption{DIV}\PName{Faktor} sind Sie für die Einhaltung der Randbedingungen sowie eine nach typografischen Gesichtspunkten günstige Zeilenlänge selbst verantwortlich. In \autoref{tab:typearea.typearea} finden Sie für das Seitenformat A4 ohne Bindekorrektur die aus einigen \Var{DIV}-Faktoren resultierenden Satzspiegelgrößen. Dabei werden die weiteren von der Schriftgröße abhängigen Nebenbedingungen nicht berücksichtigt. \begin{table} \centering \caption{Satzspiegelma"se in Abh"angigkeit von \Var{DIV} bei A4} \begin{tabular}{ccccc} \toprule & \multicolumn{2}{c}{Satzspiegel} & \multicolumn{2}{c}{R"ander}\\ %\raisebox{1.5ex}[0pt]{ \Var{DIV} %} & Breite [mm] & H"ohe [mm] & oben [mm] & innen [mm] \\ \midrule 6 & 105,00 & 148,50 & 49,50 & 35,00 \\ 7 & 120,00 & 169,71 & 42,43 & 30,00 \\ 8 & 131,25 & 185,63 & 37,13 & 26,25 \\ 9 & 140,00 & 198,00 & 33,00 & 23,33 \\ 10 & 147,00 & 207,90 & 29,70 & 21,00 \\ 11 & 152,73 & 216,00 & 27,00 & 19,09 \\ 12 & 157,50 & 222,75 & 24,75 & 17,50 \\ 13 & 161,54 & 228,46 & 22,85 & 16,15 \\ 14 & 165,00 & 233,36 & 21,21 & 15,00 \\ 15 & 168,00 & 237,60 & 19,80 & 14,00 \\ \bottomrule \end{tabular} \label{tab:typearea.typearea} \end{table} \iffree{}{\clearpage}% Umbruchkorrektur \begin{Example} Angenommen, Sie schreiben ein Sitzungsprotokoll. Sie verwenden dafür die Klasse \Class{protokol}. Das Ganze soll doppelseitig werden. In Ihrer Firma wird die Schriftart Bookman in 12\Unit{pt} verwendet. Diese Schriftart, die zu den Standard-PostScript-Schriften gehört, wird in {\LaTeX} mit der Anweisung \verb|\usepackage{bookman}| aktiviert. Die Schriftart Bookman läuft sehr weit, das heißt, die einzelnen Zeichen sind im Verhältnis zur Höhe relativ breit. Deshalb ist Ihnen die Voreinstellung für den \Var{DIV}-Wert in \Package{typearea} zu gering. Statt einem Wert von 12 sind Sie nach gründlichem Studium dieses Kapitels einschließlich der weiterführenden Abschnitte überzeugt, dass ein Wert 15 angebracht ist. Das Protokoll wird nicht gebunden, sondern gelocht und in einen Ordner abgeheftet. Eine Bindekorrektur ist deshalb nicht notwendig. Sie schreiben also: \begin{lstcode} \documentclass[a4paper,twoside]{protokol} \usepackage{bookman} \usepackage[DIV=15]{typearea} \end{lstcode} Als Sie fertig sind, macht man Sie darauf aufmerksam, dass die Protokolle neuerdings gesammelt und am Quartalsende alle zusammen als Buch gebunden werden. Die Bindung erfolgt als einfache Leimbindung, weil den Band ohnehin nie wieder jemand anschaut und er nur wegen ISO\,9000 angefertigt wird. Für die Bindung einschließlich Biegefalz werden durchschnittlich 12\Unit{mm} benötigt. Sie ändern die Optionen von \Package{typearea} also entsprechend ab und verwenden die Klasse für Protokolle nach ISO\,9000: \begin{lstcode} \documentclass[a4paper,twoside]{iso9000p} \usepackage{bookman} \usepackage[DIV=15,BCOR=12mm]{typearea} \end{lstcode} Natürlich können Sie auch hier wieder eine \KOMAScript-Klasse verwenden: \begin{lstcode} \documentclass[twoside,DIV=15,BCOR=12mm]{scrartcl} \usepackage{bookman} \end{lstcode} Die Option \Option{a4paper} konnte bei der Klasse \Class{scrartcl} entfallen, da diese der Voreinstellung bei allen \KOMAScript-Klassen entspricht. \end{Example} Bitte beachten Sie unbedingt, dass die Option \Option{DIV} bei Verwendung einer der \KOMAScript-Klassen wie im Beispiel als Klassenoption oder per \Macro{KOMAoptions} beziehungsweise \Macro{KOMAoption} nach dem Laden der Klasse übergeben werden muss. Weder sollte das Paket \Package{typearea} bei Verwendung einer \KOMAScript-Klasse explizit per \Macro{usepackage} geladen, noch die Option dabei als optionales Argument angegeben werden. Wird die Option per \Macro{KOMAoptions} oder \Macro{KOMAoption} nach dem Laden des Pakets geändert, so werden Satzspiegel und Rändern automatisch neu berechnet. \BeginIndex{Option}{DIV~=classic}% \BeginIndex{Option}{DIV~=calc}% \begin{Declaration} \OptionValue{DIV}{calc}\\ \OptionValue{DIV}{classic} \end{Declaration}% Wie\ChangedAt{v3.00}{\Package{typearea}} bereits in \autoref{sec:typearea.divConstruction} erwähnt, gibt es nur für das Papierformat A4 feste Voreinstellungen für den \Var{DIV}-Wert. Diese sind \autoref{tab:typearea.div} zu entnehmen. Wird ein anderes Papierformat gewählt, so berechnet \Package{typearea} selbst einen guten \Var{DIV}-Wert. Natürlich können Sie diese Berechnung auch für A4 wählen. Hierzu verwenden Sie einfach die Option \OptionValue{DIV}{calc} an Stelle von \KOption{DIV}\PName{Faktor}. Selbstverständlich können Sie diese Option auch explizit bei allen anderen Papierformaten angeben. Wenn Sie die automatische Berechnung wünschen, ist diese Angabe sogar sinnvoll, da die Möglichkeit besteht, in einer Konfigurationsdatei andere Voreinstellungen zu setzen (siehe \autoref{sec:typearea-experts.cfg}). Eine explizit angegebene Option \OptionValue{DIV}{calc} überschreibt diese Vorkonfiguration aber. \begin{table} \centering \caption{\label{tab:typearea.div}\PName{DIV}-Voreinstellungen f"ur A4} \begin{tabular}{lccc} \toprule Grundschriftgr"o"se: & 10\Unit{pt} & 11\Unit{pt} & 12\Unit{pt} \\ \Var{DIV}: & 8 & 10 & 12 \\ \bottomrule \end{tabular} \end{table} Die in \autoref{sec:typearea.circleConstruction} erwähnte klassische Konstruktion, der mittelalterliche Buchseitenkanon, ist ebenfalls auswählbar. Verwenden Sie in diesem Fall an Stelle von \KOption{DIV}\PName{Faktor} oder \OptionValue{DIV}{calc} einfach \OptionValue{DIV}{classic}. Es wird dann ein \Var{DIV}-Wert ermittelt, der dem mittelalterlichen Buchseitenkanon möglichst nahe kommt. \begin{Example} In dem bei der Option \KOption{DIV}\PName{Faktor} aufgeführten Beispiel mit der Schriftart Bookman gab es ja genau das Problem, dass man einen zur Schriftart besser passenden \Var{DIV}-Wert haben wollte. Man könnte also in Abwandlung des ersten Beispiels auch einfach die Ermittlung dieses Wertes \Package{typearea} überlassen: \begin{lstcode} \documentclass[a4paper,twoside]{protokol} \usepackage{bookman} \usepackage[DIV=calc]{typearea} \end{lstcode} \end{Example} Bitte beachten Sie unbedingt, dass diese Option bei Verwendung einer der \KOMAScript-Klassen % \iftrue wie im Beispiel \fi% als Klassenoption oder per \Macro{KOMAoptions} beziehungsweise \Macro{KOMAoption} nach dem Laden der Klasse übergeben werden muss. Weder sollte das Paket \Package{typearea} bei Verwendung einer \KOMAScript-Klasse explizit per \Macro{usepackage} geladen, noch die Option dabei als optionales Argument angegeben werden. Wird die Option per \Macro{KOMAoptions} oder \Macro{KOMAoption} nach dem Laden des Pakets geändert, so werden Satzspiegel und Rändern automatisch neu berechnet.% % \EndIndex{Option}{DIV~=classic}% \EndIndex{Option}{DIV~=calc}% \BeginIndex{Option}{DIV~=current}% \BeginIndex{Option}{DIV~=last}% \begin{Declaration} \OptionValue{DIV}{current}\\ \OptionValue{DIV}{last} \end{Declaration}% Wenn\ChangedAt{v3.00}{\Package{typearea}} Sie bis hier die Beispiele aufmerksam verfolgt haben, wissen Sie eigentlich bereits, wie man die Berechnung eines \Var{DIV}-Wertes in Abhängigkeit von der gewählten Schrift erreicht, wenn eine \KOMAScript-Klasse zusammen mit einem Schriftpaket verwendet wird. \begin{Explain} Das Problem dabei ist, dass die \KOMAScript-Klasse das Paket \Package{typearea} bereits selbst lädt. Die Übergabe der Optionen als optionale Argumente von \Macro{usepackage} ist also nicht möglich. Es würde auch nichts nützen, die Option \OptionValue{DIV}{calc} als optionales Argument von \Macro{documentclass} anzugeben. Diese Option würde direkt beim Laden des Pakets \Package{typearea} ausgewertet. Damit würden Satzspiegel und Ränder für die \LaTeX-Standardschrift und nicht für die später geladene Schrift berechnet. Selbstverständlich ist es aber möglich, mit \Macro{KOMAoptions}\PParameter{DIV=calc} oder \Macro{KOMAoption}\PParameter{DIV}\PParameter{calc} nach dem Laden des Schriftpakets Satzspiegel und Ränder neu berechnen zu lassen. Dabei wird dann über den Wert \PValue{calc} direkt ein \Var{DIV}-Wert für eine gute Zeilenlänge eingefordert. Da es aber häufig praktischer ist, die Einstellung für die Option \Option{DIV} nicht erst nach dem Laden der Schrift vorzunehmen, sondern an herausgehobener Stelle, beispielsweise beim Laden der Klasse, bietet \Package{typearea} zwei weitere symbolische Werte für diese Option. \end{Explain} Mit \KOption{DIV}\PName{current}\ChangedAt{v3.00}{\Package{typearea}} wird eine Neuberechnung von Satzspiegel und Rändern angestoßen, wobei genau der \Var{DIV}-Wert verwendet wird, der aktuell eingestellt ist. Dies ist weniger für die Neuberechnung des Satzspiegels nach Wahl einer anderen Grundschrift von Interesse. Vielmehr ist das dann nützlich, wenn man etwa nach Änderung des Durchschusses bei Beibehaltung des Teilers \Var{DIV} die Randbedingung sicherstellen will, dass \Length{textheight} abzüglich \Length{topskip} ein Vielfaches von \Length{baselineskip} sein sollte. Mit \KOption{DIV}\PName{last}\ChangedAt{v3.00}{\Package{typearea}} wird eine Neuberechnung von Satzspiegel und Rändern angestoßen, wobei genau dieselbe Einstellung wie bei der letzten Berechnung verwendet wird. \begin{Example} Gehen wir wieder davon aus, dass für die Schriftart Bookman ein Satzspiegel mit guter Zeilenlänge berechnet werden soll. Gleichzeitig wird eine \KOMAScript-Klasse verwendet. Dies ist mit dem symbolischen Wert \PValue{last} und der Anweisung \Macro{KOMAoptions} sehr einfach möglich: \begin{lstcode} \documentclass[BCOR=12mm,DIV=calc,twoside]{scrartcl} \usepackage{bookman} \KOMAoptions{DIV=last} \end{lstcode} Wird später entschieden, dass ein anderer \Var{DIV}-Wert verwendet werden soll, so muss nur die Einstellung im optionalen Argument von \Macro{documentclass} geändert werden. \end{Example} Eine Zusammenfassung aller möglichen symbolischen Werte für die Option \Option{DIV} finden Sie in \autoref{tab:symbolicDIV}. Es wird an dieser Stelle darauf hingewiesen, dass auch die Verwendung des Pakets \Package{fontenc}\IndexPackage{fontenc} dazu führen kann, dass \LaTeX{} eine andere Schrift lädt. \begin{table} \caption[{Symbolische Werte für Option \Option{DIV} und das \PName{DIV}-Argument von \Macro{typearea}}]{Mögliche symbolische Werte für Option \Option{DIV} oder das \PName{DIV}-Argument von \Macro{typearea}\OParameter{BCOR}\Parameter{DIV}} \label{tab:symbolicDIV} \begin{desctabular} \pventry{areaset}{Satzspiegel neu anordnen.\IndexOption{DIV~=areaset}}% \pventry{calc}{Satzspiegelberechnung einschließlich Ermittlung eines guten \Var{DIV}-Wertes erneut durchführen.\IndexOption{DIV~=calc}}% \pventry{classic}{Satzspiegelberechnung nach dem mittelalterlichen Buchseitenkanon (Kreisberechnung) erneut durchführen.\IndexOption{DIV~=classic}}% \pventry{current}{Satzspiegelberechnung mit dem aktuell gültigen \Var{DIV}-Wert erneut durchführen.\IndexOption{DIV~=current}}% \pventry{default}{Satzspiegelberechnung mit dem Standardwert für das aktuelle Seitenformat und die aktuelle Schriftgröße erneut durchführen. Falls kein Standardwert existiert, \PValue{calc} anwenden.\IndexOption{DIV~=default}}% \pventry{last}{Satzspiegelberechnung mit demselben \PName{DIV}-Argument, das beim letzten Aufruf angegeben wurde, erneut durchführen.\IndexOption{DIV~=last}}% \end{desctabular} \end{table} Häufig wird die Satzspiegelneuberechnung im Zusammenhang mit der Ver"-änderung des Zeilenabstandes (\emph{Durchschuss})\Index{Durchschuss} benötigt. Da der Satzspiegel unbedingt so berechnet werden sollte, dass eine ganze Anzahl an Zeilen in den Textbereich passt, muss bei Verwendung eines anderen Durchschusses als des normalen der Satzspiegel für diesen Zeilenabstand neu berechnet werden. \begin{Example} Angenommen, für eine Diplomarbeit wird die Schriftgröße 10\Unit{pt} bei eineinhalbzeiligem Satz zwingend gefordert. {\LaTeX} setzt normalerweise bei 10\Unit{pt} mit 2\Unit{pt} Durchschuss, also 1,2-zeilig. Deshalb muss als zusätzlicher Dehnfaktor der Wert 1,25 verwendet werden. Gehen wir außerdem davon aus, dass eine Bindekorrektur von 12\Unit{mm} benötigt wird. Dann könnte die Lösung dieses Problems wie folgt aussehen: \begin{lstcode} \documentclass[10pt,twoside,BCOR=12mm,DIV=calc]{scrreprt} \linespread{1.25} \KOMAoptions{DIV=last} \end{lstcode}\IndexCmd{linespread} Da \Package{typearea} selbst immer die Anweisung \Macro{normalsize} bei Berechnung eines neuen Satzspiegels ausführt, ist es nicht notwendig, nach \Macro{linespread} den gewählten Durchschuss mit \Macro{selectfont} zu aktivieren, damit dieser auch tatsächlich für die Neuberechnung verwendet wird. Das gleiche Beispiel sähe unter Verwendung des \Package{setspace}-Pakets (siehe \cite{package:setspace}) wie folgt aus: \begin{lstcode} \documentclass[10pt,twoside,BCOR=12mm,DIV=calc]{scrreprt} \usepackage{setspace} \onehalfspacing \KOMAoptions{DIV=last} \end{lstcode} Wie man sieht, spart man sich mit dem \Package{setspace}-Paket das Wissen um den korrekten Dehnungswert. An dieser Stelle erscheint es mir angebracht, darauf hinzuweisen, dass der Zeilenabstand für die Titelseite wieder auf den normalen Wert zurückgesetzt werden sollte. \iffalse% Umbruchkorrektur Ein vollständiges Beispiel wäre also: \fi \begin{lstcode} \documentclass[10pt,twoside,BCOR=12mm,DIV=calc]{scrreprt} \usepackage{setspace} \onehalfspacing \KOMAoptions{DIV=last} \begin{document} \title{Title} \author{Markus Kohm} \begin{spacing}{1} \maketitle \tableofcontents \end{spacing} \chapter{Ok} \end{document} \end{lstcode} Siehe hierzu auch die Anmerkungen in \autoref{sec:typearea.tips}. \end{Example} Bitte beachten Sie unbedingt, dass diese Optionen zur Verwendung mit \Macro{KOMAoptions} oder \Macro{KOMAoption} nach dem Laden des Pakets vorgesehen sind und dann eine automatische Neuberechnung von Satzspiegel und Rändern auslösen.% % \EndIndex{Option}{DIV~=current}% \EndIndex{Option}{DIV~=last}% \EndIndex{Option}{DIV~=\PName{Wert}} \BeginIndex{Cmd}{typearea}% \BeginIndex{Cmd}{recalctypearea}% \begin{Declaration} \Macro{typearea}\OParameter{BCOR}\Parameter{DIV}\\ \Macro{recalctypearea} \end{Declaration}% \begin{Explain} Wird die Option \Option{DIV} oder die Option \Option{BCOR} nach dem Laden des Pakets \Package{typearea} gesetzt, so wird intern die Anweisung \Macro{typearea} aufgerufen. Dabei wird beim Setzen der Option \Option{DIV} für \PName{BCOR} intern der symbolische Wert \PValue{current} verwendet, der aus Gründen der Vollständigkeit auch in \autoref{tab:symbolicBCOR} zu finden ist. Beim Setzen der Option \Option{BCOR} wird für \PName{DIV} hingegen der symbolische Wert \PValue{last} verwendet. Wollen Sie, dass Satzspiegel und Rändern stattdessen mit dem symbolischen Wert \PValue{current} für \PName{DIV} neu berechnet werden, so können Sie direkt \Macro{typearea}\PParameter{current}\PParameter{current} verwenden. \end{Explain} \begin{table} \caption[{Symbolische \PName{BCOR}-Argumente für \Macro{typearea}}]{Mögliche symbolische \PName{BCOR}-Argumente für \Macro{typearea}\OParameter{BCOR}\Parameter{DIV}} \label{tab:symbolicBCOR} \begin{desctabular} \pventry{current}{Satzspiegelberechnung mit dem aktuell gültigen \Var{BCOR}-Wert erneut durchführen.\IndexOption{BCOR~=current}} \end{desctabular} \end{table} Sollen sowohl \PName{BCOR} als auch \PName{DIV} geändert werden, so ist die Verwendung von \Macro{typearea} zu empfehlen, da hierbei die Ränder und der Satzspiegel nur einmal neu berechnet werden. Bei \Macro{KOMAoptions}\PParameter{\KOption{DIV}\PName{DIV},% \KOption{BCOR}\PName{BCOR}} werden Ränder und Satzspiegel hingegen zunächst bei der Änderung für \PName{DIV} und dann zusätzlich bei der Änderung für \PName{BCOR} neu berechnet. \begin{Explain} Der Befehl \Macro{typearea} ist derzeit so definiert, dass es auch möglich ist, mitten in einem Dokument den Satzspiegel zu wechseln. Dabei werden allerdings Annahmen über den Aufbau des \LaTeX-Kerns gemacht und interne Definitionen und Größen des \LaTeX-Kerns verändert. Es gibt zwar eine gewisse Wahrscheinlichkeit, aber keine Garantie, dass dies in zukünftigen Versionen von \LaTeXe{} noch funktionieren wird. Die Verwendung innerhalb des Dokuments führt außerdem zu einem Seitenumbruch. \end{Explain} Da \Macro{typearea}\PParameter{current}\PParameter{last} oder \Macro{KOMAoptions}\PParameter{DIV=last} für die Neuberechnung des Satzspiegels und der Ränder recht häufig benötigt werden, gibt es dafür die abkürzende Anweisung \Macro{recalctypearea}\ChangedAt{v3.00}{\Package{typearea}}. \begin{Example} Wenn Ihnen die Schreibweisen \begin{lstcode} \KOMAoptions{DIV=last} \end{lstcode} oder \begin{lstcode} \typearea[current]{last} \end{lstcode} für die Neuberechnung von Satzspiegel und Rändern aufgrund der vielen Sonderzeichen zu umständlich ist, können Sie einfach \begin{lstcode} \recalctypearea \end{lstcode} verwenden. \end{Example}% \EndIndex{Cmd}{recalctypearea}% \EndIndex{Cmd}{typearea} \BeginIndex{Option}{twoside~=\PName{Ein-Aus-Wert}}% \BeginIndex{Option}{twoside~=semi}% \begin{Declaration} \KOption{twoside}\PName{Ein-Aus-Wert}\\ \OptionValue{twoside}{semi} \end{Declaration}% Wie bereits in \autoref{sec:typearea.basics} erklärt, hängt die Randverteilung davon ab, ob ein Dokument einseitig oder zweiseitig gesetzt werden soll. Bei einseitigem Satz sind der linke und der rechte Rand gleich breit, während bei doppelseitigem Satz der innere Randanteil einer Seite nur halb so groß ist wie der jeweilige äußere Rand. Um diese Unterscheidung vornehmen zu können, muss \Package{typearea} mit der Option \Option{twoside} mitgeteilt werden, ob das Dokument doppelseitig gesetzt wird. Als \PName{Ein-Aus-Wert} kann dabei einer der Standardwerte für einfache Schalter aus \autoref{tab:truefalseswitch} verwendet werden. Wird die Option ohne Wert-Angabe verwendet, so wird der Wert \PValue{true} angenommen, also doppelseitiger Satz verwendet. Ein Deaktivieren der Option führt zu einseitigem Satz. \begin{table} \begin{minipage}{\textwidth} \centering \caption{Standardwerte für einfache Schalter in \KOMAScript} \begin{tabular}{ll} \toprule Wert & Bedeutung \\ \midrule \PValue{true}\footnote{Dieser Wert wird auch eingesetzt, wenn die entsprechende Option ohne Wertangabe verwendet wird.} & aktiviert die Option\\ \PValue{on} & aktiviert die Option \\ \PValue{yes} & aktiviert die Option \\ \PValue{false}& deaktiviert die Option \\ \PValue{off} & deaktiviert die Option \\ \PValue{no} & deaktiviert die Option \\ \bottomrule \end{tabular} \label{tab:truefalseswitch} \end{minipage} \end{table} Außer den Werten aus \autoref{tab:truefalseswitch} kann jedoch auch noch der Wert \PValue{semi}\ChangedAt{v3.00}{\Package{typearea}} angegeben werden. Dieser Wert \PValue{semi} führt zu doppelseitigem Satz mit einseitigen Rändern und einseitigen, also nicht alternierenden Marginalien. Die Option kann wahlweise als Klassenoption bei \Macro{documentclass}, als Paketoption bei \Macro{usepackage} oder auch nach dem Laden von \Package{typearea} per \Macro{KOMAoptions} oder \Macro{KOMAoption} gesetzt werden. Eine Verwendung dieser Option nach dem Laden von \Package{typearea} führt dabei automatisch zur Neuberechnung des Satzspiegels mittels \Macro{recalctypearea} (siehe \autopageref{desc:typearea.cmd.recalctypearea}). War vor der Option doppelseitiger Satz aktiv, wird noch vor der Neuberechnung auf die nächste ungerade Seite umbrochen.% % \EndIndex{Option}{twoside~=semi}% \EndIndex{Option}{twoside~=\PName{Ein-Aus-Wert}} \BeginIndex{Option}{twocolumn~=\PName{Ein-Aus-Wert}}% \begin{Declaration} \KOption{twocolumn}\PName{Ein-Aus-Wert} \end{Declaration} Für die Berechnung eines guten Satzspiegels mit Hilfe von \OptionValue{DIV}{calc} ist es erforderlich zu wissen, ob das Dokument ein- oder zweispaltig gesetzt wird. Da die Betrachtungen zur Zeilenlänge aus \autoref{sec:typearea.basics} dann für jede einzelne Spalte gelten, darf der Satzspiegel in doppelspaltigen Dokumenten bis zu doppelt so breit sein wie in einspaltigen Dokumenten. Um diese Unterscheidung vornehmen zu können, muss \Package{typearea} mit der Option \Option{twocolumn} mitgeteilt werden, ob das Dokument doppelspaltig gesetzt wird. Als \PName{Ein-Aus-Wert} kann dabei einer der Standardwerte für einfache Schalter aus \autoref{tab:truefalseswitch} verwendet werden. Wird die Option ohne Wert-Angabe verwendet, so wird der Wert \PValue{true} angenommen, also doppelspaltiger Satz verwendet. Ein Deaktivieren der Option führt zu einspaltigem Satz. Die Option kann wahlweise als Klassenoption bei \Macro{documentclass}, als Paketoption bei \Macro{usepackage} oder auch nach dem Laden von \Package{typearea} per \Macro{KOMAoptions} oder \Macro{KOMAoption} gesetzt werden. Eine Verwendung dieser Option nach dem Laden von \Package{typearea} führt dabei automatischen zur Neuberechnung des Satzspiegels mittels \Macro{recalctypearea} (siehe \autopageref{desc:typearea.cmd.recalctypearea}).% % \EndIndex{Option}{twocolumn~=\PName{Ein-Aus-Wert}} \BeginIndex{Option}{headinclude~=\PName{Ein-Aus-Wert}}% \BeginIndex{Option}{footinclude~=\PName{Ein-Aus-Wert}}% \begin{Declaration} \KOption{headinclude}\PName{Ein-Aus-Wert}\\ \KOption{footinclude}\PName{Ein-Aus-Wert} \end{Declaration}% \begin{Explain}% Bisher wurde zwar erklärt, wie die Satzspiegelkonstruktion\Index{Satzspiegel} funktioniert und in welchem Verhältnis die Ränder\Index{Rand} zueinander und der Textkörper zur Seite steht, aber eine entscheidende Frage blieb ausgeklammert: Was ist denn eigentlich unter dem Rand zu verstehen? Auf den ersten Blick wirkt diese Frage trivial: Der Rand ist der Teil der Seite, der oben, unten, links und rechts frei bleibt. Doch das ist nur die halbe Wahrheit. Der äußere Rand ist keineswegs immer leer. Teilweise findet man darin noch gesetzte Randnotizen (siehe den Befehl \Macro{marginpar} beispielsweise in \cite{l2kurz} bzw. \autoref{sec:maincls.marginNotes}). Beim oberen und unteren Rand stellt sich die Frage, wie Kopf- und Fußzeile\Index{Seitenkopf}\Index{Seitenfuß} zu behandeln sind. Gehören diese beiden zum Textkörper oder zum jeweiligen Rand? Die Frage ist nicht einfach zu beantworten. Eindeutig ist, dass ein leerer Fuß und ein leerer Kopf zum Rand zu rechnen sind. Schließlich können sie nicht vom restlichen Rand unterschieden werden. Ein Fuß, der nur die Paginierung\Index[indexmain]{Paginierung}\footnote{Unter der Paginierung versteht man die Angabe der Seitenzahl.} enthält, wirkt optisch ebenfalls eher wie Rand und sollte deshalb zu diesem gerechnet werden. Für die optische Wirkung ist dabei unwesentlich, ob der Fuß beim Lesen oder Überfliegen leicht als Fuß erkannt werden kann oder nicht. Entscheidend ist, wie eine wohlgefüllte Seite bei \emph{unscharfer Betrachtung} wirkt. Dazu bedient man sich beispielsweise seiner altersweitsichtigen Großeltern, denen man die Brille stibitzt und dann die Seite etwa einen halben Meter von der Nasenspitze entfernt hält. In Ermangelung erreichbarer Großeltern kann man sich auch damit behelfen, dass man die eigenen Augen auf Fernsicht stellt, die Seite aber nur mit ausgestreckten Armen hält. Brillenträger sind hier deutlich im Vorteil. Hat man eine Fußzeile, die neben der Paginierung weitere, weitschweifige Angaben enthält, beispielsweise einen Copyright-Hinweis, so wirkt die Fußzeile eher wie ein etwas abgesetzter Teil des Textkörpers. Bei der Berechnung des Satzspiegels sollte das berücksichtigt werden. Bei der Kopfzeile sieht es noch schwieriger aus. In der Kopfzeile wird häufig der Kolumnentitel\Index[indexmain]{Kolumnentitel}\footnote{Unter dem Kolumnentitel versteht man in der Regel die Wiederholung einer Überschrift mit Titelcharakter. Er steht häufig im Seitenkopf, seltener im Seitenfuß.} gesetzt. Arbeitet man mit einem lebenden Kolumnentitel, also der Wiederholung der ersten bzw. zweiten Gliederungsebene in der Kopfzeile, und hat gleichzeitig sehr lange Überschriften, so erhält man automatisch sehr lange Kopfzeilen. In diesem Fall wirkt der Kopf wiederum wie ein abgesetzter Teil des Textkörpers und weniger wie leerer Rand. Verstärkt wird dieser Effekt noch, wenn neben dem Kolumnentitel auch die Paginierung im Kopf erfolgt. Dadurch erhält man einen links und rechts abgeschlossenen Bereich, der kaum noch als leerer Rand wirkt. Schwieriger ist es bei Paginierung im Fuß und Überschriften, deren Länge sehr stark schwankt. Hier kann der Kopf der einen Seite wie Textkörper wirken, der Kopf der anderen Seite jedoch eher wie Rand. Keinesfalls sollte man die Seiten jedoch unterschiedlich behandeln. Das würde zu vertikal springenden Köpfen führen und ist nicht einmal für ein Daumenkino geeignet. Ich rate in diesem Fall dazu, den Kopf zum Textkörper zu rechnen. Ganz einfach fällt die Entscheidung, wenn Kopf oder Fuß durch eine Linie vom eigentlichen Textkörper abgetrennt sind. Dadurch erhält man eine geschlossene Wirkung und der Kopf bzw. Fuß sollte unbedingt zum Textkörper gerechnet werden. Wie gesagt: Die durch die Trennlinie verbesserte Erkennung des Kopfes oder Fußes ist hier unerheblich. Entscheidend ist die unscharfe Betrachtung.\par \end{Explain} Das \Package{typearea}-Paket trifft die Entscheidung, ob ein Kopf oder Fuß zum Textkörper gehört oder davon getrennt zum Rand gerechnet werden muss, nicht selbst. Stattdessen kann mit den Optionen \Option{headinclude} und \Option{footinclude} eingestellt werden, ob der Kopf und der Fuß zum Textkörper gerechnet werden sollen. Die Optionen verstehen dabei als \PName{Ein-Aus-Wert}\ChangedAt{v3.00}{\Package{typearea}} die Standardwerte für einfache Schalter, die in \autoref{tab:truefalseswitch} angegeben sind. Man kann die Optionen auch ohne Wertzuweisung verwenden. In diesem Fall wird \PValue{true} als \PName{Ein-Aus-Wert} verwendet, also der Kopf oder Fuß zum Satzspiegel gerechnet. Wenn Sie unsicher sind, was die richtige Einstellung ist, lesen Sie bitte obige Erläuterungen. Voreingestellt sind normalerweise \OptionValue{headinclude}{false} und \OptionValue{footinclude}{false}. Dies kann sich jedoch bei den \KOMAScript-Klassen je nach Klassenoption oder bei Verwendung anderer \KOMAScript-Pakete generell ändern (siehe \autoref{sec:maincls.options} und \autoref{cha:scrpage}). Bitte beachten Sie unbedingt, dass diese Optionen bei Verwendung einer der \KOMAScript-Klassen als Klassenoptionen oder per \Macro{KOMAoptions} beziehungsweise \Macro{KOMAoption} nach dem Laden der Klasse übergeben werden müssen. Eine Änderung dieser Optionen nach dem Laden von \Package{typearea} führt dabei nicht zu einer automatischen Neuberechnung des Satzspiegels. Vielmehr wirkt sich die Änderung erst bei der nächsten Neuberechnung des Satzspiegels aus. Zur Neuberechnung des Satzspiegels siehe Option \Option{DIV} mit den Werten \PValue{last} oder \PValue{current} (siehe \autopageref{desc:typearea.option.DIV.last}) oder die Anweisung \Macro{recalctypearea} (siehe \autopageref{desc:typearea.cmd.recalctypearea}).% % \EndIndex{Option}{headinclude~=\PName{Ein-Aus-Wert}}% \EndIndex{Option}{footinclude~=\PName{Ein-Aus-Wert}}% \BeginIndex{Option}{mpinclude~=\PName{Ein-Aus-Wert}}% \begin{Declaration} \KOption{mpinclude}\PName{Ein-Aus-Wert} \end{Declaration} Neben\ChangedAt{v2.8q}{\Class{scrbook}\and \Class{scrreprt}\and \Class{scrartcl}} Dokumenten, bei denen der Kopf und der Fuß der Seite eher zum Textbereich als zum Rand gehört, gibt es auch Dokumente, bei denen dies für Randnotizen zutrifft. Mit der Option \Option{mpinclude} kann genau dies erreicht werden. Die Optionen verstehen dabei als \PName{Ein-Aus-Wert}\ChangedAt{v3.00}{\Package{typearea}} die Standardwerte für einfache Schalter, die in \autoref{tab:truefalseswitch} angegeben sind. Man kann die Optionen auch ohne Wertzuweisung verwenden. In diesem Fall wird \PValue{true} als \PName{Ein-Aus-Wert} verwendet. Der Effekt von \OptionValue{mpinclude}{true} ist, dass eine Breiteneinheit vom Textbereich weggenommen und als Bereich für die Randnotizen verwendet wird. Mit \OptionValue{mpinclude}{false}, was der Voreinstellung entspricht, wird hingegen ein Teil des Randes für Randnotizen verwendet. Dies ist, je nachdem ob einseitig oder doppelseitig gearbeitet wird, ebenfalls eine Breiteneinheit oder auch eineinhalb Breiteneinheiten. In der Regel ist die Verwendung von \OptionValue{mpinclude}{true} nicht anzuraten und sollte Experten vorbehalten bleiben. \begin{Explain} In den meisten Fällen, in denen die Option \Option{mpinclude} sinnvoll ist, werden außerdem breitere Randnotizen benötigt. In sehr vielen Fällen sollte dabei aber nicht die gesamte Breite, sondern nur ein Teil davon dem Textbereich zugeordnet werden. Dies ist beispielsweise der Fall, wenn der Rand für Zitate verwendet wird. Solche Zitate werden üblicherweise im Flattersatz gesetzt, wobei die bündige Kante an den Textbereich anschließt. Da sich kein geschlossener optischer Eindruck ergibt, dürfen die flatternden Enden also durchaus teilweise in den Rand ragen. Man kann das einfach erreichen, indem man zum einen die Option \Option{mpinclude} verwendet. Zum anderen vergrößert man die Länge \Length{marginparwidth} nach der Berechnung des Satzspiegels noch mit Hilfe der \Macro{addtolength}-Anweisung. Um welchen Wert man vergrößern sollte, hängt vom Einzelfall ab und erfordert einiges Fingerspitzengefühl. Auch deshalb ist die Option \Option{mpinclude} eher etwas für Experten. Natürlich kann man auch festlegen, dass die Randnotizen beispielsweise zu einem Drittel in den Rand hineinragen sollen, und das wie folgt erreichen: % Umbruchkorrektur: listings macht das manchmal nicht optimal \begin{lstcode}[belowskip=\dp\strutbox] \setlength{\marginparwidth}{1.5\marginparwidth} \end{lstcode} Da es derzeit keine Option gibt, um mehr Platz für die Randnotizen innerhalb des Textbereichs vorzusehen, gibt es nur eine Möglichkeit, dies zu erreichen. Man verzichtet auf die Option \Option{mpinclude} oder setzt \Option{mpinclude} auf \PValue{false}, verringert nach der Satzspiegelberechnung die Breite des Textbereichs \Macro{textwidth} und setzt die Breite des Bereichs der Randnotizen auf den Wert, um den man die Breite des Textbereichs verringert hat. Leider lässt sich dieses Vorgehen nicht mit der automatischen Berechnung des \PName{DIV}-Wertes verbinden. Demgegenüber wird \Option{mpinclude} bei \OptionValue{DIV}{calc}\IndexOption{DIV=calc} (siehe \autopageref{desc:typearea.option.DIV.calc}) berücksichtigt. \end{Explain} Bitte beachten Sie unbedingt, dass diese Option bei Verwendung einer der \KOMAScript-Klassen als Klassenoption oder per \Macro{KOMAoptions} beziehungsweise \Macro{KOMAoption} nach dem Laden der Klasse übergeben werden muss. Eine Änderung dieser Option nach dem Laden von \Package{typearea} führt nicht zu einer automatischen Neuberechnung des Satzspiegels. Vielmehr wirkt sich die Änderung erst bei der nächsten Neuberechnung des Satzspiegels aus. Zur Neuberechnung des Satzspiegels siehe Option \Option{DIV} mit den Werten \PValue{last} oder \PValue{current} (siehe \autopageref{desc:typearea.option.DIV.last}) oder die Anweisung \Macro{recalctypearea} (siehe \autopageref{desc:typearea.cmd.recalctypearea}).% % \EndIndex{Option}{mpinclude~=\PName{Ein-Aus-Wert}}% \BeginIndex{Option}{headlines~=\PName{Anzahl}}% \BeginIndex{Option}{headheight~=\PName{Höhe}}% \begin{Declaration} \KOption{headlines}\PName{Zeilenanzahl}\\ \KOption{headheight}\PName{Höhe} \end{Declaration}% Es ist nun also bekannt, wie man Satzspiegel mit dem \Package{typearea}-Paket berechnet und wie man dabei angibt, ob der Kopf oder Fuß zum Textkörper oder zum Rand gehört. Insbesondere für den Kopf fehlt aber noch die Angabe, wie hoch er denn eigentlich sein soll. Hierzu dienen die Optionen \Option{headlines} und \Option{headheight}\ChangedAt{v3.00}{\Package{typearea}}. Die Option \Option{headlines} setzt man dabei auf die Anzahl der Kopfzeilen. Normalerweise arbeitet das \Package{typearea}-Paket mit 1,25 Kopfzeilen. Dieser Wert stellt einen Kompromiss dar. Zum einen ist er groß genug, um auch für eine unterstrichene Kopfzeile (siehe \autoref{sec:maincls.options}) Platz zu bieten, zum anderen ist er klein genug, um das Randgewicht nicht zu stark zu verändern, wenn mit einer einfachen, nicht unterstrichenen Kopfzeile gearbeitet wird. Damit ist der voreingestellte Wert in den meisten Standardfällen ein guter Wert. In einigen Fällen will oder muss man aber die Kopfhöhe genauer den tatsächlichen Erfordernissen anpassen. \begin{Example} Angenommen, es soll ein Text mit einem zweizeiligen Kopf erstellt werden. Normalerweise würde dies dazu führen, dass auf jeder Seite eine Warnung »\texttt{overfull} \Macro{vbox}« von {\LaTeX} ausgegeben würde. Um dies zu verhindern, wird das \Package{typearea}-Paket angewiesen, einen entsprechenden Satzspiegel zu berechnen: \begin{lstcode} \documentclass[a4paper]{article} \usepackage[headlines=2.1]{typearea} \end{lstcode} Es ist auch wieder möglich und bei Verwendung einer \KOMAScript-Klasse empfehlenswert, diese Option direkt an die Klasse zu übergeben: \begin{lstcode} \documentclass[headlines=2.1]{scrartcl} \end{lstcode} Befehle, mit denen dann der Inhalt der zweizeiligen Kopfzeile definiert werden kann, sind in \autoref{cha:scrpage} zu finden. \end{Example} In einigen Fällen ist es nützlich, wenn man die Kopfhöhe nicht in Zeilen, sondern direkt als Längenwert angeben kann. Dies ist mit Hilfe der alternativ verwendbaren Option \Option{headheight} möglich. Als \PName{Höhe} sind alle Längen und Größen verwendbar, die \LaTeX{} kennt. Es ist jedoch zu beachten, dass bei Verwendung einer LaTeX-Länge wie \Length{baselineskip} nicht deren Größe zum Zeitpunkt des Setzens der Option, sondern zum Zeitpunkt der Berechnung des Satzspiegels und der Rändern entscheidend ist. Bitte beachten Sie unbedingt, dass diese Optionen bei Verwendung einer der \KOMAScript-Klassen als Klassenoptionen oder per \Macro{KOMAoptions} beziehungsweise \Macro{KOMAoption} nach dem Laden der Klasse übergeben werden müssen. Eine Änderung dieser Optionen nach dem Laden von \Package{typearea} führt nicht zu einer automatischen Neuberechnung des Satzspiegels. Vielmehr wirkt sich die Änderung erst bei der nächsten Neuberechnung des Satzspiegels aus. Zur Neuberechnung des Satzspiegels siehe Option \Option{DIV} mit den Werten \PValue{last} oder \PValue{current} (siehe \autopageref{desc:typearea.option.DIV.last}) oder die Anweisung \Macro{recalctypearea} (siehe \autopageref{desc:typearea.cmd.recalctypearea}).% % \EndIndex{Option}{headheight~=\PName{Höhe}}% \EndIndex{Option}{headlines~=\PName{Anzahl}} \BeginIndex{Cmd}{areaset}% \begin{Declaration} \Macro{areaset}\OParameter{BCOR}\Parameter{Breite}\Parameter{Höhe} \end{Declaration}% Bis hier wurde nun eine Menge darüber erzählt, wie man einen guten Satzspiegel\Index{Satzspiegel} für Standardanwendungen erstellt und wie das \Package{typearea}-Paket dem Anwender diese Arbeit erleichtert, ihm aber gleichzeitig Möglichkeiten der Einflussnahme bietet. Es gibt jedoch auch Fälle, in denen der Textkörper eine bestimmte Größe exakt einhalten soll, ohne dass dabei auf gute Satzspiegelkonstruktion oder auf weitere Nebenbedingungen zu achten ist. Trotzdem sollen die Ränder so gut wie möglich verteilt und dabei gegebenenfalls auch eine Bindekorrektur berücksichtigt werden. Das \Package{typearea}-Paket bietet hierfür den Befehl \Macro{areaset}, dem man neben der optionalen Bindekorrektur als Parameter die Breite und Höhe des Textbereichs übergibt. Die Ränder und deren Verteilung werden dann automatisch berechnet, wobei gegebenenfalls auch die Paketoptionen \Option{headinclude}, \Option{headexclude}, sowie \Option{footinclude} und \Option{footexclude} berücksichtigt werden. Die Optionen \Option{headlines}\IndexOption{headlines} und \Option{headheight}\IndexOption{headheight} bleiben in diesem Fall jedoch unberücksichtigt! \begin{Example} Angenommen, ein Text auf A4-Papier soll genau die Breite von 60 Zeichen in der Typewriter-Schrift haben und exakt 30 Zeilen je Seite besitzen. Dann könnte mit folgender Präambel gearbeitet werden: \begin{lstcode} \documentclass[a4paper,11pt]{article} \usepackage{typearea} \newlength{\CharsLX}% Breite von 60 Zeichen \newlength{\LinesXXX}% Hoehe von 30 Zeilen \settowidth{\CharsLX}{\texttt{1234567890}} \setlength{\CharsLX}{6\CharsLX} \setlength{\LinesXXX}{\topskip} \addtolength{\LinesXXX}{29\baselineskip} \areaset{\CharsLX}{\LinesXXX} \end{lstcode} Der Faktor von 29 statt 30 ist damit begründet, dass die Grundlinie der obersten Zeile bereits am obersten Rand des um \Macro{topskip} verringerten Satzspiegels liegt, solange die Höhe der obersten Zeile kleiner als \Macro{topskip} ist. Die oberste Zeile benötigt damit keine Höhe. Die Unterlängen der untersten Zeile ragen dafür unter den Satzspiegel. \item Soll stattdessen ein Gedichtband gesetzt werden, bei dem es nur darauf ankommt, dass der Textbereich genau quadratisch mit einer Seitenlänge von 15\Unit{cm} ist, wobei ein Binderand von 1\Unit{cm} zu berücksichtigen ist, so kann dies wie folgt erreicht werden: \begin{lstcode} \documentclass{gedichte} \usepackage{typearea} \areaset[1cm]{15cm}{15cm} \end{lstcode} \end{Example} \EndIndex{Cmd}{areaset} \BeginIndex{Option}{DIV~=areaset}% \begin{Declaration} \OptionValue{DIV}{areaset} \end{Declaration}% In\ChangedAt{v3.00}{\Package{typearea}} seltenen Fällen ist es nützlich, wenn man den aktuell eingestellten Satzspiegel neu ausrichten lassen kann. Dies ist mit der Option \OptionValue{DIV}{areaset} möglich, wobei \Macro{KOMAoptions}\PParameter{DIV=areaset} der Anweisung \begin{lstcode}[belowskip=\dp\strutbox] \areaset[current]{\textwidth}{\textheight} \end{lstcode} entspricht. Dasselbe Ergebnis erhält man auch, wenn \OptionValue{DIV}{last} verwendet wird und der Satzspiegel zuletzt per \Macro{areaset} eingestellt wurde.% % \EndIndex{Option}{DIV~=areaset}% \iffalse% Umbruchkorrekturtext: Alternativen Wenn Sie konkrete Vorgaben bezüglich der Ränder zu erfüllen haben, ist \Package{typearea} nicht geeignet. In diesem Fall ist die Verwendung des Paketes \Package{geometry}\IndexPackage{geometry} (siehe \cite{package:geometry}) empfehlenswert. % \else % Das Paket \Package{typearea} ist nicht dafür gedacht, bestimmte Randbreiten einzustellen. Dafür ist das Paket \Package{geometry}\IndexPackage{geometry} (siehe \cite{package:geometry}) empfehlenswert. % \fi \section{Einstellung des Papierformats}% \label{sec:typearea.paperTypes}% \BeginIndex{}{Papier>Format}% Das Papierformat ist ein entscheidendes Grundmerkmal eines Dokuments. Wie bereits bei der Vorstellung der unterstützten Satzspiegelkonstruktionen (siehe \autoref{sec:typearea.basics} bis \autoref{sec:typearea.circleConstruction} ab \autopageref{sec:typearea.basics}) aufgezeigt, steht und fällt die Auf"|teilung der Seite und damit das gesamte Dokumentlayout mit der Wahl des Papierformats. Während die \LaTeX-Standardklassen auf einige wenige Formate festgelegt sind, unterstützt \KOMAScript{} mit dem Paket \Package{typearea} selbst ausgefallene Seitengrößen. \BeginIndex{Option}{paper~=\PName{Format}}% \BeginIndex{Option}{paper~=\PName{Ausrichtung}}% \begin{Declaration} \KOption{paper}\PName{Format} \end{Declaration}% Die Option \Option{paper}\ChangedAt{v3.00}{\Package{typearea}} ist das zentrale Element der Formatauswahl bei \KOMAScript. Als \PName{Format} wird dabei zunächst das amerikanische \Option{letter}, \Option{legal} und \Option{executive} unterstützt. Darüber hinaus sind die ISO-Formate der Reihen A, B, C und D möglich, also beispielsweise \PValue{A4} oder -- klein geschrieben -- \PValue{a4}. Querformate werden dadurch unterstützt, dass man die Option ein weiteres Mal mit dem Wert \PValue{landscape}\Index{Papier>Ausrichtung} angibt. Zusätzlich kann das \PName{Format} auch in der Form \PName{Höhe}\texttt{:}\PName{Breite} angegeben werden. \begin{Example} Angenommen, es soll eine Karteikarte im Format ISO-A8 quer bedruckt werden. Dabei sollen die Ränder sehr klein gewählt werden. Außerdem wird auf eine Kopf- und eine Fußzeile verzichtet. \begin{lstcode} \documentclass{article} \usepackage[headexclude,footexclude,% paper=A8,paper=landscape]{typearea} \areaset{7cm}{5cm} \pagestyle{empty} \begin{document} \section*{Unterstützte Papiergrößen} letter, legal, executive, a0, a1 \dots\ % b0, b1 \dots\ c0, c1 \dots\ d0, d1 \dots \end{document} \end{lstcode} Haben die Karteikarten das Sonderformat (H:B) 5\Unit{cm}\,:\,3\Unit{cm}, so ist dies mit \begin{lstcode} \documentclass{article} \usepackage[headexclude,footexclude,% paper=A8,paper=5cm:3cm]{typearea} \areaset{4cm}{2.4cm} \pagestyle{empty} \begin{document} \section*{Unterstützte Papiergrößen} letter, legal, executive, a0, a1 \dots\ % b0, b1 \dots\ c0, c1 \dots\ d0, d1 \dots \end{document} \end{lstcode} möglich. \end{Example} In der Voreinstellung wird bei \KOMAScript{} mit A4-Papier in der Ausrichtung portrait gearbeitet. Dies ist ein Unterschied zu den Standardklassen, bei denen in der Voreinstellung das amerikanische Format letter verwendet wird. Bitte beachten Sie unbedingt, dass diese Option bei Verwendung einer der \KOMAScript-Klassen als Klassenoption oder per \Macro{KOMAoptions} beziehungsweise \Macro{KOMAoption} nach dem Laden der Klasse übergeben werden muss. Eine Änderung des Papierformats oder der Papierausrichtung mit Hilfe von \Macro{KOMAoptions} oder \Macro{KOMAoption} nach dem Laden von \Package{typearea} führt nicht zu einer automatischen Neuberechnung des Satzspiegels. Vielmehr wirkt sich die Änderung erst bei der nächsten Neuberechnung des Satzspiegels aus. Zur Neuberechnung des Satzspiegels siehe Option \Option{DIV} mit den Werten \PValue{last} oder \PValue{current} (siehe \autopageref{desc:typearea.option.DIV.last}) oder die Anweisung \Macro{recalctypearea} (siehe \autopageref{desc:typearea.cmd.recalctypearea}).% % \EndIndex{Option}{paper~=\PName{Ausrichtung}}% \EndIndex{Option}{paper~=\PName{Format}} \BeginIndex{Option}{pagesize}% \BeginIndex{Option}{pagesize~=\PName{Ausgabetreiber}}% \begin{Declaration} \KOption{pagesize}\PName{Ausgabetreiber} \end{Declaration}% \begin{Explain}% Die oben genannten Mechanismen zur Auswahl des Papierformats haben nur insofern einen Einfluss auf die Ausgabe, als interne {\LaTeX}-Maße gesetzt werden. Das \Package{typearea} verwendet diese dann bei der Auf"|teilung der Seite in Ränder und Textbereich. Die Spezifikation des DVI-Formats\Index{DVI} sieht aber an keiner Stelle Angaben zum Papierformat vor. Wird direkt aus dem DVI-Format in eine Low-Level-Druckersprache wie PCL% \iffalse% Umbruchkorrektur \footnote{PCL ist die Druckersprache, die HP für seine Tinten- und Laserdrucker verwendet.}% \fi \ oder ESC/P2% \iffalse% Umbruchkorrektur \footnote{ESC/P2 ist die Druckersprache, die EPSON für seine Nadel-, Tinten- und Laserdrucker benutzt.}% \fi \ ausgegeben, spielt dies normalerweise keine Rolle, da auch bei diesen Ausgaben der 0-Bezugspunkt wie bei DVI links oben liegt. Wird aber in Sprachen wie PostScript\Index{PostScript} oder PDF\Index{PDF} übersetzt, bei denen der 0-Bezugspunkt an anderer Stelle liegt und außerdem das Papierformat in der Ausgabedatei angegeben werden sollte, so fehlt diese Information. Als Lösung des Problems verwendet der entsprechende Treiber eine voreingestellte Papiergröße, die der Anwender entweder per Option oder durch entsprechende Angabe in der {\TeX}-Quelldatei verändern kann. Bei Verwendung des DVI-Treibers \File{dvips} kann diese Angabe in Form einer \Macro{special}-Anweisung erfolgen. Bei {pdf\TeX} oder {V\TeX} werden stattdessen zwei Längen entsprechend gesetzt. \end{Explain} Mit der Option \OptionValue{pagesize}{dvips}\IndexOption{pagesize~=dvips} wird erreicht, dass die Papiergröße als \Macro{special} in die DVI-Datei geschrieben wird. Dieses \Macro{special} wird beispielsweise von \File{dvips} ausgewertet. Demgegenüber schreibt die Option \OptionValue{pagesize}{pdftex} die Papiergröße am Anfang des Dokuments in die {pdf\TeX}-Seitenregister, \Length{pdfpagewidth}\IndexLength{pdfpagewidth} und \Length{pdfpageheight}\IndexLength{pdfpageheight}, so dass später beim Betrachten der erzeugten PDF-Datei das korrekte Format angegeben wird. Die Option \OptionValue{pagesize}{auto} verhält sich flexibler und verwendet je nachdem, ob eine PDF- oder eine DVI-Datei ausgegeben wird, den Mechanismus der Option \OptionValue{pagesize}{dvips} oder der Option \OptionValue{pagesize}{pdftex}. Mit Option \OptionValue{pagesize}{automedia} werden ggf. auch \Length{mediawidth} und \Length{mediaheight} passend gesetzt. Damit wird auch {V\TeX} berücksichtigt. Bei Verwendung der Option \Option{pagesize} ohne Angabe eines \PName{Ausgabetreiber} wird \PValue{auto} eingesetzt. \begin{Example} Angenommen, es soll ein Dokument sowohl als DVI-Datei verwendet werden, als auch eine Online-Version im PDF-Format erstellt werden. Dann könnte die Präambel beispielsweise so beginnen: \begin{lstcode} \documentclass{article} \usepackage[paper=A4,pagesize]{typearea} \end{lstcode} Wird nun für die Bearbeitung {pdf\TeX} verwendet \emph{und} die PDF-Ausgabe aktiviert, so werden die beiden Größen \Macro{pdfpagewidth} und \Macro{pdfpageheight} entsprechend gesetzt. Wird jedoch eine DVI-Datei erzeugt -- egal ob mit {\LaTeX} oder {pdf\LaTeX} --, so wird ein \Macro{special} an den Anfang dieser Datei geschrieben. \end{Example}% Es wird empfohlen, die Option immer anzugeben. In der Regel ist dabei die Methode ohne \PName{Ausgabetreiber} oder mit \PValue{auto} oder \PValue{automedia} günstig.% \EndIndex{Option}{pagesize}% \EndIndex{Option}{pagesize~=\PName{Ausgabetreiber}}% % \EndIndex{}{Papier>Format} \section{Tipps} \label{sec:typearea.tips} Insbesondere für die Erstellung von schriftlichen Arbeiten während des Studiums findet man häufig Vorschriften, die einer typografischen Begutachtung nicht nur in keiner Weise standhalten, sondern massiv gegen alle Regeln der Typografie verstoßen. Ursache für solche Regeln ist oft typografische Inkompetenz derjenigen, die sie herausgeben. Manchmal ist die Ursache auch im Ausgangspunkt begründet, nämlich der Schreibmaschine. Mit einer Schreibmaschine oder einer Textverarbeitung von 1980 ist es ohne erheblichen Aufwand kaum möglich, typografisch perfekte Ergebnisse zu erzielen. Also wurden einst Vorschriften erlassen, die leicht erfüllbar schienen und dem Korrektor trotzdem entgegenkommen. Dazu zählen dann Randeinstellungen, die für einseitigen Druck mit einer Schreibmaschine zu brauchbaren Zeilenlängen führen. Um nicht extrem kurze Zeilen zu erhalten, die durch Flattersatz zudem verschlimmert werden, werden die Ränder schmal gehalten und für Korrekturen stattdessen ein großer Durchschuss in Form von eineinhalbzeiligem Satz vorgeschrieben. Bevor moderne Textverarbeitungssysteme verfügbar wurden, wäre -- außer mit {\TeX} -- einzeiliger Satz die einzige Alternative gewesen. Dabei wäre dann selbst das Anbringen von Korrekturzeichen schwierig geworden. Als die Verwendung von Computern für die Erstellung schriftlicher Arbeiten üblicher wurde, hat sich manches Mal auch der Spieltrieb des einen oder anderen Studenten gezeigt, der durch Verwendung einer Schmuckschrift seine Arbeit aufpeppen und so eine bessere Note mit weniger Einsatz herausschinden wollte. Nicht bedacht hat er dabei, dass solche Schriften schlechter zu lesen und deshalb für den Zweck ungeeignet sind. Damit hielten zwei Brotschriften Einzug in die Vorschriften, die weder zusammenpassen noch im Falle von Times wirklich gut geeignet sind. Times ist eine relativ enge Schrift, die Anfang des 20.~Jahrhunderts speziell für schmale Spalten im englischen Zeitungssatz entworfen wurde. In modernen Schnitten ist dies etwas entschärft. Dennoch passt die häufig vorgeschriebene Times meist nicht zu den gleichzeitig gegebenen Randvorgaben. {\LaTeX} setzt bereits von sich aus mit ausreichendem Durchschuss. Gleichzeitig sind die Ränder bei sinnvollen Zeilenlängen groß genug, um Platz für Korrekturen zu bieten. Dabei wirkt die Seite trotz einer Fülle von Text großzügig angelegt. Oft sind die typografisch mehr als fragwürdigen Satzvorschriften mit {\LaTeX} auch außerordentlich schwierig umzusetzen. So kann eine feste Anzahl von »Anschlägen« nur dann eingehalten werden, wenn keine proportionale Schrift verwendet wird. Es gibt nur wenige gute nichtproportionale Schriften. Kaum ein Text, der mit einer derartigen Schrift gesetzt ist, wirkt wirklich gut. So wird häufig versucht, durch ausladende Serifen beispielsweise beim kleinen »i« oder »l« die unterschiedliche Breite der Zeichen auszugleichen. Dies kann nicht funktionieren. Im Ergebnis wirkt der Text unruhig und zerrissen. Außerdem verträgt sich eine solche Schrift kaum mit dem im deutschen Sprachraum üblichen und allgemein vorzuziehenden Blocksatz. Gewisse Vorgaben können daher bei Verwendung von {\LaTeX} nur ignoriert oder großzügig ausgelegt werden, etwa indem man »60~Anschläge pro Zeile« nicht als feste, sondern als durchschnittliche oder maximale Angabe interpretiert. Wie ausgeführt, sind Satzvorschriften meist dazu gedacht, ein brauchbares Ergebnis zu erhalten, auch wenn der Ausführende selbst nicht weiß, was dabei zu beachten ist. Brauchbar bedeutet häufig: lesbar und korrigierbar. Nach meiner Auf"|fassung wird ein mit {\LaTeX} und dem \Package{typearea}-Paket gesetzter Text bezüglich des Satzspiegels diesen Anforderungen von vornherein gerecht. Wenn Sie also mit Vorschriften konfrontiert sind, die offensichtlich erheblich davon abweichen, so empfehle ich, dem Betreuer einen Textauszug vorzulegen und nachzufragen, ob es gestattet ist, die Arbeit trotz der Abweichungen in dieser Form zu liefern. Gegebenenfalls kann durch Veränderung der Option \Option{DIV} der Satzspiegel moderat angepasst werden. Von der Verwendung von \Macro{areaset} zu diesem Zweck rate ich jedoch ab. Schlimmstenfalls verwenden Sie das nicht zu {\KOMAScript} gehörende \Package{geometry}-Paket (siehe \cite{package:geometry}) oder verändern Sie die Satzspiegelparameter von {\LaTeX} selbst. Die von \Package{typearea} ermittelten Werte finden Sie in der \File{log}-Datei Ihres Dokuments. Damit sollten moderate Anpassungen möglich sein. Achten Sie jedoch unbedingt darauf, dass die Proportionen des Textbereichs mit denen der Seite unter Berücksichtigung der Bindekorrektur annähernd übereinstimmen. Sollte es unbedingt erforderlich sein, den Text eineinhalbzeilig zu setzen, so definieren Sie keinesfalls \Macro{baselinestretch} um. Dieses Vorgehen wird zwar allzu häufig empfohlen, ist aber seit der Einführung von {\LaTeXe} im Jahre 1994 obsolet. Verwenden Sie schlimmstenfalls den Befehl \Macro{linespread}. Ich empfehle das Paket \Package{setspace},\IndexPackage{setspace} das nicht zu {\KOMAScript} gehört (siehe \cite{package:setspace}). Auch sollten Sie \Package{typearea} nach der Umstellung des Zeilenabstandes den Satzspiegel für diesen Abstand berechnen lassen, jedoch für den Titel, besser auch für die Verzeichnisse -- sowie das Literaturverzeichnis und den Index -- wieder auf normalen Satz umschalten. Das \Package{setspace}-Paket bietet dafür eine spezielle Umgebung und eigene Befehle. Das \Package{typearea}-Paket berechnet auch bei der Option \OptionValue{DIV}{calc} einen sehr großzügigen Textbereich. Viele konservative Typografen werden feststellen, dass die resultierende Zeilenlänge noch zu groß ist. Der berechnete \Var{DIV}-Wert ist ebenfalls in der \File{log}-Datei zum jeweiligen Dokument zu finden. Sie können also leicht nach dem ersten \LaTeX-Lauf einen kleineren Wert wählen. Nicht selten wird mir die Frage gestellt, warum ich eigentlich kapitelweise auf einer Satzspiegelberechnung herumreite, während es sehr viel einfacher wäre, nur ein Paket zur Verfügung zu stellen, mit dem man die Ränder wie bei einer Textverarbeitung einstellen kann. Oft wird auch behauptet, ein solches Paket wäre ohnehin die bessere Lösung, da jeder selbst wisse, wie gute Ränder zu wählen seien, und die Ränder von {\KOMAScript} wären ohnehin nicht gut. Ich erlaube mir zum Abschluss dieses Kapitels ein passendes Zitat von Hans Peter Willberg und Friedrich Forssmann, zwei der angesehensten Typografen der Gegenwart (siehe \cite{TYPO:ErsteHilfe}): \begin{quote} \phantomsection\label{sec:typearea.tips.cite}% \textit{Das Selbermachen ist längst üblich, die Ergebnisse oft fragwürdig, weil Laien-Typografen nicht sehen, was nicht stimmt und nicht wissen können, worauf es ankommt. So gewöhnt man sich an falsche und schlechte Typografie.} [\dots] \textit{Jetzt könnte der Einwand kommen, Typografie sei doch Geschmackssache. Wenn es um Dekoration ginge, könnte man das Argument vielleicht gelten lassen, da es aber bei Typografie in erster Linie um Information geht, können Fehler nicht nur stören, sondern sogar Schaden anrichten.} \end{quote} %%% Local Variables: %%% mode: latex %%% coding: iso-latin-1 %%% TeX-master: "../guide" %%% End: