%%
%% 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 may not be allowed to distribute
%% it. Look at the comments below to see if this is the case.
%%
%% 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
%% LaTeX 2.09 Script family created by Frank Neukam 1993 and the LaTeX2e
%% standard classes created by The LaTeX3 Project 1994-1996. You may
%% find a complete unmodified copy of LaTeX2e at
%% .
%%
%%% 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/07/07 v3.04 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}{%
{off}{-1},{no}{-1},{false}{-1},%
{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}%
\if@seascape\special{! TeXDict begin /landplus90{true}store end }\fi
}%
}%
\ifnum \scr@compatibility>\@nameuse{scr@v@3.02b}\relax
\let\set@dvipspagesize=\@empty
\else
\let\set@dvipspagesize=\setnot@dvipspagesize
\fi
\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
}
\newcommand*{\scr@updatedvipspagesize}{%
\special{ps::\@percentchar\@percentchar
PageBoundingBox: 0 0 \the\numexpr\paperwidth/\dimexpr 1bp\relax\relax
\space \the\numexpr\paperheight/\dimexpr 1bp\relax\relax^^J%
\@percentchar\@percentchar BeginPageSetup^^J%
<< /PageSize [\the\numexpr\paperwidth/\dimexpr 1bp\relax\relax\space
\the\numexpr\paperheight/\dimexpr 1bp\relax\relax]
>> setpagedevice^^J%<<
0 0 bop^^J%
\@percentchar\@percentchar EndPageSetup}%
}
\AtBeginDocument{
\renewcommand*{\set@pdftexpagesize}{%
\ifnotundefined{pdfpagewidth}{\pdfpagewidth=\paperwidth}{}%
\ifnotundefined{pdfpageheight}{\pdfpageheight=\paperheight}{}%
}%
\ifnum \scr@compatibility>\@nameuse{scr@v@3.02b}\relax
\renewcommand*{\set@dvipspagesize}{%
\scr@ifundefinedorrelax{AtNextShipout}{%
\scr@ifundefinedorrelax{AtBeginShipoutNext}{%
\begingroup
\protected@edef\reserved@a{\endgroup
\scr@updatedvipspagesize}\reserved@a
}{%
\begingroup
\protected@edef\reserved@a{\endgroup
\protect\AtBeginShipoutNext{%
\protect\bgroup
\protect\global\protect\setbox\AtBeginShipoutBox\protect\vbox{%
\scr@updatedvipspagesize
\protect\box\AtBeginShipoutBox
}%
\protect\egroup
}}\reserved@a
}%
}{%
\begingroup
\protected@edef\reserved@a{\endgroup
\protect\AtNextShipout{%
\protect\bgroup
\protect\global\protect\setbox\protect\@cclv\protect\vbox{%
\scr@updatedvipspagesize
\protect\box\protect\@cclv
}%
\protect\egroup
}}\reserved@a
}%
}%
\else
\let\set@dvipspagesize=\setnot@dvipspagesize
\fi
\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}{seascape}{%
\@seascapetrue
\if@landscape\else
\setlength{\@tempdima}{\paperwidth}%
\setlength{\paperwidth}{\paperheight}%
\setlength{\paperheight}{\@tempdima}%
\@landscapetrue
\fi
}{%
\ifstr{#1}{landscape}{%
\@seascapefalse
\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@seascape
\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@3.02b}{9}
\@namedef{scr@v@3.02c}{10}
\@namedef{scr@v@3.03}{10}
\@namedef{scr@v@3.03a}{10}
\@namedef{scr@v@3.03b}{10}
\@namedef{scr@v@3.04}{10}
\@namedef{scr@v@last}{10}
%%% 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'.