%% %% This is file `typearea.sty', %% generated with the docstrip utility. %% %% The original source files were: %% %% scrkvers.dtx (with options: `package,typearea') %% scrktare.dtx (with options: `package,identify') %% scrkbase.dtx (with options: `load') %% scrktare.dtx (with options: `package,option') %% scrkcomp.dtx (with options: `package,typearea,option') %% scrktare.dtx (with options: `package,body') %% scrkcomp.dtx (with options: `package,typearea,body') %% scrlogo.dtx (with options: `logo') %% %% Copyright (c) 1994-2009 %% Markus Kohm and any individual authors listed elsewhere in this file. %% %% This file was generated from file(s) of the KOMA-Script bundle. %% --------------------------------------------------------------- %% %% It may be distributed under the conditions of the %% LaTeX Project Public License in the version distributed together %% with KOMA-Script, see file `lppl.txt' or `lppl-de.txt'. %% %% This file may only be distributed together with a copy of the %% KOMA-Script bundle. You may however distribute the %% KOMA-Script bundle without all such generated files. See also %% `lppl.txt' or `lppl-de.txt' for additional information. %% %% The list of files belonging to KOMA-Script distribution is given in %% the file `manifest.txt'. See also `lppl.txt' or `lppl-de.txt' for %% additional information. %% %% If this file is a beta version, you are not allowed to distribute it. %% %% English and German manuals are part of KOMA-Script bundle. %% ---------------------------------------------------------- %% %% See `README'. %% %% The KOMA-Script bundle (but maybe not this file) was based upon the %% LaTeX2.09 Script family created by Frank Neukam 1993 and the LaTeX2e %% standard classes created by The LaTeX3 Project 1994-1996. %% %%% From File: scrkvers.dtx \begingroup \makeatletter \ifx\KOMAScriptVersion\undefined \newcommand*{\@CheckKOMAScriptVersion}[1]{% \gdef\KOMAScriptVersion{#1}% }% \else \newcommand*{\@CheckKOMAScriptVersion}[1]{% \def\@tempa{#1}% \ifx\KOMAScriptVersion\@tempa\else \@latex@warning@no@line{% \noexpand\KOMAScriptVersion\space is `\KOMAScriptVersion',\MessageBreak but `#1' was expected!\MessageBreak You should not use classes, packages or files from\MessageBreak different KOMA-Script versions% }% \fi } \fi \@CheckKOMAScriptVersion{2009/01/01 v3.02 KOMA-Script}% \endgroup %%% From File: scrktare.dtx \ProvidesPackage{typearea}[% \KOMAScriptVersion\space package (type area)] \typeout{% Package typearea, \csname ver@typearea.sty\endcsname^^J% \@spaces\@spaces\@spaces\@spaces\space\space Copyright (C) Frank Neukam, 1992-1994^^J% \@spaces\@spaces\@spaces\@spaces\space\space Copyright (C) Markus Kohm, 1994-^^J% } %%% From File: scrkbase.dtx \RequirePackage{scrkbase}[\KOMAScriptVersion] %%% From File: scrktare.dtx \newcommand*\SetDIVList[1]{\def\ta@divlist{{}{}{}{}{}{}{}{}{}#1}} \newcommand*\SetXDIVList[1]{\def\ta@divlist{#1}} \newlength{\ta@bcor} \newcount\ta@div \newcommand*{\@BCOR}{\expandafter\@@BCOR\CurrentOption BCORBCOR\@@BCOR} \newcommand*{\@@BCOR}{} \def\@@BCOR #1BCOR#2BCOR#3\@@BCOR{% \ifstr{#1}{}{% \ifstr{#3}{BCOR}{% \ifdimen{#2}{\setlength{\ta@bcor}{#2}}{\scr@pti@nerr@r}% }{\scr@pti@nerr@r}% }{\scr@pti@nerr@r}% } \newcommand*{\@DIV}{\expandafter\@@DIV\CurrentOption DIVDIV\@@DIV} \newcommand*{\@@DIV}{} \def\@@DIV #1DIV#2DIV#3\@@DIV{% \edef\@tempa{#1}\ifx\@tempa\@empty \edef\@tempa{#3}\def\@tempb{DIV}\ifx\@tempa\@tempb \ifnumber{#2}{\ta@div=#2\relax}{\scr@pti@nerr@r}% \else\scr@pti@nerr@r\fi \else\@BCOR\fi } \newcommand{\@headlines}{% \expandafter\@@headlines\CurrentOption headlines\@@headlines% } \newcommand*{\@@headlines}{} \def\@@headlines #1headlines#2\@@headlines{ \edef\@tempa{#2}\edef\@tempb{headlines}\ifx\@tempa\@tempb \setlength{\@tempdima}{#1\baselineskip}% \def\ta@hh{#1\baselineskip}% \else\@DIV\fi } \newcommand\isopaper[2][a]{% \ifx a#1 \setlength{\paperwidth}{841sp}% \setlength{\paperheight}{1189sp}% \else\ifx A#1 \setlength{\paperwidth}{841sp}% \setlength{\paperheight}{1189sp}% \else\ifx b#1 \setlength{\paperwidth}{1000sp}% \setlength{\paperheight}{1414sp}% \else\ifx B#1 \setlength{\paperwidth}{1000sp}% \setlength{\paperheight}{1414sp}% \else\ifx c#1 \setlength{\paperwidth}{917sp}% \setlength{\paperheight}{1297sp}% \else\ifx C#1 \setlength{\paperwidth}{917sp}% \setlength{\paperheight}{1297sp}% \else\ifx d#1 \setlength{\paperwidth}{771sp}% \setlength{\paperheight}{1090sp}% \else\ifx D#1 \setlength{\paperwidth}{771sp}% \setlength{\paperheight}{1090sp}% \else \PackageError{typearea}{% Unknown ISO/DIN-papersize-letter #1% }{% There are only four defined paper scalings:\MessageBreak a = ISO/DIN-A, b = ISO/DIN-B, c = ISO/DIN-C, d = ISO/DIN-D\MessageBreak Read KOMA-Script-documentation for further information.% }% \setlength{\paperwidth}{841sp}% \setlength{\paperheight}{1189sp}% \fi \fi \fi \fi \fi \fi \fi \fi \@tempcnta=#2\relax \@whilenum\@tempcnta>0 \do{\setlength{\@tempdima}{\paperwidth} \setlength{\paperwidth}{.5\paperheight} \setlength{\paperheight}{\@tempdima} \advance\@tempcnta by\m@ne } \multiply\paperwidth by186468 \multiply\paperheight by186468 \if@landscape \setlength{\@tempdima}{\paperwidth}% \setlength{\paperwidth}{\paperheight}% \setlength{\paperheight}{\@tempdima}% \fi } \newcommand*{\iso@paper}[1]{\expandafter\iso@@paper#1\@nil} \newcommand*{\iso@@paper}{} \def\iso@@paper#1#2\@nil{% \@tempswafalse \if #1a\@tempswatrue \else\if #1A\@tempswatrue \else\if #1b\@tempswatrue \else\if #1B\@tempswatrue \else\if #1c\@tempswatrue \else\if #1C\@tempswatrue \else\if #1d\@tempswatrue \else\if #1D\@tempswatrue \fi\fi\fi\fi\fi\fi\fi\fi \if@tempswa \ifnumber{#2}{\isopaper[#1]{#2}}{\@tempswafalse}% \fi } \newcommand*{\x@paper}{% \expandafter\x@@paper\CurrentOption paper\x@@paper% } \newcommand*{\x@@paper}{} \def\x@@paper #1#2paper#3\x@@paper{% \ifstr{#3}{paper}{% \ifnumber{#2}{% \ifstr{#1}{a}{% \isopaper[a]{#2}% }{% \ifstr{#1}{b}{% \isopaper[b]{#2}% }{% \ifstr{#1}{c}{% \isopaper[c]{#2}% }{% \ifstr{#1}{d}{% \isopaper[d]{#2}% }{\scr@pti@nerr@r}% }% }% }% }{\scr@pti@nerr@r}% }{% \@headlines }% } \newcommand*{\scr@pti@nerr@r}{ \@unknownoptionerror } \KOMA@key{headlines}{% \begingroup \setlength{\@tempdima}{#1\baselineskip}% \endgroup \def\ta@hh{#1\baselineskip}% } \KOMA@key{headheight}{% \begingroup \setlength{\@tempdima}{#1}% \endgroup \def\ta@hh{#1}% } \newif\if@hincl\@ifundefined{if@hsl}{}{\let\if@hincl\if@hsl} \KOMA@ifkey{headinclude}{@hincl} \KOMA@DeclareDeprecatedOption[typearea]{headexclude}{headinclude=false} \newif\if@fincl\@ifundefined{if@fsl}{}{\let\if@fincl\if@fsl} \KOMA@ifkey{footinclude}{@fincl} \KOMA@DeclareDeprecatedOption[typearea]{footexclude}{footinclude=false} \KOMA@ifkey{mpinclude}{@mincl} \KOMA@DeclareDeprecatedOption[typearea]{mpexclude}{mpinclude=false} \KOMA@key{BCOR}{% \edef\@tempa{#1}\edef\@tempb{current}\ifx\@tempa\@tempb\else \setlength{\ta@bcor}{#1}% \fi } \AtEndOfPackage{\KOMA@key{BCOR}{\typearea[{#1}]{last}}} \KOMA@key{DIV}[calc]{% \edef\@tempa{#1}% \def\@tempb{last}\ifx\@tempa\@tempb\let\@tempa=\@lastdiv\fi \def\@tempb{current}\ifx\@tempa\@tempb\else \def\@tempb{default}\ifx\@tempa\@tempb\ta@div=0 \else \def\@tempb{calc}\ifx\@tempa\@tempb\ta@div=2 \else \def\@tempb{classic}\ifx\@tempa\@tempb\ta@div=3 \else \ta@div=\@tempa \fi \fi \fi \fi } \AtEndOfPackage{\KOMA@key{DIV}{\typearea[current]{#1}}} \KOMA@DeclareDeprecatedOption[typearea]{DIVcalc}{DIV=calc} \KOMA@DeclareDeprecatedOption[typearea]{DIVclassic}{DIV=classic} \newif\if@semitwoside \g@addto@macro\@twosidetrue\@semitwosidefalse \g@addto@macro\@twosidefalse\@semitwosidefalse \KOMA@key{twoside}[true]{% \if@atdocument\if@twoside\cleardoublepage\else\clearpage\fi\fi \ifstr{#1}{semi}{% \@twosidetrue \@semitwosidetrue }{% \def\FamilyElseValue{, `semi'}% \KOMA@set@ifkey{twoside}{@twoside}{#1}% }% \if@twoside \if@semitwoside \@mparswitchfalse \else \@mparswitchtrue \fi \else \@mparswitchfalse \fi% \csname recalctypearea\endcsname } \KOMA@DeclareStandardOption% [typearea]% {oneside}{twoside=false} \KOMA@key{twocolumn}[true]{% \if@atdocument\clearpage\fi \KOMA@set@ifkey{twocolumn}{@twocolumn}{#1}% \csname recalctypearea\endcsname } \KOMA@DeclareStandardOption% [typearea]% {onecolumn}{twocolumn=false} \KOMA@key{pagesize}[auto]{% \begingroup \KOMA@set@ncmdkey{pagesize}{@tempa}{% {auto}{0},{automedia}{1},{dvips}{2},{pdftex}{3}% }{#1}% \ifcase\number\@tempa\relax \endgroup \set@pdftexpagesize \set@dvipspagesize \or \endgroup \set@pdftexpagesize \set@vtexpagesize \set@dvipspagesize \or \endgroup \set@dvipspagesize \or \endgroup \set@pdftexpagesize \fi \edef\@pagesizelast{#1}% } \newcommand{\set@pdftexpagesize}{% \AtBeginDocument{% \ifnotundefined{pdfpagewidth}{\pdfpagewidth=\paperwidth}{}% \ifnotundefined{pdfpageheight}{\pdfpageheight=\paperheight}{}% }% \let\set@pdftexpagesize=\@empty } \newcommand{\set@dvipspagesize}{% \begingroup \@tempswafalse \scr@ifdvioutput{\@tempswatrue}{% \ifnotundefined{if@dvips}{\let\if@tempswa\if@dvips}{}% }% \if@tempswa \endgroup \AtBeginDocument{\AtBeginDvi{% \special{papersize=\the\paperwidth,\the\paperheight}% }% }% \let\set@dvipspagesize=\setnot@dvipspagesize \else \endgroup \fi } \newcommand{\setnot@dvipspagesize}{% \scr@ifdvioutput{% \PackageWarning{% typearea% }{% With dvi output option `pagesize=auto',\MessageBreak `pagesize=automedia' or `pagesize=dvips'\MessageBreak may be used only once at preamble.\MessageBreak Option ignored% }% }{}% } \newcommand{\set@vtexpagesize}{% \AtBeginDocument{% \ifnotundefined{mediawith}{\mediawidth=\paperwidth}{}% \ifnotundefined{mediaheight}{\mediaheight=\paperheight}{}% }% \let\set@vtexpagesize=\@empty } \AtBeginDocument{ \renewcommand*{\set@pdftexpagesize}{% \ifnotundefined{pdfpagewidth}{\pdfpagewidth=\paperwidth}{}% \ifnotundefined{pdfpageheight}{\pdfpageheight=\paperheight}{}% }% \let\set@dvipspagesize=\setnot@dvipspagesize \renewcommand*{\set@vtexpagesize}{% \ifnotundefined{mediawith}{\mediawidth=\paperwidth}{}% \ifnotundefined{mediaheight}{\mediaheight=\paperheight}{}% }% } \KOMA@DeclareStandardOption[typearea]{dvips}{% pagesize=automedia% } \KOMA@DeclareStandardOption[typearea]{pdftex}{% pagesize=pdftex% } \KOMA@DeclareStandardOption[typearea]{a4paper}{paper=a4} \KOMA@DeclareStandardOption[typearea]{a5paper}{paper=a5} \KOMA@DeclareStandardOption[typearea]{b5paper}{paper=b5} \KOMA@DeclareStandardOption[typearea]{letterpaper}{paper=letter} \KOMA@DeclareStandardOption[typearea]{legalpaper}{paper=legal} \KOMA@DeclareStandardOption[typearea]{executivepaper}{paper=executive} \KOMA@DeclareStandardOption[typearea]{landscape}{paper=landscape} \KOMA@DeclareStandardOption[typearea]{portrait}{paper=portrait} \KOMA@key{paper}{% \ifstr{#1}{landscape}{% \if@landscape\else \setlength{\@tempdima}{\paperwidth}% \setlength{\paperwidth}{\paperheight}% \setlength{\paperheight}{\@tempdima}% \@landscapetrue \fi }{% \ifstr{#1}{portrait}{% \if@landscape \setlength{\@tempdima}{\paperwidth}% \setlength{\paperwidth}{\paperheight}% \setlength{\paperheight}{\@tempdima}% \@landscapefalse \fi }{% \ifstr{#1}{letter}{% \if@landscape \setlength\paperheight{8.5in}% \setlength\paperwidth {11in}% \else \setlength\paperheight{11in}% \setlength\paperwidth {8.5in}% \fi }{% \ifstr{#1}{legal}{% \if@landscape \setlength\paperheight{8.5in}% \setlength\paperwidth {14in}% \else \setlength\paperheight{14in}% \setlength\paperwidth {8.5in}% \fi }{% \ifstr{#1}{executive}{% \if@landscape \setlength\paperheight{7.25in}% \setlength\paperwidth {10.5in}% \else \setlength\paperheight{10.5in}% \setlength\paperwidth {7.25in}% \fi }{% \iso@paper{#1}% \if@tempswa\else \expandafter\maybe@pair#1::\@nil \if@tempswa \ifnum \scr@ta@compatibility<\@nameuse{scr@v@3.01b}\relax \PackageWarningNoLine{typearea}{% You may have to exchange height and width!\MessageBreak Until KOMA-Script version 3.01b the semantic\MessageBreak of option `paper' was `paper=height:width'\MessageBreak instead of `paper=width:height'.\MessageBreak I've switched back to that old interpretation\MessageBreak because of the given compatiblity settings}% \setlength\paperheight{\@tempa}% \setlength\paperwidth{\@tempb}% \else \setlength\paperwidth{\@tempa}% \setlength\paperheight{\@tempb}% \fi \else \KOMA@unknown@keyval{paper}{#1}{% `letter', `legal', `executive', `a', `b', `c', `d',\MessageBreak `:', `landscape' and `portrait'% }% \fi \fi }% }% }% }% }% } \newif\if@landscape \newcommand*{\maybe@pair}{} \def\maybe@pair#1:#2:#3\@nil{% \edef\@tempa{#1}\edef\@tempb{#2}% \ifx\@tempa\@empty\@tempswafalse\else \ifx\@tempb\@empty\@tempswafalse\else\@tempswatrue\fi \fi } \DeclareOption*{% \x@paper} %%% From File: scrkcomp.dtx \providecommand* {\scr@compatibility}{\scr@v@last} \newcommand*{\scr@ta@compatibility}{\scr@compatibility} \KOMA@key{version}[last]{% \scr@ifundefinedorrelax{scr@v@#1}{% \def\scr@compatibility{0}% \PackageWarningNoLine{% typearea% }{% You have set option `version' to value `#1', but\MessageBreak this value of version is not supported.\MessageBreak Because of this, version was set to `first'% }% }{% \PackageInfoNoLine{scrextend}{% Switching compatibility level to `#1'% }% \edef\scr@ta@compatibility{\@nameuse{scr@v@#1}}% }% } \AtEndOfPackage{% \KOMA@key{version}[]{% \PackageError{% typearea% }{% Option `version' too late% }{% Option `version' may be set only while loading the package.\MessageBreak But you've tried to set it up later.% }% }% } \@namedef{scr@v@first}{0} \@namedef{scr@v@2.9}{0} \@namedef{scr@v@2.9t}{0} \@namedef{scr@v@2.9u}{1} \@namedef{scr@v@2.95}{2} \@namedef{scr@v@2.95a}{2} \@namedef{scr@v@2.95b}{2} \@namedef{scr@v@2.96}{2} \@namedef{scr@v@2.96a}{3} \@namedef{scr@v@2.97}{3} \@namedef{scr@v@2.97a}{3} \@namedef{scr@v@2.97b}{3} \@namedef{scr@v@2.97c}{4} \@namedef{scr@v@2.97d}{5} \@namedef{scr@v@2.97e}{6} \@namedef{scr@v@2.98}{6} \@namedef{scr@v@2.98a}{6} \@namedef{scr@v@2.98b}{6} \@namedef{scr@v@2.98c}{7} \@namedef{scr@v@3.00}{8} \@namedef{scr@v@3.01}{8} \@namedef{scr@v@3.01a}{8} \@namedef{scr@v@3.01b}{9} \@namedef{scr@v@3.01c}{9} \@namedef{scr@v@3.02}{9} \@namedef{scr@v@last}{9} %%% From File: scrktare.dtx \InputIfFileExists{typearea.cfg}{% \typeout{% ***************************************^^J% * Local config file typearea.cfg used^^J% ***************************************% } }{} \KOMAExecuteOptions{paper=A4} \if@twoside \if@semitwoside \KOMAExecuteOptions{twoside=semi} \else \KOMAExecuteOptions{twoside} \fi \else \KOMAExecuteOptions{twoside=false} \fi \KOMAProcessOptions\relax \providecommand\ta@divlist{{}{}{}{}{}{}{}{}{}{8}{10}{12}} \providecommand\ta@divlistelse{1} \newlength{\ta@hblk} \newlength{\ta@vblk} \newlength{\ta@temp} \newcommand*\@typearea{% \selectfont \ta@hblk=\paperwidth \advance \ta@hblk by-\ta@bcor \divide\ta@hblk by\ta@div \if@mincl \marginparwidth=\ta@hblk \advance\marginparwidth by-\marginparsep \else \if@twoside \if@semitwoside \marginparwidth=\ta@hblk \else \marginparwidth=1.5\ta@hblk \fi \else \marginparwidth=\ta@hblk \fi \fi \oddsidemargin=-1in \evensidemargin=-1in \if@twoside \if@semitwoside \advance\oddsidemargin by1.5\ta@hblk \advance\oddsidemargin by\ta@bcor \evensidemargin=\oddsidemargin \else \advance\oddsidemargin by\ta@hblk \advance\oddsidemargin by\ta@bcor \advance\evensidemargin by2\ta@hblk \if@mincl \advance\evensidemargin by\marginparwidth \advance\evensidemargin by\marginparsep \fi \fi \else \advance\oddsidemargin by1.5\ta@hblk \advance\oddsidemargin by\ta@bcor \evensidemargin=\oddsidemargin \fi \textwidth=\paperwidth \advance\textwidth by-\ta@bcor \advance\textwidth by-3\ta@hblk \if@mincl \advance\textwidth by-\marginparwidth \advance\textwidth by-\marginparsep \ifdim\textwidth <\marginparwidth \PackageWarningNoLine{typearea}{% Width of text (\the\textwidth) less than width of\MessageBreak marginpar (\the\marginparwidth) while using option\MessageBreak `mpinclude'.\MessageBreak Because of this, I'm exchanging the values.\MessageBreak You should increase DIV to avoid such problems.\MessageBreak }% \@tempskipa=\marginparwidth \marginparwidth=\textwidth \textwidth=\@tempskipa \fi \fi \ta@vblk=\paperheight \divide\ta@vblk by\ta@div \topmargin=-1in \advance\topmargin by\ta@vblk \if@hincl \else \advance\topmargin by-\headheight \advance\topmargin by-\headsep \fi \ta@temp=\paperheight \advance\ta@temp by-3\ta@vblk \if@hincl \advance\ta@temp by-\headheight \advance\ta@temp by-\headsep \fi \if@fincl \advance\ta@temp by-\footskip \fi \scr@ifundefinedorrelax{@ptsize}{% \topskip=\f@size\p@ }{% \topskip=\@ptsize\p@ \advance\topskip by 10\p@ }% \maxdepth=.5\topskip \textheight=\topskip \@whiledim\textheight <\ta@temp \do{\advance\textheight by\baselineskip}% } \newcommand*\ta@modiv[2]{ \setlength{\@tempdima}{#1} \divide\@tempdima by#2 \ta@div\@tempdima \ifnum \ta@div<4 \ta@div=4 \else \setlength{\@tempdimb}{#1}% \divide\@tempdimb by\ta@div \addtolength{\@tempdima}{\@tempdima}% \addtolength{\@tempdima}{-\@tempdimb}% \advance\ta@div by\@ne \setlength{\@tempdimb}{#1}% \divide\@tempdimb by\ta@div \ifdim \@tempdima<\@tempdimb \advance\ta@div by\m@ne \fi \fi } \newcommand*\ta@temp@goodwidth{% \settowidth{\ta@temp}{\normalfont\normalsize abcdefghijklmnopqrstuvwxyz}% \ifdim\ta@temp >200\p@ \setlength{\ta@temp}{2.53846\ta@temp}% \settowidth{\@tempdima}{\normalfont\normalsize ABCDEFGHIJKLMNOPQRSTUVWXYZ}% \setlength{\@tempdima}{.11538\@tempdima}% \addtolength{\ta@temp}{\@tempdima}% \else \multiply\ta@temp by66 \settowidth{\@tempdima}{\normalfont\normalsize ABCDEFGHIJKLMNOPQRSTUVWXYZ}% \multiply\@tempdima by3 \addtolength{\ta@temp}{\@tempdima}% \divide\ta@temp by26 \fi } \newcommand*{\AfterCalculatingTypearea}{% \@ifstar \l@addto@macro \g@addto@macro \@typearea@end } \newcommand*{\@typearea@end}{} \newcommand*{\activateareas}{% \if@atdocument \PackageWarning{typearea}{% Typearea changed!\MessageBreak You should do this only at preamble, because only\MessageBreak \protect\begin{document} calculates output dimensions!\MessageBreak Trying to calculate new output dimensions, but\MessageBreak this is only a dirty hack}% \@colht=\textheight \@colroom=\textheight \vsize=\textheight \columnwidth=\textwidth \if@twocolumn \advance\columnwidth by-\columnsep \divide\columnwidth by\tw@ \hsize=\columnwidth \@firstcolumntrue \fi \hsize=\columnwidth \linewidth\hsize \scr@ifundefinedorrelax{@pagesizelast}{}{\KOMAoptions{pagesize=\@pagesizelast}}% \fi } \newcommand*{\ta@divfor}[1]{% \if@mincl \PackageInfo{typearea}{% With option `mpinclude' there are no predefined\MessageBreak DIV values. Using DIV calculation for good line\MessageBreak width% }% \ta@div=2 \else \xdef\@tempa{\ta@divlist{}}% \@tempdima=#1pt \addtolength{\@tempdima}{.5\p@}% \divide\@tempdima by\p@ \setlength{\@tempdimb}{\@tempdima}% \multiply\@tempdimb by\p@ \ifdim \@tempdimb=#1pt \ta@div=#1\relax \@whilenum \ta@div >-9 \do {% \ifx\@tempa\empty \else \xdef\@tempa{\expandafter\@cdr\@tempa\@nil}\fi \advance\ta@div by-1 }% \else \let\@tempa\empty \fi \ifx\@tempa\empty \setlength{\@tempdima}{#1\p@}% \addtolength{\@tempdima}{10\p@}% \PackageWarningNoLine{typearea}{% DIV for \the\@tempdima\space and used papersize\MessageBreak not defined!\MessageBreak Using DIV=\ta@divlistelse }% \ta@div=\ta@divlistelse\relax \else \xdef\@tempa{\expandafter\@car\@tempa\@nil}% \ifx\@tempa\empty \ta@div=\ta@divlistelse\relax \else \ta@div=\@tempa\relax \fi \fi \fi } \newcommand*\typearea[2][\z@]{% \scr@ifundefinedorrelax{currentgrouptype}{}{% \ifcase\currentgrouptype\else \PackageWarning{typearea}{% \string\typearea\space used at group level \the\currentgrouplevel.\MessageBreak Using \string\typearea\space inside any group, e.g.\MessageBreak environments, math mode, boxes, etc. may result in\MessageBreak many type setting problems. Because of this you\MessageBreak should never do this. You should move the \string\typearea\MessageBreak outside all groups% }% \fi }% \edef\@tempa{#1}\edef\@tempb{current}\ifx\@tempa\@tempb\else \setlength{\ta@bcor}{#1}% \fi \edef\@tempa{#2}% \def\@tempb{last}\ifx\@tempa\@tempb\let\@tempa=\@lastdiv \ifx\csname @tempa\endcsname\relax \def\@tempa{current}% \fi \fi \def\@tempb{areaset}\ifx\@tempa\@tempb \areaset[current]{\textwidth}{\textheight}% \else \def\@tempb{current}\ifx\@tempa\@tempb\else \def\@tempb{default}\ifx\@tempa\@tempb\ta@div=0 \else \def\@tempb{calc}\ifx\@tempa\@tempb\ta@div=2 \else \def\@tempb{classic}\ifx\@tempa\@tempb\ta@div=3 \else \ta@div=\@tempa \fi \fi \fi \fi \edef\@lastdiv{\the\ta@div}% \if@atdocument\newpage\fi \normalsize \@ifundefined{ta@hh}{% \headheight=1.25\baselineskip }{% \headheight=\ta@hh }% \headsep=1.5\baselineskip \footskip=3.5\baselineskip \marginparsep=1cc \marginparpush=0.45\baselineskip \ifnum\ta@div=\z@ \@ifundefined{@ptsize}{% \@tempdima=\f@size\p@ \advance\@tempdima by.5pt \ta@div=\@tempdima \divide\ta@div by65536 \advance\ta@div by-10 \xdef\@ptsize{\the\ta@div}% \PackageWarningNoLine{typearea}{% \string\@ptsize\space not defined!\MessageBreak Fontsize is \f@size pt.\MessageBreak Defining \string\@ptsize\space to \@ptsize% }% }{}% \ta@divfor{\@ptsize}% \fi \ifnum\ta@div=3 \typeout{DIV calculation for classic typearea.}% \setlength{\ta@temp}{\paperwidth}% \addtolength{\ta@temp}{-\ta@bcor}% \if@hincl\else \addtolength{\ta@temp}{\headheight}% \addtolength{\ta@temp}{\headsep}% \fi \if@fincl\else \addtolength{\ta@temp}{\footskip}% \fi \ifdim \ta@temp >\paperheight \PackageWarningNoLine{typearea}{% No classic typearea with this papersize!\MessageBreak Using calculated DIV% }% \ta@div=\@ne \else \setlength{\ta@temp}{\paperheight}% \addtolength{\ta@temp}{-\paperwidth}% \addtolength{\ta@temp}{\ta@bcor}% \divide\ta@temp by3 \ta@modiv{\paperheight}{\ta@temp}% \fi \fi \ifnum\ta@div <4 \typeout{DIV calculation for typearea with good linewidth.}% \setlength{\textwidth}{\paperwidth}% \addtolength{\textwidth}{-\ta@bcor}% \ta@temp@goodwidth \if@twocolumn \addtolength{\ta@temp}{\ta@temp}% \addtolength{\ta@temp}{\columnsep}% \fi \setlength{\ta@hblk}{\paperwidth}% \addtolength{\ta@hblk}{-\ta@temp}% \divide\ta@hblk by3 \ifdim \ta@hblk <\z@ \setlength{\ta@hblk}{5mm}% \fi \if@mincl \setlength{\ta@temp}{.75\ta@hblk}% \else \setlength{\ta@temp}{\ta@hblk}% \fi \ta@modiv{\paperwidth}{\ta@temp}% \@typearea \setlength{\ta@temp}{-1in}% \addtolength{\ta@temp}{5mm}% \ifdim\topmargin <\ta@temp \setlength{\ta@temp}{15mm}% \if@hincl\else \addtolength{\ta@temp}{\headheight}% \addtolength{\ta@temp}{\headsep}% \fi \if@fincl\else \addtolength{\ta@temp}{\footskip}% \fi \divide\ta@temp by3 \ta@modiv{\paperheight}{\ta@temp}% \fi \fi \@typearea \ta@temp@goodwidth \if@twocolumn \addtolength{\ta@temp}{\ta@temp}% \addtolength{\ta@temp}{\columnsep}% \fi \setlength{\@tempdima}{\ta@temp}% \addtolength{\ta@temp}{-\textwidth}% \divide\@tempdima by100 \divide\ta@temp by\@tempdima \@tempcnta=\ta@temp \ifnum\@tempcnta <5 \ifnum\@tempcnta >-5 \@tempcnta=0 \else \advance\@tempcnta by4 \fi \else \advance\@tempcnta by-4 \fi \ifnum\@tempcnta <-15 \@tempcnta=-\@tempcnta \PackageWarningNoLine{typearea}{% Bad type area settings!\MessageBreak The detected line width is about \the\@tempcnta\@percentchar\MessageBreak larger than the heuristically detected line width.\MessageBreak You should e.g. decrease DIV, increase fontsize\MessageBreak or change papersize% }% \@tempcnta=-\@tempcnta \else \ifnum\@tempcnta>15 \PackageWarningNoLine{typearea}{% Maybe no optimal type area settings!\MessageBreak The maximum limit of line width is about \the\@tempcnta\@percentchar\MessageBreak larger than the heuristically detected line width.\MessageBreak You may e.g. increase DIV, decrease fontsize\MessageBreak or change the papersize% } \fi\fi \ifnum\ta@div <6 \PackageWarningNoLine{typearea}{% Very low DIV value!\MessageBreak DIV values less than 6 result in textwidth/-height\MessageBreak smaller than total marginwidth/-height.\MessageBreak You should e.g. increase DIV, increase fontsize or\MessageBreak change papersize% } \fi \ta@layoutinfo{\number\ta@div}{\the\@tempcnta}% \@typearea@end \activateareas \fi } \newcommand*{\ta@layoutinfo}[2]{% \PackageInfo{typearea}{% These are the values describing the layout:\MessageBreak DIV\space\space=\space#1\MessageBreak BCOR\space=\space\the\ta@bcor\MessageBreak \string\paperwidth\space\space\space\space\space\space=% \space\the\paperwidth\MessageBreak \space\string\textwidth\space\space\space\space\space\space=% \space\the\textwidth\MessageBreak \ifx\relax#2\relax\else \space DIV departure\space\space\space=% \space#2\@percentchar\MessageBreak \fi \space\string\evensidemargin\space=% \space\the\evensidemargin\MessageBreak \space\string\oddsidemargin\space\space=% \space\the\oddsidemargin\MessageBreak \string\paperheight\space\space\space\space\space=% \space\the\paperheight\MessageBreak \space\string\textheight\space\space\space\space\space=% \space\the\textheight\MessageBreak \space\string\topmargin\space\space\space\space\space\space=% \space\the\topmargin\MessageBreak \space\string\headheight\space\space\space\space\space=% \space\the\headheight\MessageBreak \space\string\headsep\space\space\space\space\space\space\space\space=% \space\the\headsep\MessageBreak \space\string\topskip\space\space\space\space\space\space\space\space=% \space\the\topskip\MessageBreak \space\string\footskip\space\space\space\space\space\space\space=% \space\the\footskip\MessageBreak \space\string\baselineskip\space\space\space=% \space\the\baselineskip\MessageBreak }% } \AtEndOfPackage{\newcommand*{\recalctypearea}{\typearea[current]{last}}} \newcommand*\areaset[3][\z@]{% \edef\@tempa{#1}\edef\@tempb{current}\ifx\@tempa\@tempb\else \setlength{\ta@bcor}{#1}% \fi \if@atdocument\newpage\fi \setlength{\textwidth}{#2}% \setlength{\textheight}{#3}% \def\@lastdiv{areaset}% \ta@hblk=\paperwidth \advance\ta@hblk by-\ta@bcor \advance\ta@hblk by-\textwidth \divide\ta@hblk by3 \oddsidemargin=-1in \evensidemargin=-1in \if@twoside \if@semitwoside \advance\oddsidemargin by1.5\ta@hblk \advance\oddsidemargin by\ta@bcor \evensidemargin\oddsidemargin \else \advance\oddsidemargin by\ta@hblk \advance\oddsidemargin by\ta@bcor \advance\evensidemargin by2\ta@hblk \fi \else \advance\oddsidemargin by1.5\ta@hblk \advance\oddsidemargin by\ta@bcor \evensidemargin\oddsidemargin \fi \scr@ifundefinedorrelax{@ptsize}{% \topskip=\f@size\p@ }{% \topskip=\@ptsize\p@ \advance\topskip by 10\p@ }% \headheight=15\p@ \advance\headheight by\f@size\p@ \advance\headheight by-10\p@ \headsep=1.5\baselineskip \footskip=3.5\baselineskip \ta@vblk=\paperheight \advance\ta@vblk by-\textheight \divide\ta@vblk by3 \if@hincl \advance\textheight by-\headheight \advance\textheight by-\headsep \fi \if@fincl \advance\textheight by-\footskip \fi \topmargin \ta@vblk \advance\topmargin by-1in \if@hincl \else \advance\topmargin by-\headheight \advance\topmargin by-\headsep \fi \if@twoside \if@semitwoside \marginparwidth=\ta@hblk \else \marginparwidth=1.5\ta@hblk \fi \else \marginparwidth=\ta@hblk \fi \marginparsep=1cc \marginparpush=0.45\baselineskip \ta@layoutinfo{areaset}{}% \activateareas } \typearea[current]{current} %%% From File: scrkcomp.dtx %%% From File: scrlogo.dtx \@ifundefined{KOMAScript}{% \DeclareRobustCommand{\KOMAScript}{\textsf{K\kern.05em O\kern.05em% M\kern.05em A\kern.1em-\kern.1em Script}}}{} \endinput %% %% End of file `typearea.sty'.