% ====================================================================== % 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: