% ======================================================================
% typearea.tex
% Copyright (c) Markus Kohm, 2001-2012
%
% This file is part of the LaTeX2e KOMA-Script bundle.
%
% This work may be distributed and/or modified under the conditions of
% the LaTeX Project Public License, version 1.3c of the license.
% The latest version of this license is in
%   http://www.latex-project.org/lppl.txt
% and version 1.3c or later is part of all distributions of LaTeX 
% version 2005/12/01 or later and of this work.
%
% This work has the LPPL maintenance status "author-maintained".
%
% The Current Maintainer and author of this work is Markus Kohm.
%
% This work consists of all files listed in manifest.txt.
% ----------------------------------------------------------------------
% typearea.tex
% Copyright (c) Markus Kohm, 2001-2012
%
% Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz,
% Version 1.3c, verteilt und/oder veraendert werden.
% Die neuste Version dieser Lizenz ist
%   http://www.latex-project.org/lppl.txt
% und Version 1.3c ist Teil aller Verteilungen von LaTeX
% Version 2005/12/01 oder spaeter und dieses Werks.
%
% Dieses Werk hat den LPPL-Verwaltungs-Status "author-maintained"
% (allein durch den Autor verwaltet).
%
% Der Aktuelle Verwalter und Autor dieses Werkes ist Markus Kohm.
% 
% Dieses Werk besteht aus den in manifest.txt aufgefuehrten Dateien.
% ======================================================================
%
% Chapter about typearea of the KOMA-Script guide
% Maintained by Markus Kohm
%
% ----------------------------------------------------------------------
%
% Kapitel über typearea in der KOMA-Script-Anleitung
% Verwaltet von Markus Kohm
%
% ======================================================================

\ProvidesFile{typearea.tex}[2009/01/26 KOMA-Script guide (chapter: typearea)]
\translator{Markus Kohm\and Gernot Hassenpflug}

% Date of translated german file: 2006-11-29
% Updated: 2008-01-02

\chapter{Construction of the Page Layout with \Package{typearea}}
\labelbase{typearea}

%\textsc{Note:} Following commands are still missing in this chapter:
%\Macro{KOMAoptions}, \Macro{KOMAoption}, \Macro{recalctypearea}.
%
%\textsc{Note:} Following options are still missing in this chapter:
%\OptionValue{BCOR}{current}, \OptionValue{twoside}{semi},
%\KOption{headheight}\PName{height}, \OptionValue{pagesize}{automedia}.
%
%% Done 2 Jan: sections 2.1, 2.2, 2.3
%%                      section 2.4 skipped
%% Done 3 Jan: parts of section 2.5
%%                      \OptionValue{BCOR}{current}
%%                      \OptionValue{twoside}{semi}
%%                      \OptionValue{headheight}{height}
%% Done 4 Jan: completed section 2.5
%%                      \OptionValue{areaset}
%%                      section 2.4 (common.tex)
%%                      section 2.6
%%                      \OptionValue{pagesize}{automedia}
%%                      section 2.7

Many {\LaTeX} classes, including the standard classes, present the user
with the largely fixed configuration of margins and typearea. With the
standard classes, the configuration determined is very much dependent
on the chosen font size. There do exist separate packages, such as
\Package{geometry}\IndexPackage{geometry} (see
\cite{package:geometry}), which give the user complete control, but
also full responsibility, for the settings of typearea and margins.

\KOMAScript{} takes a somewhat different approach with its
\Package{typearea} package. Here the user is given several
construction setting and automatization possibilities based on
established typography standards in order to help guide him or her in
making a good choice.

It should be noted that the \Package{typearea} package makes use of
the \Package{scrbase} package. The latter is explained in the expert
section \iffree{of this document}{of this book} in
\autoref{cha:scrbase} from \autopageref{cha:scrbase} onwards. The
majority of the rules documented there are however not directed at the
user, but rather at class- and package authors.

\section{Fundamentals of Page Layout}
\label{sec:typearea.basics}

\begin{Explain}
  If you look at a single page of a book or other printed materials,
  you will see that it consists of top, bottom, left and right
  margins, a (running) head area, the text block and a (running) foot
  area.  There is also a space between the head area and the text
  block, and between the text block and the foot area. The relations
  between these areas are called the \emph{page
    layout}.\Index[indexmain]{page layout}

%%
%% GH: sollte man schon Hinweise zum Buch hineinarbeiten? Auskommentiert?
%%  \ifx\BUCH\undefined\cite{DANTE:TK0402:MJK}\else(siehe
%%   \autoref{cha:typeareaconstruction})\fi
  The literature contains much discussion of different algorithms and
  heuristic approaches for constructing a good page layout.  Often
  mentioned is an approach which involves diagonals and their
  intersections. The result is a page where the text block proportions
  are related to the proportions of the \emph{page}.  In a
  single-sided document, the left and the right margin should have
  equal widths.  The relation of the upper margin to the lower margin
  should be 1\(:\)2. In a double-sided document\Index{double-sided}
  (e.\,g. a book) however, the complete inner margin (the margin at
  the spine) should be the same as each of the two outer margins; in
  other words, a single page contributes only half of the inner
  margin.

  In the previous paragraph, we mentioned and emphasized \emph{the
    page}. Erroneously, it is often thought that with the page format
  the page is also meant the paper format.\Index[indexmain]{paper
    format} However, if you look at a bound document, it is obvious
  that part of the paper vanishes in the
  binding\Index[indexmain]{binding} and is no longer part of the
  visible page. For the page layout, it is not the format of the paper
  which is important, it is the impression of the visible page to the
  reader. Therefore, it is clear that the calculation of the page
  layout must account for the ``lost'' paper in the binding and add
  this amount to the width of the inner margin. This is called the
  \emph{binding correction}.\Index[indexmain]{binding correction} The
  binding correction is therefore calculated as part of the
  \emph{gutter}\Index[indexmain]{gutter}, not however of the visible
  inner margin.

  The binding correction depends on the process of actually
  producing the document and thus cannot be calculated in general.
  Every production process needs its own parameter. In professional
  binding, this parameter is not too important since the printing is
  done on oversized paper which is then cropped to the right size.
  The cropping is done in a way so that the relations for the
  visible double-sided page are as explained above.

  Now we know about the relations of the individual parts of a page.
  However, we do not yet know about the width and the height of the
  text block. Once we know one of these values, we can calculate
  all the other values from the paper format and the page format or
  the binding correction.
  \begin{align*}
    \Var{textblock~height} \Index{textblock height} : \Var{textblock~width} &=
    \Var{page~height}\Index{page} : \Var{page~width}\\
    \Var{top~margin}\Index{margin} : \Var{foot~margin} &=
      \text{1} : \text{2} \\
%
    \Var{left~margin} : \Var{right~margin} &=  \text{1} : \text{1} \\
%
    \Var{half~inner~margin} : \Var{outer~margin} &= \text{1} : \text{2} \\
%
   \Var{page~width} &= 
      \Var{paper~width}\Index{paper} - 
      \Var{binding~correction}\Index{binding correction}\\
%
    \Var{top~margin} + \Var{bottom~margin} &=
    \Var{page~height} - \Var{textblock~height} \\
%
    \Var{left~margin} + \Var{right~margin} &=
    \Var{page~width} - \Var{textblock~width} \\
%
    \Var{half~inner~margin} + \Var{outer~margin} &=
    \Var{page~width} - \Var{textblock~width} \\
%
    \Var{half~inner~margin} + \Var{binding~correction} &=
    \Var{gutter}\Index{gutter}
  \end{align*}
  \Index[indexmain]{margin}%
  The values \Var{left~margin} and \Var{right~margin} only exist in a
  single-sided document while \Var{half~inner~margin} and
  \Var{outer~margin} only exist in a double-sided document.  In these
  equations, we work with \Var{half~inner~margin} since the full inner
  margin belongs to a double-page. Thus, one page has only half of the
  inner margin, \Var{half~inner~margin}.

  The question of the width of the textblock is also discussed in
  the literature. The optimum width depends on several factors:
  \begin{itemize}
  \item size, width, type of the font used
  \item line spacing
  \item word length
  \item available room
  \end{itemize}
  The importance of the font becomes clear once you think about the
  meaning of serifs. Serifs\Index[indexmain]{serifs} are fine strokes
  finishing off the lines of the letters. Letters whose main strokes
  run orthogonal to the text line disturb the flow rather than keeping
  and leading the eye along the line. Those letters then have serifs
  at the ends of the vertical strokes so that the horizontal serifs
  can help lead the eye horizontally. In addition, they help the eye
  to find the beginning of the next line more quickly. Thus, the line
  length for a serif font can be slightly longer than for a sans serif
  font.

  With leading\Index[indexmain]{leading} is meant the vertical
  distance between individual lines of text. In {\LaTeX}, the leading
  is set at about 20\% of the font size. With commands like
  \Macro{linespread}\IndexCmd{linespread} or, better, packages like
  \Package{setspace}\IndexPackage{setspace} (see
  \cite{package:setspace}), the leading can be changed. A wider
  leading helps the eye to follow the line. A very wide leading, on
  the other hand, disturbs reading because the eye has to move a wide
  distance between lines. Also, the reader becomes uncomfortable
  because of the visible stripe effect. The uniform gray value of the
  page is thereby spoiled. Still, with a wider leading, the lines can
  be longer.

  The literature gives different values for good line
  lengths\Index[indexmain]{line length}, depending on the author. To
  some extent, this is related to the native language of the
  author. Since the eye jumps from word to word, short words make this
  task easier. Considering all languages and fonts, a line length of
  60 to 70 characters, including spaces and punctuation, forms a
  usable compromise. This requires well-chosen leading, but {\LaTeX}'s
  default is usually good enough. Longer line lengths should only be
  considered for highly-developed readers who spend several hours
  daily reading. However, even for such, line lengths greater than 80
  characters are unsuitable. In any case, the leading must be
  appropriately chosen. An extra 5\% to 10\% are recommended as a good
  rule of thumb. With fonts such as Palatino, which require some 5\%
  more leading even at normal line lengths, even more can be
  required.

  Before looking at the actual construction of the page layout, there
  are just some minor things left to know. {\LaTeX} does not start the
  first line in the text block of a page at the upper edge of the text
  block, but sets the baseline at a defined distance from the top of
  the text block. Also, {\LaTeX} knows the commands
  \Macro{raggedbottom}\IndexCmd{raggedbottom} and
  \Macro{flushbottom}\IndexCmd{flushbottom}. \Macro{raggedbottom}
  specifies that the last line of a page should be positioned wherever
  it was calculated. This means that the position of this line can be
  different on each page, up to the height of one line\,---\,in
  combination of the end of the page with titles, figures, tables or
  similar, even more. In double-sided documents this is usually
  undesirable. \Macro{flushbottom} makes sure that the last line is
  always at the lower edge of the text block. To achieve this,
  {\LaTeX} sometimes needs to stretch vertical glue more than
  allowed. Paragraph skip is such a stretchable, vertical glue, even
  when set to zero.  In order to not stretch the paragraph skip on
  normal pages where it is the only stretchable glue, the height of
  the text block should be set to a multiple of the height of the text
  line, including the distance from the upper edge of the text block
  to the first line.

  This concludes the introduction to page layout as handled by
  {\KOMAScript}. Now, we can begin with the actual construction.
\end{Explain}


\section{Page Layout Construction by Dividing}
\label{sec:typearea.divConstruction}

\begin{Explain}
  The easiest way to make sure that the text area has the same ratios
  as the page is as follows: first, one subtracts the part \Var{BCOR},
  required for the binding correction\Index{binding correction}, from
  the inner edge of the paper, and divides the rest of the page
  vertically into \Var{DIV} rows of equal height; next, one divides
  the page horizontally into the same number (\Var{DIV}) of columns;
  then, one takes the uppermost row as the upper margin and the two
  lowermost rows as the lower margin (if one is printing double-sided,
  one must similarly take the innermost column as the inner margin and
  the two outermost columns as the outer margin); then, one adds the
  binding correction \Var{BCOR} to the inner margin. What now remains
  of the page is the text area.\Index{text area} The width and the
  height of the text area and margins result automatically from the
  number of rows and columns \Var{DIV}. Since the margins always need
  three stripes, \Var{DIV} must be necessarily greater than three. In
  order that the text area occupy at least twice as much space as the
  margins, \Var{DIV} should really be equal to or greater than 9. With
  this value, the construction is also known as the \emph{classical
    division factor of 9} (see \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}}
      % the paper
      \put(0,0){\thicklines\framebox(420,297){}}
%      \put(210,0){\thicklines\framebox(210,297){}}
      % the page layout
      \put(44,66){\color{komamed}\rule{132\unitlength}{198\unitlength}}
      \put(244,66){\color{komamed}\rule{132\unitlength}{198\unitlength}}
      % helper lines
      \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}}
      % annotations
      \put(198,0){\color{white}\makebox(24,297)[c]{%
          \rotatebox[origin=c]{-90}{binding correction}}}
      \put(44,66){\color{white}\makebox(132,198)[c]{page layout left}}
      \put(244,66){\color{white}\makebox(132,198)[c]{page layout right}}
      % box numbers
      \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{Double-sided layout with the box construction of the classical division factor of 9, after subtraction of a binding correction}
    \label{fig:typearea.nineparts}
  \end{figure}

  In {\KOMAScript}, this kind of construction is implemented in the
  \Package{typearea} package, where the bottom margin may drop any
  fractions of a line in order to conform with the minor condition for
  the text area height mentioned in the previous paragraph, and
  thereby to minimize the mentioned problem with
  \Macro{flushbottom}. For A4 paper, \Var{DIV} is predefined according
  to the font size (see \autoref{tab:typearea.div},
  \autopageref{tab:typearea.div}). If there is no binding correction
  (\(\Var{BCOR} = 0\Unit{pt}\)), the results roughly match the values
  of \autoref{tab:typearea.typearea},
  \autopageref{tab:typearea.typearea}.

  In addition to the predefined values, one can specify \Var{BCOR} and
  \Var{DIV} as options when loading the package (see
  \autoref{sec:typearea.options}, from
  \autopageref{sec:typearea.typearea} onwards). There is also a
  command to explicitly calculate the type area by providing these
  values as parameters (also see \autoref{sec:typearea.options},
  \autopageref{desc:typearea.cmd.typearea}).

  The \Package{typearea} package can automatically determine the
  optimal value of \Var{DIV} for the font and leading used.
  Again, see \autoref{sec:typearea.options},
  \autopageref{desc:typearea.option.DIV.calc}.
\end{Explain}


\section{Page Layout Construction by Drawing a Circle}
\label{sec:typearea.circleConstruction}

\begin{Explain}
  In addition to the page layout construction\Index{page layout}
  method previously described, a somewhat more classical method can be
  found in the literature. The aim of this method is not only to
  obtain identical ratios in the page proportions, but it is
  considered optimal when the height of the text block is the same as
  the width of the page. The exact method is described in
  \cite{JTsch87}.

  A disadvantage of this late Middle Age method is that the width of
  the text area is no longer dependent on the font. Thus, one doesn't
  choose the text area to match the font, but the author or typesetter
  has to choose the font according to the text area. This can be
  considered a ``must''.

  In the \Package{typearea} package this construction is changed
  slightly. By using a special (normally meaningless) \Var{DIV} value
  or a special package option, a \Var{DIV} value is chosen to match
  the perfect values of the late Middle Age method as closely as
  possible. See also \autoref{sec:typearea.options},
  \autopageref{desc:typearea.option.DIV.calc}.
\end{Explain}

\LoadCommon{0}

\section{Options and Macros to Influence the Page Layout}
\label{sec:typearea.typearea}

The package \Package{typearea} offers two different user interfaces to
influence type area construction. The more important method is to load
the package with options. For information on how to load packages and
to give package options, please refer to the {\LaTeX} literature,
e.\,g.  \cite{lshort} and \cite{latex:usrguide}, or the examples given
here.  Since the \Package{typearea} package is loaded automatically
when using the {\KOMAScript} main classes, the package options can be
given as class options (see \autoref{sec:maincls.options}).

In this section the \Class{protocol} class will be used, not an
existing {\KOMAScript} class but a hypothetical one. This\iffree{
  documentation}{ book} assumes that ideally there exists a class for
every specific task.

\BeginIndex{Option}{BCOR~=\PName{value}}%
\begin{Declaration}
  \KOption{BCOR}\PName{correction}
\end{Declaration}%
With the aid of the option
\KOption{BCOR}\PName{correction}\ChangedAt{v3.00}{\Package{typearea}}
one may specify the absolute value of the binding
correction\Index{binding correction}, i.\,e., the width of the area
which will be lost from the paper width in the binding process. This
value is then automatically taken into account in the page layout
construction and in the final output is added to the inner (or the
left) margin. For the \PName{correction} specification any measurement
unit understood by \TeX{} is valid.

\begin{Example}
  Assume one is creating a financial report, which should be printed
  out single-sided on A4 paper, and finally kept in a clamp
  folder. The clamp will hide 7.5\Unit{mm}. The stack of pages is very
  thin, thus through paging at most another 0.75\Unit{mm} will be
  lost. Therefore, one may write:
\begin{lstcode}
  \documentclass[a4paper]{report}
  \usepackage[BCOR=8.25mm]{typearea}
\end{lstcode}
  or
\begin{lstcode}
  \documentclass[a4paper,BCOR=8.25mm]{report}
  \usepackage{typearea}
\end{lstcode}
  when using \Option{BCOR} as a global option.

  When using a {\KOMAScript} class, the explicit loading of the
  \Package{typearea} package can be omitted:
  \begin{lstcode}
  \documentclass[BCOR=8.25mm]{scrreprt}
  \end{lstcode}
  The option \Option{a4paper} could be omittied with \Class{scrreprt},
  since this is a predefined setting for all {\KOMAScript} classes.

  If the option is only later set to a new value, one may then use,
  for example, the following:
  \begin{lstcode}
  \documentclass{scrreprt}
  \KOMAoptions{BCOR=8.25mm}
  \end{lstcode}
  Thus, at the loading of the \Class{scrreprt} class standard settings
  will be used. When changing the setting with the use of the command
  \Macro{KOMAoptions} or \Macro{KOMAoption} a new page layout with new
  margins will automatically be calculated.
\end{Example}

Please note that when using this option with one of the {\KOMAScript}
classes as in the example above, it must be used either as a class
option, or passed via \Macro{KOMAoptions} or \Macro{KOMAoption} after
loading the class. The \Package{typearea} package should neither be
loaded explicitly with \Macro{usepackage} when using a {\KOMAScript}
class, nor should the option be given as an optional argument
thereto. If the option is changed via \Macro{KOMAoptions} or
\Macro{KOMAoption} after loading the package, the textblock and
margins are automatically recalculated anew.%
%
\EndIndex{Option}{BCOR~=\PName{value}}

\BeginIndex{Option}{DIV~=\PName{value}}%
\begin{Declaration}
  \KOption{DIV}\PName{Factor}
\end{Declaration}%
With the aid of the option
\KOption{DIV}\PName{Factor}\ChangedAt{v3.00}{\Package{typearea}} the
number of stripes into which the page is divided horizontally and
vertically during the page layout construction is set. The exact
construction method is found in
\autoref{sec:typearea.divConstruction}. Of importance is that the
larger the \PName{Factor}, the larger the text block and the smaller
the margins. Any integer value greater than 4 is valid for
\PName{Factor}. Please note that large values can lead to
unfulfillment of various minor conditions in the type-area, depending
on further options chosen. Thus, in an extreme case, the header may
fall outside of the page. Users applying the option
\KOption{DIV}\PName{Factor} are themselves responsible for fulfillmen
of the marginal conditions and setting of a typographically aesthetic
line length.

In \autoref{tab:typearea.typearea} are found the type-area sizes for
several \Var{DIV} factors for A4 page without binding correction. Here
the minor conditions dependent on font size are not considered.

\begin{table}
  \centering
  \caption{Type-area dimensions dependent on \Var{DIV} for A4}
  \begin{tabular}{ccccc}
    \toprule
    & 
    \multicolumn{2}{c}{Type-area} & \multicolumn{2}{c}{Margins}\\
    %\raisebox{1.5ex}[0pt]{
      \Var{DIV}
    %} 
    & 
    width [mm] & height [mm] & top [mm] & inner [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}%
\begin{Example}
  Assume one wants to write a meeting protocol, using the
  \Class{protocol} class. The document should be double-sided. In the
  company 12\Unit{pt} Bookman font is used. This font, which belongs
  to the standard PostScript fonts, is activated in {\LaTeX} with the
  command \verb|\usepackage{bookman}|.  The Bookman font is a very
  wide font, meaning that the individual characters have a large width
  relative to their height. Therefore, the predefined value for
  \Var{DIV} in \Package{typearea} is insufficient. Instead of the
  value of 12 it appears after thorough study of this entire chapter
  that a value of 15 should be most suitable.  The protocol will not
  be bound but punched and kept in a folder. Thus, no binding
  correction is necessary.  One may then write:
  \begin{lstcode}
    \documentclass[a4paper,twoside]{protocol}
    \usepackage{bookman}
    \usepackage[DIV=15]{typearea}
  \end{lstcode}
  On completion, it is decided that the protocols will from now on be
  collected and bound quarterly into book format. The binding is to be
  a simple glue binding, because it is only done to conform with
  ISO\,9000 and nobody is actually going to read them. For the binding
  including space lost in turning the pages, an average of 12\Unit{mm}
  is required. Thus, one may change the options of the
  \Package{typearea} package accordingly, and use the class for
  protocols conforming to ISO\,9000 regulations:
  \begin{lstcode}
  \documentclass[a4paper,twoside]{iso9000p}
  \usepackage{bookman}
  \usepackage[DIV=15,BCOR=12mm]{typearea}
\end{lstcode}
  Of course, it is equally possible to use here a {\KOMAScript} class:
\begin{lstcode}
  \documentclass[twoside,DIV=15,BCOR=12mm]{scrartcl}
  \usepackage{bookman}
\end{lstcode}
The \Option{a4paper} option can be left out when using the
\Class{scrartcl} class, as it is predefined in all {\KOMAScript}
classes.
\end{Example}

Please note that when using the \Option{DIV} option with one of the
{\KOMAScript} classes as in the example above, it must be used either
as a class option, or passed via \Macro{KOMAoptions} or
\Macro{KOMAoption} after loading the class. The \Package{typearea}
package should neither be loaded explicitly with \Macro{usepackage}
when using a {\KOMAScript} class, nor should the option be given as an
optional argument thereto. If the option is changed via
\Macro{KOMAoptions} or \Macro{KOMAoption} after loading the package,
the textblock and margins are automatically recalculated anew.%

\BeginIndex{Option}{DIV~=classic}%
\BeginIndex{Option}{DIV~=calc}%
\begin{Declaration}
  \OptionValue{DIV}{calc}\\
  \OptionValue{DIV}{classic}
\end{Declaration}%
As\ChangedAt{v3.00}{\Package{typearea}} already mentioned in
\autoref{sec:typearea.divConstruction}, for A4 paper there are fixed
predefined settings for the \Var{DIV} value. These can be found in
\autoref{tab:typearea.div}. If a different paper format is chosen,
then the \Package{typearea} package independently calculates an
appropriate \Var{DIV} value.  Of course this same calculation can be
applied also to A4. To obtain this result, one simply uses the
\OptionValue{DIV}{calc} option in place of the
\KOption{DIV}\PName{Factor} option. This option can just as easily be
explicity given for other paper formats. If one desires an automatic
calculation, this also makes good sense, since the possibility exists
to configure different predefined settings in a configuration file
(see \autoref{sec:typearea-experts.cfg}). An explicit passing of the
\OptionValue{DIV}{calc} option then overwrites such configuration
settings.

\begin{table}
  \centering
  \caption{\label{tab:typearea.div}Predefined settings of \PName{DIV} for A4}
  \begin{tabular}{lccc}
    \toprule
    base font size: & 10\Unit{pt} & 11\Unit{pt} & 12\Unit{pt} \\
    \Var{DIV}:           &   8  &  10  &  12  \\
    \bottomrule
  \end{tabular}
\end{table}

The classical page layout construction, the Middle Age book design
canon, mentioned in \autoref{sec:typearea.circleConstruction}, is
similarly selectable. Instead of the \KOption{DIV}\PName{Faktor} or
\OptionValue{DIV}{calc} option, one may use the
\OptionValue{DIV}{classic} option. A \Var{DIV} value closest to the
Middle Age book design canon is then chosen.

\begin{Example}
  In the example using the Bookman font with the
  \KOption{DIV}\PName{Factor} option, exactly that problem of choosing
  a more appropriate \Var{DIV} value for the font arose. As a
  variation on that example, one could simply leave the choice of such
  a value to the \Package{typearea} package:
\begin{lstcode}
  \documentclass[a4paper,twoside]{protocol}
  \usepackage{bookman}
  \usepackage[DIV=calc]{typearea}
\end{lstcode}
\end{Example}

Please note that when using this option with one of the {\KOMAScript}
classes as in the example above, it must be used either as a class
option, or passed via \Macro{KOMAoptions} or \Macro{KOMAoption} after
loading the class. The \Package{typearea} package should neither be
loaded explicitly with \Macro{usepackage} when using a {\KOMAScript}
class, nor should the option be given as an optional argument
thereto. If the option is changed via \Macro{KOMAoptions} or
\Macro{KOMAoption} after loading the package, the textblock and
margins are automatically recalculated anew.%
%
\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}%
Readers\ChangedAt{v3.00}{\Package{typearea}} who have followed the
examples with acuity actually already know how to calculate a
\Var{DIV} value dependent on the chosen font, when a {\KOMAScript}
class is used together with a font package.

\begin{Explain}
  The problem is that the {\KOMAScript} class already loads the
  \Package{typearea} package itself. Thus, it is not possible to pass
  options as optional arguments to \Macro{usepackage}. It would also
  be pointless to pass the \OptionValue{DIV}{calc} option as an
  optional argument to \Macro{documentclass}. This option would be
  evaluated immediately on loading the \Package{typearea} package and
  as a result the text block and margin would be chosen according to
  the {\LaTeX} standard font and not for the later loaded
  font. However, it is quite possible to recalculate the text block
  and margins anew after loading the font, with the aid of
  \Macro{KOMAoptions}\PParameter{DIV=calc} or
  \Macro{KOMAoption}\PParameter{DIV}\PParameter{calc}. Via
  \PValue{calc} an appropriate \Var{DIV} value for an good line length
  is then chosen.

  As it is often more practical to set the \Option{DIV} option not
  after loading the font, but at a more visible point, such as when
  loading the class, the \Package{typearea} package offers two further
  symbolic valies for this option.
\end{Explain}

With \KOption{DIV}\PName{current}\ChangedAt{v3.00}{\Package{typearea}}
a renewed calculation of text block and margin is requested, in which
the currently-set \Var{DIV} will be used. This is less of interest for
renewed type-area calculations after loading a different font; it is
rather more useful for determining, for example, after changing the
leading, while keeping \Var{DIV} the same, that the marginal condition
is fulfilled that \Length{textheight} less
\Length{topskip} is a multiple of \Length{baselineskip}.

With \KOption{DIV}\PName{last}\ChangedAt{v3.00}{\Package{typearea}} a
renewed calculation of text block and margin is requested, where
exactly the same setting is used as in the last calculation.

\begin{Example}
  Let us take up the previous example again, in which a good line
  length is required for a type-area using the Bookman font. At the
  same time, a {\KOMAScript} class is to be used. This is easily
  possible using the symbolic value \PValue{last} and the command
  \Macro{KOMAoptions}:
\begin{lstcode}
  \documentclass[BCOR=12mm,DIV=calc,twoside]{scrartcl}
  \usepackage{bookman}
  \KOMAoptions{DIV=last}
\end{lstcode}
If it should later be decided that a different \Var{DIV} value is
required, then only the setting of the optional argument to
\Macro{documentclass} need be changed.
\end{Example}

A summary of all possible symbolic values for the \Option{DIV} option
can be founf in \autoref{tab:symbolicDIV}. At this point it is noted
that the use of the \Package{fontenc}\IndexPackage{fontenc} package
can also lead to \LaTeX{} loading a different font.

\begin{table}
  \caption[{Symbolic values for the \Option{DIV} option and the
    \PName{DIV} argument to \Macro{typearea}}]{Possible symbolic values for the \Option{DIV} option or the \PName{DIV} argument to
    \Macro{typearea}\OParameter{BCOR}\Parameter{DIV}}
  \label{tab:symbolicDIV}
  \begin{desctabular}
    \pventry{areaset}{Recalculate page
      layout.\IndexOption{DIV~=areaset}}%
    \pventry{calc}{Recalculate type-area including choice of
      appropriate \Var{DIV} value.\IndexOption{DIV~=calc}}%
    \pventry{classic}{Recalculate type-area using Middle Age book
      design canon (circle-based
      calculation).\IndexOption{DIV~=classic}}%
    \pventry{current}{Recalculate type-area using current \Var{DIV}
      value.\IndexOption{DIV~=current}}%
    \pventry{default}{Recalculate type-area using the standard value
      for the current page format and current font size. If no
      standard value exists, \PValue{calc} is
      used.\IndexOption{DIV~=default}}%
    \pventry{last}{Recalculate type-area using the same \PName{DIV}
      argument as was used in the last call.\IndexOption{DIV~=last}}%
  \end{desctabular}
\end{table}

Often the renewed type-area calculation is required in combination
with a change in the line spacing
(\emph{leading})\Index{leading}. Since the type-area should be
calculated such that an integer number of lines fit in the text block,
a change in the leading normally requires a recalculation of the page
layout.
 
\begin{Example}
  For a thesis document, a font of size 10\Unit{pt} and a spacing of
  1.5 lines is required. By default, {\LaTeX} sets the leading for
  10\Unit{pt} at 2\Unit{pt}, in other words 1.2 lines. Therefore, an
  additional stretch factor of 1.25 is needed. Additionally, a binding
  correction of \(12\Unit{mm}\) is stipulated. Then the solution could be
  written as follows:
\begin{lstcode}
  \documentclass[10pt,twoside,BCOR=12mm,DIV=calc]{scrreprt}
  \linespread{1.25}
  \KOMAoptions{DIV=last}
\end{lstcode}\IndexCmd{linespread}
Since \Package{typearea} always executes the command
\Macro{normalsize} itself upon calculation of a new type-area, it is
not necessary to activate the chosen leading with \Macro{selectfont}
after \Macro{linespread}, sicne this will be used already in the
recalculation.

When using the \Package{setspace} package (see
\cite{package:setspace}), the same example would appear as follows:
\begin{lstcode}
  \documentclass[10pt,twoside,BCOR=12mm,DIV=calc]{scrreprt}
  \usepackage{setspace}
  \onehalfspacing
  \KOMAoptions{DIV=last}
\end{lstcode}
As can be seen, with the use of the \Package{setspace} package one no
longer neesds to know the correct stretch value.

At this point it should be noted that the line spacing for the title
page should be reset to the normal value.
\iffalse% Umbruchkorrektur
  A complete example would be:
\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}
  See further also the notes in \autoref{sec:typearea.tips}.
\end{Example}

Please note that when using this option with one of the {\KOMAScript}
classes as in the example above, it must be used either as a class
option, or passed via \Macro{KOMAoptions} or \Macro{KOMAoption} after
loading the class. The \Package{typearea} package should neither be
loaded explicitly with \Macro{usepackage} when using a {\KOMAScript}
class, nor should the option be given as an optional argument
thereto. If the option is changed via \Macro{KOMAoptions} or
\Macro{KOMAoption} after loading the package, the textblock and
margins are automatically recalculated anew.%
%
\EndIndex{Option}{DIV~=current}%
\EndIndex{Option}{DIV~=last}%
\EndIndex{Option}{DIV~=\PName{value}}

\BeginIndex{Cmd}{typearea}%
\BeginIndex{Cmd}{recalctypearea}%
\begin{Declaration}
  \Macro{typearea}\OParameter{BCOR}\Parameter{DIV}\\
  \Macro{recalctypearea}
\end{Declaration}%
\begin{Explain}
  If the \Option{DIV} option or the \Option{BCOR} option is set after
  loading of the \Package{typearea} package, then internally the
  command \Macro{typearea} is called. When setting the \Option{DIV}
  option the symbolic value \PValue{current} is used internally for
  \PName{BCOR}, which for reasons of completeness is found also in
  \autoref{tab:symbolicBCOR}. When setting the \Option{BCOR} option,
  the symbolic value \PValue{last} is used internally for
  \PName{DIV}. If it is instead desired that the text block and
  margins should be recalculated using the symbolic value
  \PValue{current} for \PName{DIV}, then
  \Macro{typearea}\PParameter{current}\PParameter{current} can be used
  directly.
\end{Explain}

\begin{table}
  \caption[{Symoblic \PName{BCOR} arguments for
    \Macro{typearea}}]{Possible symbolic \PName{BCOR} arguments for
    \Macro{typearea}\OParameter{BCOR}\Parameter{DIV}}
  \label{tab:symbolicBCOR}
  \begin{desctabular}
    \pventry{current}{Recalculate type-area with the currently valid
      \Var{BCOR} value.\IndexOption{BCOR~=current}}
  \end{desctabular}
\end{table}

If both \PName{BCOR} and \PName{DIV} need changing, then it is
recommended to use \Macro{typearea}, since then the text block and
margins are recalculated only once. With
\Macro{KOMAoptions}\PParameter{\KOption{DIV}\PName{DIV},%
  \KOption{BCOR}\PName{BCOR}} the text block and margins are
recalculated once for the change to \PName{DIV} and again for the
change to \PName{BCOR}.

\begin{Explain}
  The command \Macro{typearea} is currently defined so as to make it
  possible to change the type-area anywhere within a
  document. Several assumptions about the structure of the {\LaTeX}
  kernel are however made and internal definitions and sizes of the
  kernel changed. There is a definite possibility, but no guarantee,
  that this will continue to function in future versions of
  \LaTeXe{}. When used within the document, a page break will result.
\end{Explain}

Since \Macro{typearea}\PParameter{current}\PParameter{last} or
\Macro{KOMAoptions}\PParameter{DIV=last} are often needed for
recalculation of the type-area, there exists specially the
abbreviated command
\Macro{recalctypearea}\ChangedAt{v3.00}{\Package{typearea}}.

\begin{Example}
  If one finds the notation
  \begin{lstcode}
  \KOMAoptions{DIV=last}
  \end{lstcode}
  or
  \begin{lstcode}
  \typearea[current]{last}
  \end{lstcode}
  for the recalculation of text block and margins too complicated for
  reasons of the many special characters, then one may use more simply
  the following.
  \begin{lstcode}
  \recalctypearea
  \end{lstcode}
\end{Example}%
\EndIndex{Cmd}{recalctypearea}%
\EndIndex{Cmd}{typearea}

\BeginIndex{Option}{twoside~=\PName{switch}}%
\BeginIndex{Option}{twoside~=semi}%
\begin{Declaration}
  \KOption{twoside}\PName{switch}\\
  \OptionValue{twoside}{semi}
\end{Declaration}%
As already explained in \autoref{sec:typearea.basics}, the margin
configuration is dependent on whether the document is to be typeset
single- or double-sided. For single-sided typesetting, the left and
right margins are equally wide, whereas for double-sided printing the
inner margin of one page is only half as wide as the corresponding
outer margin. In order to implement this distinction, the
\Package{typearea} package must be given the \Option{twoside} option,
if the document is to be typeset double-sided. Being a \PName{switch},
any of the standard values for simple switches in
\autoref{tab:truefalseswitch} are valid. If the option is passed
without a value, the value \PValue{true} is assumed, so double-sided
typesetting is carried out. Deactivation of the option leads to
single-sided typesetting.

\begin{table}
  \begin{minipage}{\textwidth}
  \centering
  \caption{Standard values for simple switches in \KOMAScript}
  \begin{tabular}{ll}
    \toprule
    Value & Description \\
    \midrule
    \PValue{true}\footnote{This value will be used also, if you use the option
      without assigning any value.} & activates the option \\
    \PValue{on}   & activates the option \\
    \PValue{yes}   & activates the option \\
    \PValue{false}& deactivates the option \\
    \PValue{off}  & deactivates the option \\
    \PValue{no}  & deactivates the option \\
    \bottomrule
  \end{tabular}
  \label{tab:truefalseswitch}
  \end{minipage}
\end{table}

Apart from the values in \autoref{tab:truefalseswitch} the value
\PValue{semi}\ChangedAt{v3.00}{\Package{typearea}} can also be
given. The value \PValue{semi} results in a double-sided typesetting
with single-sided margins and single-sided, i.\ e., not alternating,
margin notes.

The option can also be passed as class option in
\Macro{documentclass}, as package option to \Macro{usepackage}, or
even after loading of the \Package{typearea} package with the use of
per \Macro{KOMAoptions} or \Macro{KOMAoption}. Use of the option after
loading the \Package{typearea} package results automatically to a
recalculation of the type-area using \Macro{recalctypearea} (see
\autopageref{desc:typearea.cmd.recalctypearea}). If double-sided
typesetting was active before the option was set, then before the
recalculation a page break is made to the next odd page.%
%
\EndIndex{Option}{twoside~=semi}%
\EndIndex{Option}{twoside~=\PName{switch}}

\BeginIndex{Option}{twocolumn~=\PName{switch}}%
\begin{Declaration}
  \KOption{twocolumn}\PName{switch}
\end{Declaration}
For the calculation of a good type-area with the help of
\OptionValue{DIV}{calc} it is useful to know in advance if the
document is to be typeset one-column or two-column. Since the
observations about line length in \autoref{sec:typearea.basics} then
apply to each column, the width of a type-area in a two-column
document can be up to double that in a one-column document.

To implement this difference, the \Package{typearea} package must be
told via the \Option{twocolumn} option whether the document is to be
two-column. Since this is a \PName{switch}, any of the standard values
for simple switches from \autoref{tab:truefalseswitch} is valid. If
the option is passed without a value, the value \PValue{true} is
assumed, i.\,e., two-column typesetting. Deactivation of the option
results in one-column typesetting.

The option can also be passed as class option in
\Macro{documentclass}, as package option to \Macro{usepackage}, or
even after loading of the \Package{typearea} package with the use of
per \Macro{KOMAoptions} or \Macro{KOMAoption}. Use of the option after
loading the \Package{typearea} package results automatically to a
recalculation of the type-area using \Macro{recalctypearea} (see
\autopageref{desc:typearea.cmd.recalctypearea}).%
%
\EndIndex{Option}{twocolumn~=\PName{switch}}


\BeginIndex{Option}{headinclude~=\PName{switch}}%
\BeginIndex{Option}{footinclude~=\PName{switch}}%
\begin{Declaration}
  \KOption{headinclude}\PName{switch}\\
  \KOption{footinclude}\PName{switch}
\end{Declaration}%
\begin{Explain}%
  So far we have discussed how the type-area is
  calculated\Index{type-area} and what the relationship of the
  margins\Index{margins} to one another and between margins and text
  block. However, one important question has not been answered: What
  constitutes the margins?

  At first glance the question appears trivial: Margins are those
  parts on the right, left, top and bottom which remain empty. But
  this is only half the story. Margins are not always empty. There may
  be margin notes, for example (see \Macro{marginpar} command in
  \cite{lshort} or \autoref{sec:maincls.marginNotes}).

  One could also ask, whether headers\Index{page header} and
  footers\Index{page footer} belong to the upper and lower margins or
  to the text. This can not be answered unambiguously. Of course an
  empty footer or header belong to the margins, since they can not be
  distinguished from the rest of the margin. A header or footer, that
  contains only a page
  number\Index[indexmain]{pagination}\footnote{Pagination refers to
    the indication of the page number.}, will optically appear more
  like a margin. For the optical appearance it is not important
  whether headers or footers are easily recognized as such during
  reading.  Important is only, how a well filled page appears when
  viewed \emph{out of focus}. One could use the glasses of one's
  far-sighted grand parents, or, lacking those, adjust one's vision to
  infinity and look at the page with one eye only. Those wearing
  spectacles will find this much easier, of course.  If the footer
  contains not only the page number, but other material like a
  copyright notice, it will optically appear more like a part of the
  text body.  This needs to be taken into account when calculating
  text layout.

  For the header this is even more complicated. The header frequently
  contains running headings \Index[indexmain]{running
    headings}\footnote{Running headings refer to the repetition of a
    title in titling font, which is more often typeset in the page
    header, less often in the page footer.}.  In case of running
  headings with long chapter and section titles the header lines will
  be very long and appear to be part of the text body.  This effect
  becomes even more significant when the header contains not only the
  chapter or section title but also the page number. With material on
  the right and left side, the header will no longer appear as an
  empty margin. It is more difficult if the pagination is in the
  footer, and the length of the titles varies, so that the header may
  appear as a margin on one page and as text on another.  However,
  these pages should not be treated differently under any
  circumstances, as this would lead to vertically jumping headers. In
  this case it is probably best to count the header as part of the
  text.

  The decision is easy when text and header or footer are separated
  from the text body by a line. This will give a ``closed'' appearance
  and header or footer become part of the text body.  Remember: It is
  irrelevant that the line improves the optical separation of text and
  header or footer, important is only the appearance when viewed out
  of focus.
\end{Explain}

The \Package{typearea} package can not make the decision whether or
not to count headers and footers as part of the text body or the
margin. Options \Option{headinclude} and \Option{footinclude} cause
the header or footer to be counted as part of the text.  These
options, being a \PName{switch}\ChangedAt{v3.00}{\Package{typearea}},
understand the standard values for simple switches in
\autoref{tab:truefalseswitch}. One may use the options without
specifying a value, in which case the value \PValue{true} is used for
the \PName{switch}, i.\,e., the header or footer is counted as part of
the text.

Readers who are unsure about the the correct setting should re-read
the above explanations. Default is usually
\OptionValue{headinclude}{false} and \OptionValue{footinclude}{false},
but this can change depending on {\KOMAScript} class and {\KOMAScript}
packages used (see \autoref{sec:maincls.options} and
\autoref{cha:scrpage}).

Please note that when using these options with one of the
{\KOMAScript} classes as in the example above, they must be used
either as a class option, or passed via \Macro{KOMAoptions} or
\Macro{KOMAoption} after loading the class. Changing of these options
after loading the \Package{typearea} package does not result in an
automatic recalculation of the type-area. Instead, the changes only
take effect at the next recalculation of the type-area. For
recalculation of the type-area, refer to the \Option{DIV} option with
the values \PValue{last} or \PValue{current} (see
\autopageref{desc:typearea.option.DIV.last}) or the
\Macro{recalctypearea} command (see
\autopageref{desc:typearea.cmd.recalctypearea}).%
%
\EndIndex{Option}{headinclude~=\PName{switch}}%
\EndIndex{Option}{footinclude~=\PName{switch}}%


\BeginIndex{Option}{mpinclude~=\PName{switch}}%
\begin{Declaration}
  \KOption{mpinclude}\PName{switch}
\end{Declaration}
Besides\ChangedAt{v2.8q}{\Class{scrbook}\and \Class{scrreprt}\and
  \Class{scrartcl}} documents where the head and foot is part of the
text area, there are also documents where the margin-note area must be
counted to the text body as well.  The option \Option{mpinclude} does
exactly this.  The option, as a
\PName{switch}\ChangedAt{v3.00}{\Package{typearea}}, understands the
standard values for simple switches in
\autoref{tab:truefalseswitch}. One may also pass this option without
specifying a value, in which case the value \PValue{true} for
\PName{switch} is assumed.

The effect of \OptionValue{mpinclude}{true} is that one width-unit of
the text body is taken for the margin-note area.  Using option
\OptionValue{mpinclude}{false}, the default setting, then the normal
margin is used for the margin-note area.  The width of that area is
one or one and a half width-unit, depending on whether one-sided or
double-sided page layout has been chosen.  The option
\Option{mpinclude}{true} is mainly for experts and so not recommended.
  
\begin{Explain}
  In the cases where the option \Option{mpinclude} is used often a
  wider margin-note area is required.  In many cases not the whole
  margin-note width should be part of the text area, for example if
  the margin is used for quotations.  Such quotations are typeset as
  ragged text with the flushed side where the text body is.  Since
  ragged text gives no homogeneous optical impression the long lines
  can reach right into the normal margin.  This can be done using
  option \Option{mpinclude} and by an enlargement of length
  \Length{marginparwidth} after the type-area has been setup.  The
  length can be easily enlarged with the command \Macro{addtolength}.
  How much the the length has to be enlarged depends on the special
  situation and it requires some flair.  This is another reason the
  \Option{mpinclude} option is primarily left for experts.  Of course
  one can setup the margin-width to reach a third right into the
  normal margin, for example using
  \begin{lstcode}[belowskip=\dp\strutbox]
  \setlength{\marginparwidth}{1.5\marginparwidth}
  \end{lstcode}
  gives the desired result.

  Currently there is no option to enlarge the margin by a given
  amount.  The only solution is to either not use the option
  \Option{mpinclude} or to set \Option{mpinclude} to \PValue{false},
  and instead after the type-area has been calculated one reduces the
  width of the text body \Length{textwidth} and enlarges the margin
  width \Length{marginparwidth} by the same amount.  Unfortunately,
  this can not be combined with automatic calculation of the
  \PName{DIV} value.  In contrast
  \Option{DIV=calc}\IndexOption{DIV~=calc} (see
  \autopageref{desc:typearea.option.DIV.calc}) heeds
  \Option{mpinclude}.
\end{Explain}

Please note that when using this option with one of the {\KOMAScript}
classes as in the example above, it must be used either as a class
option, or passed via \Macro{KOMAoptions} or \Macro{KOMAoption} after
loading the class. Changing of this option after loading the
\Package{typearea} package does not result in an automatic
recalculation of the type-area. Instead, the changes only take effect
at the next recalculation of the type-area. For recalculation of the
type-area, refer to the \Option{DIV} option with the values
\PValue{last} or \PValue{current} (see
\autopageref{desc:typearea.option.DIV.last}) or the
\Macro{recalctypearea} command (see
\autopageref{desc:typearea.cmd.recalctypearea}).%
%
\EndIndex{Option}{mpinclude~=\PName{switch}}%


\BeginIndex{Option}{headlines~=\PName{number}}%
\BeginIndex{Option}{headheight~=\PName{height}}%
\begin{Declaration}
  \KOption{headlines}\PName{number of lines}\\
  \KOption{headheight}\PName{height}
\end{Declaration}%
We have seen how to calculate the type-area using the
\Package{typearea} package and how to specify whether header and
footer are part of the text or the margins. However, in particular for
the header, we still have to specify the height. This is achieved with
the options \Option{headlines} and
\Option{headheight}\ChangedAt{v3.00}{\Package{typearea}}.

The option \Option{headlines} is set to the number of header
lines. The \Package{typearea} package uses a default of 1.25. This is
a compromise, large enough for underlined headers (see
\autoref{sec:maincls.options}) and small enough that the relative
weight of the top margin is not affected too much when the header is
not underlined. Thus in most cases you may leave \Option{headlines} at
its default value and adapt it only in special cases.

\begin{Example}
  Assume that you want to use a header with two lines. Normally this would
  result in a ``\texttt{overfull} \Macro{vbox}'' warning for each page. To
  prevent this from happening, the \Package{typearea} package is told to
  calculate an appropriate type-area:
\begin{lstcode}
  \documentclass[a4paper]{article}
  \usepackage[headlines=2.1]{typearea}
\end{lstcode}
If you use a {\KOMAScript} class it is recommended to pass this option
directly as a class option:
\begin{lstcode}
  \documentclass[a4paper,headlines=2.1]{scrartcl}
\end{lstcode}
Commands that can be used to define the contents of a header with two
lines are described in \autoref{cha:scrpage}.
\end{Example}

In some cases it is useful to be able to specift the header height not
in lines but directly as a length measurement. This is accomplished
with the aid of the alternative option \Option{headheight}. For
\PName{height} any lengths and sizes that \LaTeX{} understands are
valid. It should be noted though that when using a \LaTeX{} length
such as \Length{baselineskip} its value at the time of the calculation
of the type-area and margins, not at the time of setting of the
option, is decisive.

Please note that when using these options with one of the
{\KOMAScript} classes as in the example above, they must be used
either as a class option, or passed via \Macro{KOMAoptions} or
\Macro{KOMAoption} after loading the class. Changing of these options
after loading the \Package{typearea} package does not result in an
automatic recalculation of the type-area. Instead, the changes only
take effect at the next recalculation of the type-area. For
recalculation of the type-area, refer to the \Option{DIV} option with
the values \PValue{last} or \PValue{current} (see
\autopageref{desc:typearea.option.DIV.last}) or the
\Macro{recalctypearea} command (see
\autopageref{desc:typearea.cmd.recalctypearea}).%
%
\EndIndex{Option}{headheight~=\PName{height}}%
\EndIndex{Option}{headlines~=\PName{number}}


\BeginIndex{Cmd}{areaset}%
\begin{Declaration}
  \Macro{areaset}\OParameter{BCOR}\Parameter{Width}\Parameter{Height}
\end{Declaration}%
So far we have seen how a good or even very good
type-area\Index{type-area} is calculated and how the
\Package{typearea} package can support these calculations, giving you
at the same time the freedom to adapt the layout to your needs.
However, there are cases where the text body has to fit exactly some
specified dimensions. At the same time the margins should be well
spaced and a binding correction should be possible. The
\Package{typearea} package offers the command \Macro{areaset} for this
purpose. As parameters this command accepts the binding correction and
the width and height of the text body.  Width and position of the
margins will then be calculated automatically, taking account of the
options \Option{headinclude}, \OptionValue{headinclude}{false},
\Option{footinclude} and \OptionValue{footinclude}{false} where
needed.  On the ther hand, the options
\Option{headlines}\IndexOption{headlines} and
\Option{headheight}\IndexOption{headheight} are ignored!

\begin{Example}
  Assume a text, printed on A4 paper, should have a width of exactly 60
  characters of typewriter font and a height of exactly 30 lines. This could
  be achieved as follows:
\begin{lstcode}
  \documentclass[a4paper,11pt]{article}
  \usepackage{typearea}
  \newlength{\CharsLX}% Width of 60 characters
  \newlength{\LinesXXX}% Height of 30 lines
  \settowidth{\CharsLX}{\texttt{1234567890}}
  \setlength{\CharsLX}{6\CharsLX}
  \setlength{\LinesXXX}{\topskip}
  \addtolength{\LinesXXX}{29\baselineskip}
  \areaset{\CharsLX}{\LinesXXX}
\end{lstcode}
You need only 29 instead of 30, because the base line of the topmost
text line is \Macro{topskip} below the top margin of the type area, as
long as the height of the topmost line is less than
\Macro{topskip}. Thus, the uppermost line does not require any
height. The descenders of characters on the lowermost line, on the
other hand, hang below the dimensions of the type-area.

\item A poetry book with a square text body with a page length of
  15\Unit{cm} and a binding correction of 1\Unit{cm} could be
  achieved like this:
\begin{lstcode}
  \documentclass{poetry}
  \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}} rare cases it is useful to be
able to reconstruct the current type-area anew. This is possible via
the option \OptionValue{DIV}{areaset}, where
\Macro{KOMAoptions}\PParameter{DIV=areaset} corresponds to the 
\begin{lstcode}[belowskip=\dp\strutbox]
  \areaset[current]{\textwidth}{\textheight}
\end{lstcode}
command. The same result is obtained if one uses
\OptionValue{DIV}{last} and the typearea was last set with
\Macro{areaset}.%
%
\EndIndex{Option}{DIV~=areaset}%

The \Package{typearea} package was not made to set up predefined
margin values. If you have to do so you may use package
\Package{geometry}\IndexPackage{geometry} (see
\cite{package:geometry}).


\section{Paper Format Selection}
\label{sec:typearea.paperTypes}%
\BeginIndex{}{paper>format}%

The paper format is a definitive characteristic of any document. As
already mentioned in the description of the supported page layout
constructions (see \autoref{sec:typearea.basics} to
\autoref{sec:typearea.circleConstruction} from
\autopageref{sec:typearea.basics} onwards), the entire page division
and document layout depends on the paper format. Whereas the {\LaTeX}
standard classes are restricted to a few formats, {\KOMAScript}
supports in conjunction with the \Package{typearea} package even
exotic paper sizes.


\BeginIndex{Option}{paper~=\PName{format}}%
\BeginIndex{Option}{paper~=\PName{orientation}}%
\begin{Declaration}
  \KOption{paper}\PName{format}
\end{Declaration}%
The option \Option{paper}\ChangedAt{v3.00}{\Package{typearea}} is the
central element for format selection in \KOMAScript.  \PName{Format}
supports first of all the american formats \Option{letter},
\Option{legal} and \Option{executive}. In addition, it supports the
ISO formats of the series A, B, C and D, for example \PValue{A4}
or\,---\,written in lowercase\,---\,\PValue{a4}. Landscape formats are
supported by specifying the option again, this time with the value
\PValue{landscape}\Index{paper>orientation}. Additionally, the
\PName{format} can also be specified in the form
\PName{height}\texttt{:}\PName{width}.

\begin{Example}
 Assume one wishes to print on ISO A8 file cards in landscape
 orientation. Margins should be very small, no header or footer
 will be used.
\begin{lstcode}
  \documentclass{article}
  \usepackage[headinclude=false,footinclude=false,
              paper=A8,landscape]{typearea}
  \areaset{7cm}{5cm}
  \pagestyle{empty}
  \begin{document}
  \section*{Supported Paper Sizes}
  letter, legal, executive, a0, a1 \dots\ %
  b0, b1 \dots\ c0, c1 \dots\ d0, d1 \dots
  \end{document}
\end{lstcode}
If the file cards have the special format (height:width)
5\Unit{cm}\,:\,3\Unit{cm}, this can be achieved using the following
code.
\begin{lstcode}
  \documentclass{article}
  \usepackage[headinclude=false,footinclude=false,%
              paper=A8,paper=5cm:3cm]{typearea}
  \areaset{4cm}{2.4cm}
  \pagestyle{empty}
  \begin{document}
  \section*{Supported Paper Sizes}
  letter, legal, executive, a0, a1 \dots\ %
  b0, b1 \dots\ c0, c1 \dots\ d0, d1 \dots
  \end{document}
\end{lstcode}
\end{Example}

As part of the predefined defaults, {\KOMAScript} uses A4 paper in
portrait orientation. This is in contrast to the standard classes,
which by default use the American letter paper format.

Please note that when using this options with one of the {\KOMAScript}
classes, it must be used either as a class option, or passed via
\Macro{KOMAoptions} or \Macro{KOMAoption} after loading the
class. Changing of this option after loading the \Package{typearea}
package does not result in an automatic recalculation of the
type-area. Instead, the changes only take effect at the next
recalculation of the type-area. For recalculation of the type-area,
refer to the \Option{DIV} option with the values \PValue{last} or
\PValue{current} (see \autopageref{desc:typearea.option.DIV.last}) or
the \Macro{recalctypearea} command (see
\autopageref{desc:typearea.cmd.recalctypearea}).%
%
\EndIndex{Option}{paper~=\PName{orientation}}%
\EndIndex{Option}{paper~=\PName{format}}

\BeginIndex{Option}{pagesize}%
\BeginIndex{Option}{pagesize~=\PName{output driver}}%
\begin{Declaration}
  \KOption{pagesize}\PName{output driver}
\end{Declaration}%
\begin{Explain}%
  The above-mentioned mechanisms for choice of paper format only
  affect the output insofar as internal {\LaTeX} lengths are set. The
  \Package{typearea} package then uses there in the division of the
  page into type-area and margins. The specification of the DVI
  formats\Index{DVI} however does not include any indications of paper
  format. If printing is done directly from DVI format to a low-level
  printer language such as PCL%
  \iffalse% Umbruchkorrektur
  \footnote{PCL is the printer language used by HP for its inkjet and
    laser printers.}%
  \fi \ or ESC/P2%
  \iffalse% Umbruchkorrektur
  \footnote{ESC/P2 is the printer language used by EPSON for its
    dot-matrix, inkjet and laser printers.}%
  \fi , this is usually not an issue since with this output also the
  zero-position is at the top left, identical to DVI. If however
  translation is made into a language such as
  PostScript\Index{PostScript} or PDF\Index{PDF}, in which the
  zero-position is at a different point, and in which also the paper
  format should be specified in the output data, then this information
  is missing. To solve this problem, the respective drivers use a
  predefined paper size, which the user can change either by means of
  an option or via a corresponding command in the {\TeX} source
  file. When using the DVI driver \File{dvips} the information can be
  given in the form of a \Macro{special} command. With {pdf\TeX} or
  {V\TeX} one sets instead two lengths.
\end{Explain}
The option \OptionValue{pagesize}{dvips}\IndexOption{pagesize~=dvips}
writes the paper size as a \Macro{special} into die DVI data
file. This \Macro{special} is then evaluated by, for example,
\File{dvips}. On the other hand, the option
\OptionValue{pagesize}{pdftex} writes the paper size at the start of
the document into the {pdf\TeX} page registers
\Length{pdfpagewidth}\IndexLength{pdfpagewidth} and
\Length{pdfpageheight}\IndexLength{pdfpageheight}, so that later when
viewing the PDF file the correct format is chosen. The option
\OptionValue{pagesize}{auto} is more flexible and, depending on
whether a PDF or DVI data file is output, uses the mechanism of the
option \OptionValue{pagesize}{dvips} or
\OptionValue{pagesize}{pdftex}. With the option
\OptionValue{pagesize}{automedia} it may be that \Length{mediawidth}
and \Length{mediaheight} are also set appropriately. In this way even
the demands of {V\TeX} are supported. If the option \Option{pagesize}
is used with specifying an \PName{output driver} then \PValue{auto} is
used.
\begin{Example}
  Assume that a document should be available both as a DVI data file
  and in PDF format for online viewing. Then the preamble might begin
  as follows:
\begin{lstcode}
  \documentclass{article}
  \usepackage[paper=A4,pagesize]{typearea}
\end{lstcode}
If the {pdf\TeX} engine is used \emph{and} PDF output is
activated, then the two lengths \Macro{pdfpagewidth} and
\Macro{pdfpageheight} are set appropriately.  If however a DVI data
file is created\,---\,regardless of whether by {\LaTeX} or by
{pdf\LaTeX}\,---\,then a \Macro{special} is written at the start of
this data file.
\end{Example}%
It is recommended always to specify this option. Generally the method
without \PName{output driver}, or with \PValue{auto} or
\PValue{automedia} is useful.%
\EndIndex{Option}{pagesize}%
\EndIndex{Option}{pagesize~=\PName{output driver}}%
%
\EndIndex{}{paper>format}


\section{Tips}
\label{sec:typearea.tips}

In particular for theses many rules exist that violate even the most
elementary rules of typography. The reasons for such rules include
typographical incompetence of those making them, but also the fact
that they were originally meant for mechanical typewriters. With a
typewriter or a primitive text processor dating back to the early
´80s it was not possible to produce typographically correct output
without extreme effort. Thus rules were created that appeared to be
achievable and still allowed easy correction. To avoid short lines
made worse by ragged margins, the margins were kept narrow and the
line spacing was increased to 1.5 for corrections. Before the advent
of modern text processing systems, single-spaced would have been the
only alternative\,---\,other than with \TeX. In such a single-spaced
document even correction signs would have been difficult to add. When
computers became more widely available for text processing, some
students tried to use a particularly ``nice'' font to make their work
look better than it really was. They forgot however that such fonts
are often more difficult to read and therefore unsuitable for this
purpose. Thus two bread-and-butter fonts became widely used which
neither fit together nor are particularly suitable for the job. In
particular Times is a relatively narrow font which was developed at
the beginning of the 20$^{th}$ century for the narrow columns of
British newspapers. Modern versions usually are somewhat improved. But
still the Times font required in many rules does not really fit to the
margin sizes prescribed.

{\LaTeX} already uses sufficient line spacing, and the margins are
wide enough for corrections. Thus a page will look generous, even when
quite full of text.

To some extend the questionable rules are difficult to implement in
{\LaTeX}. A fixed number of characters per line can be kept only when
a non-proportional font is used. There are very few good
non-proportional fonts available. Hardly a text typeset in this way
looks really good. In many cases font designers try to increase the
serifs on the `i' or `l' to compensate for the different character
width. This can not work and results in a fragmented and
agitated-looking text. If one uses {\LaTeX} for one's paper, some of
these rules have to be either ignored or at least interpreted
generously. For example one may interpret ``60 characters per line''
not as a fixed, but as an average or maximal value.%

As executed, record regulations are usually intended to obtain a
usable result even if the author does not know what needs to be
considered. Usable means frequently: readable and correctable.  In
the author's opinion the type-area of a text set with {\LaTeX} and the
\Package{typearea} package meets these criteria well right from the
start.  Thus if one is confronted with regulations which deviate
obviously substantially from it, then the author recommends submitting
an extract from the text to the responsible person and inquiring
whether it is permitted to submit the work despite deviations in the
format.  If necessary the type area can be moderately adapted by
modification of option \Option{DIV}.  The author advises against the
use of \Macro{areaset} for this purpose however.  In the worst case
one may make use of the geometry package (see
\cite{package:geometry}), which is not part of \KOMAScript, or change
the type-area parameters of \LaTeX.  One may find the values
determined by \Package{typearea} in the \File{log} file of one's
document.  Thus moderate adjustments should be possible.  However, one
should make absolutely sure that the proportions of the text area
correspond approximately to those of the page including consideration
of the binding correction.

If it should prove absolutely necessary to set the text with a line
spacing of 1.5, then one should not under any circumstances redefine
\Macro{baselinestretch}.  Although this procedure is recommended all
too frequently, it has been obsolete since the introduction of
{\LaTeXe} in 1994.  In the worst case one may use the instruction
\Macro{linespread}.  The author recommends the package
\Package{setspace}\IndexPackage{setspace} (see
\cite{package:setspace}), which is not part of \KOMAScript.  Also one
should let \Package{typearea} recalculate a new type-area after the
conversion of the line spacing.  However, one should switch back to
the normal line spacing for the title, preferably also for the table
contents and various listings\,---\,as well as the bibliography and
the index.  The \Package{setspace} package offers for this a special
environment and its own instructions.

The \Package{typearea} package even with option \Option{DIV=calc}
calculates a very generous text area.  Many conservative typographers
will state that the resulting line length is still excessive. The
calculated \Var{DIV} value may be found in the \File{log} file for the
respective document.  Thus one can select a smaller value easily after
the first {\LaTeX} run.

The question is not infrequently put to the author, why he spends an
entire chapter discussing type-area calculations, when it would be
very much simpler to merely give the world a package with which anyone
can adjust the margins like in a word processor.  Often it is added
that such a package would in any case be the better solution, since
everyone can judge for themselves how good margins are to be chosen,
and that the margins calculated by {\KOMAScript} are anyway not that
great.  The author takes the liberty of translating a suitable
quotation from \cite{TYPO:ErsteHilfe}. One may find the original
German words in the German scrguide.

\begin{quote}
  \phantomsection\label{sec:typearea.tips.cite}%
  \textit{The practice of doing things oneself is long-since
    widespread, but the results are often dubious because layman
    typographers do not see what is incorrect and cannot know what is
    important. Thus one becomes accustomed to incorrect and poor
    typography.} [\dots] \textit{Now the objection could be made that
    typography is dependent on taste. If it concerned decoration,
    perhaps one could let that argument slip by; however, since
    typography is primarily concerned with information, errors cannot
    only irritate, but may even cause damage.}
\end{quote}

%%% Local Variables:
%%% mode: latex
%%% coding: iso-latin-1
%%% TeX-master: "../guide"
%%% End:
