% typearea.sty -- by Frank Neukam (06 Jun 1992) % modified by Peter Breitfeld (19 Apr 1994ff) % Optionen für Papiergrößen aufgenommen \newif\if@AvFormat \newif\if@gleichRand \DeclareOption{a4paper} {\setlength\paperheight {297mm}% \setlength\paperwidth {210mm}} \DeclareOption{a5paper} {\setlength\paperheight {210mm}% \setlength\paperwidth {148mm}% \@AvFormattrue} \DeclareOption{a6paper} {\setlength\paperheight {148mm}% \setlength\paperwidth {105mm}} \DeclareOption{b5paper} {\setlength\paperheight {250mm}% \setlength\paperwidth {176mm}} \DeclareOption{letterpaper} {\setlength\paperheight {11in}% \setlength\paperwidth {8.5in}} \DeclareOption{legalpaper} {\setlength\paperheight {14in}% \setlength\paperwidth {8.5in}} \DeclareOption{executivepaper} {\setlength\paperheight {10.5in}% \setlength\paperwidth {7.25in}} \DeclareOption{landscape} {\setlength\@tempdima {\paperheight}% \setlength\paperheight {\paperwidth}% \setlength\paperwidth {\@tempdima}} \ExecuteOptions{a4paper} \ProcessOptions\relax %% Wir berechnen die durchschnittliche Länge von 69 Zeichen --> \ta@temp \newcommand{\schlussmeldung}{\AtBeginDocument{ \settowidth{\ta@temp}{abcdefghijklmnopqrstuvwxyz} \multiply\ta@temp by 64 \settowidth{\@tempdima}{ABCDEFGHIJKLMNOPQRSTUVWXYZ} \multiply\@tempdima by 5 \addtolength{\ta@temp}{\@tempdima} \divide\ta@temp by 1794 % \ta@temp = Länge von 1 Zeichen \setlength{\@tempdima}{\textwidth} \divide\@tempdima\ta@temp % Zahl Zeichen pro Zeile \@tempcnta\@tempdima % nun als Zahl darstellen \PackageInfo{typeareaB}{% Folgende Seitenaufteilung wurde von typeareaB gesetzt:\MessageBreak \string\baselineskip\space\space=\space\the\baselineskip\MessageBreak DIV\space\space=\space\number\ta@div\MessageBreak BCOR\space\space=\space\the\ta@bcor\MessageBreak \string\paperwidth\space\space=\space\the\paperwidth\MessageBreak \string\paperheight\space\space=\space\the\paperheight\MessageBreak \string\textwidth\space\space=\space\the\textwidth\MessageBreak \string\textheight\space\space=\space\the\textheight\MessageBreak \string\evensidemargin\space\space=\space\the\evensidemargin\MessageBreak \string\oddsidemargin\space\space=\space\the\oddsidemargin\MessageBreak \string\topmargin\space\space=\space\the\topmargin\MessageBreak \string\topskip\space\space=\space\the\topskip\MessageBreak \string\headheight\space\space=\space\the\headheight\MessageBreak \string\headsep\space\space=\space\the\headsep\MessageBreak \string\footskip\space\space=\space\the\footskip\MessageBreak Mittlere Anzahl der Zeichen/Zeile (Soll ca. 69) =\space\the\@tempcnta \MessageBreak} }} \newdimen\ta@bcor \newcount\ta@div \newdimen\ta@hblk \newdimen\ta@vblk \newdimen\ta@temp \def\typearea{\@ifnextchar [{\@typearea}{\@typearea[0mm]}} \def\@typearea[#1]#2{ \normalsize \ta@bcor #1 % Binderand BCOR, default 0 \ta@div=#2 % Teiler für Seite \ta@hblk \paperwidth % \ta@hblk(=HLE) = Blattbreite \advance \ta@hblk by -\ta@bcor % HLE um Binderand verringern \divide\ta@hblk by \ta@div % HLE berechnen als \ta@hblk \oddsidemargin -1in % ini Ränder je -1in (TeX lässt \evensidemargin -1in % immer 1in, deshalb weg) \if@twoside % Zweiseitig: \if@gleichRand % dennoch gleiche hor. Ränder: \advance\oddsidemargin by 1.5\ta@hblk % innerer Rand 1.5 HLE \advance\oddsidemargin by \ta@bcor % BCOR dazuzählen \evensidemargin\oddsidemargin % beide Ränder gleich groß \else % echtes twoside: \advance\oddsidemargin by \ta@hblk % innerer Rand 1 HLE \advance\oddsidemargin by \ta@bcor % um BCOR einrücken \advance\evensidemargin by 2\ta@hblk % äußerer Rand 2 HLE \fi \else % Einseitig: \advance\oddsidemargin by 1.5\ta@hblk % innerer Rand 1.5 HLE \advance\oddsidemargin by \ta@bcor % BCOR dazuzählen \evensidemargin\oddsidemargin % beide Ränder gleich groß \fi \textwidth \paperwidth % Textbreite auf volle Breite \advance\textwidth by -\ta@bcor % Binderand abziehen \advance\textwidth by -3\ta@hblk % 3 HLE von Textbreite wegnehmen \headheight 15pt % Kopfzeilenhöhe auf 15pt \advance \headheight \@ptsize pt % plus Schrifthöhe \headsep 1.5\baselineskip % Abstand 1,5 Zeilen \ta@vblk \paperheight % VLE=Blatthöhe \divide\ta@vblk by \ta@div % VLE gemäß Teiler setzen \ta@temp \paperheight % Blatthöhe merken in ta@temp \advance\ta@temp by -3\ta@vblk % 3 VLE abziehen \textheight \topskip % ini Seitenhöhe auf topskip \@whiledim\textheight<\ta@temp % Seitenhöhe um Zeilen erhöhen bis \do{\advance\textheight by \baselineskip} % Seitenhöhe erreicht \topmargin \ta@vblk % oberer Rand=1VLE \advance\topmargin by -1in % -1in als Ausgleich TeX-Rand \advance\topmargin by -\headheight % Kopfbereich von oberem Rand \advance\topmargin by -\headsep % abziehen \footskip 3.5\baselineskip % Fußnotenvorschub 3,5 Zeilen \if@twoside % Doppelseitig: \if@gleichRand % dennoch gleiche hor. Ränder \marginparwidth \ta@hblk % Randnotizbreite 1 HLE \else \marginparwidth 1.5\ta@hblk % Randnotizbreite 1.5 HLE \fi \else % Einseitig: \marginparwidth \ta@hblk % Randnotizbreite 1 HLE \fi \marginparsep 1cc % 12pt Abstand des marginpar \marginparpush 0.45\baselineskip \schlussmeldung} % Ergebnis ins .log schreiben \def\areaset{\@ifnextchar [{\@areaset}{\@areaset[0mm]}} \def\@areaset[#1]#2#3{ \normalsize \ta@bcor #1 \textwidth #2 \textheight #3 \ta@hblk \paperwidth \advance\ta@hblk by -\ta@bcor \advance\ta@hblk by -\textwidth \divide\ta@hblk by 3 \oddsidemargin -1in \evensidemargin -1in \if@twoside \advance\oddsidemargin by \ta@hblk \advance\oddsidemargin by \ta@bcor \advance\evensidemargin by 2\ta@hblk \else \advance\oddsidemargin by 1.5\ta@hblk \advance\oddsidemargin by \ta@bcor \evensidemargin\oddsidemargin \fi \headheight 15pt \advance \headheight \@ptsize pt \headsep 1.5\baselineskip \ta@vblk \paperheight \advance\ta@vblk by -\textheight \divide\ta@vblk by 3 \topmargin \ta@vblk \advance\topmargin by -1in \advance\topmargin by -\headheight \advance\topmargin by -\headsep \footskip 3.5\baselineskip \if@twoside \marginparwidth 1.5\ta@hblk \else \marginparwidth \ta@hblk \fi \marginparsep 1cc \marginparpush 0.45\baselineskip \schlussmeldung} %% Standardeinstellungen verwenden und Seite aufteilen: \ifdim\brfBCOR=111in % erzwungene gleiche Ränder bei twoside \@gleichRandtrue \if@AvFormat \typearea{11} \else \ifcase\@ptsize\relax \typearea{8}\or \typearea{10}\or \typearea{12}\fi \fi \else % Ränder je nach Wahl von one/twoside \if@AvFormat % und ggf. brfBCOR \typearea[\brfBCOR]{11} \else \ifcase\@ptsize\relax \typearea[\brfBCOR]{8}\or \typearea[\brfBCOR]{10}\or \typearea[\brfBCOR]{12}\fi \fi \fi