% ====================================================================== % typearea.tex % Copyright (c) Markus Kohm, 2001-2021 % % 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-2021 % % 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 ueber typearea in der KOMA-Script-Anleitung % Verwaltet von Markus Kohm % % ====================================================================== \KOMAProvidesFile{typearea.tex}% [$Date: 2021-11-09 09:33:36 +0100 (Di, 09. Nov 2021) $ KOMA-Script guide (chapter: typearea)] \translator{Markus Kohm\and Gernot Hassenpflug\and Krickette Murabayashi\and Karl Hagen} % Date of the translated German file: 2021-11-09 \chapter{Calculating the Page Layout with \Package{typearea}} \labelbase{typearea} \BeginIndexGroup% \BeginIndex{Package}{typearea}% Many {\LaTeX} classes\iffree{, including the standard classes,}{} present the user with a largely fixed configuration of margins and page layout. In the standard classes, the choice is limited to selecting a font size. There are separate packages, such as \Package{geometry}\IndexPackage{geometry} (see \cite{package:geometry}), which give the user complete control over, but also full responsibility for, setting the type area and margins. \KOMAScript{} takes a somewhat different approach with the \Package{typearea} package. Users are offered ways to adjust the design and algorithms based on established typographic standards, making it easier for them to make good choices. \iffalse% Umbruchoptimierung!!! Note that the \Package{typearea} package makes use of the \Package{scrbase} package. The latter is explained in the expert section of this \iffree{guide}{book} in \autoref{cha:scrbase} on \autopageref{cha:scrbase}. However, most of the features documented there are directed not to users but to class and package authors. \fi \section{Fundamentals of Page Layout} \seclabel{basics} \begin{Explain} At first glance, a single page of a book or other printed material consists of the margins, \iffalse% Umbruchkorrekturtext \footnote{The author and the editor have considered the question as to whether, since a page has only one periphery, the term should be ``the margin.'' However, since \LaTeX{} logically divides this one margin into several margins, which are determined separately, we use the term ``the margins'' here.}% \fi% a header, a body of text, and a footer. More precisely, there is also a space between the header area and the text body, as well as between the body and the footer. The text body is called, in the jargon of typographers and typesetters, the \emph{type area}. The division of these areas, as well as their relations to each other and to the paper, is called the \emph{page layout}.\Index[indexmain]{page layout} Various algorithms and heuristic methods for constructing an appropriate type area have been discussed in the literature% \iffree{ \cite{DANTE:TK0402:MJK}}{. A short introduction to the basics may be found at \autoref{cha:typeareaconstruction}}. These rules are known as the ``canons of page construction.'' One approach often mentioned involves diagonals and their intersections. The result is that the aspect ratio of the type area corresponds to the proportions of the \emph{page}. In a one-sided document,\Index{one-sided} the left and right margins should have equal widths, while the ratio of the top and bottom margins should be 1:2. In a two-sided document\Index{two-sided} (e.\,g. a book), however, the entire inner margin (the margin at the spine) should be the same size 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 emphasised \emph{the page}. It is often mistakenly thought that the format of the page is the same as the format of the paper.\Index[indexmain]{page>format}% \Index[indexmain]{paper>format} However, if you look at a bound document, you can see that part of the paper disappears in the binding\Index[indexmain]{binding} and is no longer part of the visible page. For the type area, however, it is not the format of the paper which is important; it is the impression of the visible page to the reader. Thus, it is clear that the calculation of the type area 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} but not the visible inner margin. The binding correction depends on the production process and cannot be defined in general terms. It is therefore a parameter that must be redefined for each project. In professional printing, this value plays only a minor role, since printing is done on larger sheets of paper and then cropped to the right size. The cropping is done so that the above relations for the visible, two-sided page are maintained. So now we know how the individual parts of a page relate to each other. However, we do not yet know how wide and high the type area is. Once we know one of these two dimensions, we can calculate all the other dimensions from the paper format and the page format or the binding correction. \begin{align*} \Var{type~area~height}\Index{type area} : \Var{type~area~width} &= \Var{page~height}\Index{page} : \Var{page~width}\\ \Var{top~margin}\Index{margin} : \Var{footer~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{type~area~height} \\ % \Var{left~margin} + \Var{right~margin} &= \Var{page~width} - \Var{type~area~width} \\ % \Var{half~inner~margin} + \Var{outer~margin} &= \Var{page~width} - \Var{type~area~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 one-sided document while \Var{half~inner~margin} and \Var{outer~margin} only exist in a two-sided document. We use \Var{half~inner~margin} in these equations, since the full inner margin is an element of the whole two-page spread. Thus, only half of the inner margin, \Var{half~inner~margin}, belongs to a single page. The question of the width of the type area is also discussed in the literature. The optimum width depends on several factors: \begin{itemize} \item the size, width, and type of font used, \item the line spacing, \item the word length, \item the available space. \end{itemize} The importance of the font becomes clear once you realize what serifs are for. Serifs\Index[indexmain]{serifs} are small strokes that finish off the lines of letters. Letters with vertical lines touching the text baseline disturb the flow rather than keeping the eye on the line. It is precisely with these letters that the serifs lie horizontally on the baseline and thus enhance the horizontal effect of the font. The eye can better follow the line of text, not only when reading the words but also when jumping back to the beginning of the next line. Thus, the line length can actually be slightly longer for a serif font than for a sans serif font. Leading\Index[indexmain]{leading}\textnote{leading} refers to 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}), you can change the leading. A wider leading makes it easy for the eye to follow the line. A very wide leading, however, disturbs reading because the eye has to travel long distances between the lines. In addition, the reader becomes uncomfortable because of the visible striped effect. The uniform grey value of the page is thereby spoiled. Nevertheless, the lines can be longer with a wider leading. 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 author's native language. Since the eye usually jumps from word to word, short words make this task easier. Across 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 many hours a day reading. But even then, line lengths beyond 80 characters are unacceptable. In each case, the leading must be appropriately chosen. An extra 5\% to 10\% is recommended as a good rule of thumb. For typefaces like Palatino, which require more than 5\% leading for normal line lengths, even more can be required. Before looking at the actual construction of the page layout, there are a few minor points you should know. {\LaTeX} does not start the first line in the text area of a page at the upper edge of the text area but sets the baseline at a defined distance from the top of the text area. Also, {\LaTeX} recognizes the commands \DescRef{maincls.cmd.raggedbottom}\IndexCmd{raggedbottom} and \DescRef{maincls.cmd.flushbottom}\IndexCmd{flushbottom}. \DescRef{maincls.cmd.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\,---\, even more when the end of the page coincides with headings, figures, tables, or the like. In two-sided documents that is usually undesirable. The second command, \DescRef{maincls.cmd.flushbottom}, makes sure that the last line is always at the lower edge of the text area. To achieve this vertical compensation, {\LaTeX} may have to stretch vertical glue beyond what is normally allowed. Paragraph skip is such a stretchable, vertical glue, even when set to zero. To avoid stretching on normal pages where paragraph spacing is the only stretchable glue, the height of the text area should be a multiple of the height of the text line, including the distance of the first line from the top of the text area. \iffalse% Umbruchkorrektur This explains all the basics of the type area calculation that play a role in {\KOMAScript}. \else This concludes the fundamentals. \fi \iffalse% Umbruchkorrektur Below are two methods of construction offered by \KOMAScript{}. \else \iffalse% Umbruchkorrektur Now, we can begin with the actual construction. \else In the following two sections, the methods of construction offered by {\KOMAScript} are presented in detail. \fi \fi \end{Explain} \section{Constructing the Type Area by Division} \seclabel{divConstruction} \begin{Explain} The easiest way to make sure that the text area has the same ratio as the page is as follows: \begin{itemize} \item First, subtract the \Var{BCOR} required for the binding correction\Index{binding correction} from the inner edge of the paper, and divide the rest of the page vertically into \Var{DIV} rows of equal height. \item Next, divide the page horizontally into the same number (\Var{DIV}) of columns of equal width. \item Then, take the uppermost row as the upper margin and the two lowermost rows as the lower margin. If you are printing two-sided, you similarly take the innermost column as the inner margin and the two outermost columns as the outer margin. \item Then add the binding correction \Var{BCOR} to the inner margin. \end{itemize} What remains within the page is the text area.\Index{text area} The width and 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 greater than three. In order that the text area occupy at least twice as much space as the margins, \Var{DIV} should really be at least nine. With this value, the design is also known as the \emph{classical nine-part division} (see \autoref{fig:typearea.nineparts}). \begin{figure} % \centering \KOMAoption{captions}{bottombeside}% \setcapindent{0pt}% \setlength{\columnsep}{.6em}% \begin{captionbeside}[{% Two-sided layout with the box construction of the classical nine-part division, after subtracting a binding correction% }]{% \label{fig:typearea.nineparts}% \hspace{0pt plus 1ex}% Two-sided layout with the box construction of the classical nine-part division, after subtracting a binding correction% } [l] \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} \end{captionbeside} % \caption{Two-sided layout with the box construction of the classical % nine-part division, after subtracting a binding correction} % \label{fig:typearea.nineparts} \end{figure} In {\KOMAScript}, this kind of design is implemented with the \Package{typearea} package, where the bottom margin may drop any fractions of a line in order to comply with the constraint for the height of the type area mentioned in the previous paragraph and thereby reduce the problem mentioned 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, you can specify \Var{BCOR} and \Var{DIV} as options when loading the package (see \autoref{sec:typearea.options}, starting on \autopageref{sec:typearea.typearea}). There is also a command to calculate the type area explicitly by providing these values as parameters (see also \autoref{sec:typearea.options}, \DescPageRef{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}, \DescPageRef{typearea.option.DIV.calc}. \end{Explain} \section{Constructing the Type Area by Describing a Circle} \seclabel{circleConstruction} \begin{Explain} In addition to the construction method for the type area\Index{type area} described above, there is an even more traditional, or even medieval, method found in the literature. The aim of this method is not just to have the same ratios between page size and type area; it is considered optimal when the height of the text area corresponds to the width of the page. This means that a circle can be drawn that will touch both the sides of the page and the top and bottom of the text area. The exact procedure can be found in \cite{JTsch87}. A disadvantage of this late-medieval canon of page construction is that the width of the text area no longer depends on the font. One no longer chooses the text area to match the font. Instead, the author or typesetter must choose the appropriate font for the text area. % \iftrue % Umbruchkorrekturtext This should be considered mandatory. \fi In the \Package{typearea} package, this construction is modified to determine the \Var{DIV} value by selecting a special (normally meaningless) \Var{DIV} value or a special, symbolic indication of the \Var{DIV} value so that the resulting type area comes as close as possible to the late-medieval page canon. Hence it relies in turn on the method of constructing the type area by division. % \iffalse % Umbruchkorrekturtext If you choose a good font, the result often coincides with the search for the optimal \Var{DIV} value. See also \autoref{sec:typearea.options}, \DescPageRef{typearea.option.DIV.calc}. % \fi \end{Explain} \LoadCommonFile{options}% \section{Early or late Selection of Options} \LoadCommonFile{compatibility}% \section{Compatibility with Earlier Versions of \KOMAScript} \section{Adjusting the Type Area and Page Layout} \seclabel{typearea} The \Package{typearea} package offers two different user interfaces to influence the construction of the type area. The most important method is to specify options when loading the package. For information on how to setup options with \KOMAScript, please refer to \autoref{sec:\LabelBase.options}. In\textnote{Note!} this section the classes used in the examples are not existing {\KOMAScript} classes but hypothetical ones. This \iffree{guide}{book} assumes that ideally an appropriate class is available for each task. \begin{Declaration} \OptionVName{BCOR}{correction} \end{Declaration}% Use the \OptionVName{BCOR}{correction}\ChangedAt{v3.00}{\Package{typearea}} option to specify the absolute value of the binding correction\Index{binding correction}\textnote{binding correction}, i.\,e. the width of the area lost from the paper during the binding process. This value is then automatically taken into account when constructing the page layout and is added back to the inner (or left) margin during output. In the value of the \PName{correction}, you can specify any measurement unit understood by \TeX{}. \begin{Example} Suppose you create a financial report. The whole thing should be printed out one-sided on A4 paper and then stapled in a binder folder. The clip of the folder covers 7.5\Unit{mm}. The stack of pages is very thin, so at most another 0.75\Unit{mm} will be lost from bending and the sheets themselves. Therefore, you can write: \begin{lstcode} \documentclass[a4paper]{report} \usepackage[BCOR=8.25mm]{typearea} \end{lstcode} with \OptionValue{BCOR}{8.25mm} as an option to \Package{typearea} or \begin{lstcode} \documentclass[a4paper,BCOR=8.25mm]{report} \usepackage{typearea} \end{lstcode} when using \OptionValue{BCOR}{8.25mm} as a global option. When using a {\KOMAScript} class, you do not need to load the \Package{typearea} package explicitly: \begin{lstcode} \documentclass[BCOR=8.25mm]{scrreprt} \end{lstcode} You can omit the \Option{a4paper} option with \Class{scrreprt}, since this is the default for all {\KOMAScript} classes. If you want to set the option to a new value later, you can, for example, use the following: \begin{lstcode} \documentclass{scrreprt} \KOMAoptions{BCOR=8.25mm} \end{lstcode} Defaults are initialized when the \Class{scrreprt} class is loaded. Changing a setting with the \DescRef{\LabelBase.cmd.KOMAoptions} or \DescRef{\LabelBase.cmd.KOMAoption} commands will automatically calculate a new type area with new margins. \end{Example} Note\textnote{Attention!} you must pass this option as a class option when loading one of the {\KOMAScript} classes, as in the example above, or via \DescRef{\LabelBase.cmd.KOMAoptions} or \DescRef{\LabelBase.cmd.KOMAoption} after loading the class. When you use a {\KOMAScript} class, you should not load the \Package{typearea} package explicitly with \DescRef{\LabelBase.cmd.usepackage}, nor should you specify it as an optional argument when loading the package if you are using another class. If the option is changed with \DescRef{\LabelBase.cmd.KOMAoptions} or \DescRef{\LabelBase.cmd.KOMAoption} after loading the package, the type area and margins are automatically recalculated.% % \EndIndexGroup \begin{Declaration} \OptionVName{DIV}{factor} \end{Declaration}% The \OptionVName{DIV}{factor}\ChangedAt{v3.00}{\Package{typearea}} option specifies the number of strips into which the page is divided horizontally and vertically during the construction of the type area. The exact construction method is found in \autoref{sec:typearea.divConstruction}. It's important to realise 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}. Note, however, that large values can cause violations in the constraints on the margins of the type area, depending on how you set other options. In extreme cases, the header may fall outside of the page. When you use the \OptionVName{DIV}{factor} option, you are responsible for complying with the margin constraints and for choosing a typographically pleasing line length. In \autoref{tab:typearea.typearea}, you will find the sizes of the type areas for several \Option{DIV} factors for the A4 page with no binding correction. In this case, the other constraints that are dependent on the font size are not taken into account. \begin{table} % \centering \KOMAoptions{captions=topbeside}% \setcapindent{0pt}% \begin{captionbeside} % \caption [{Type area dimensions dependent on \Option{DIV} for A4}] {\label{tab:typearea.typearea}Type area dimensions dependent on \Option{DIV} for A4 regardless of \Length{topskip} or \Option{BCOR}} [l] \begin{tabular}[t]{ccccc} \toprule & \multicolumn{2}{c}{Type area} & \multicolumn{2}{c}{Margins}\\ %\raisebox{1.5ex}[0pt]{ \Option{DIV} %} & width & height & top & inner \\ \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 \multicolumn{5}{r}{\small (all lengths in mm)} \end{tabular} \end{captionbeside} \end{table} \begin{Example} Suppose you are writing up the minutes of a meeting using the \Class{minutes} class. The whole thing should be two-sided. Your company uses 12\Unit{pt} Bookman font. This font, which is one of the standard PostScript fonts, is enabled in {\LaTeX} with the command \verb|\usepackage{bookman}|. Bookman is a very wide font, meaning that the individual characters are relatively wide compared to their height. Therefore, the default setting for \Option{DIV} in \Package{typearea} is too small. After thoroughly studying this entire chapter, you conclude that a value of 15, instead of 12, is most suitable. The minutes will not be bound but punched and kept in a folder, and thus no binding correction is necessary. So you write: \begin{lstcode} \documentclass[a4paper,twoside]{minutes} \usepackage{bookman} \usepackage[DIV=15]{typearea} \end{lstcode} When you're done, you become aware that the minutes will from now on be collected and bound together as a book at the end of the quarter. The binding is to be a simple glue binding because this is only being done to conform to ISO\,9000 and nobody is actually going to read them. The binding, including space lost in folding the pages, requires an average of 12\Unit{mm} You change the options of the \Package{typearea} package accordingly and use the class for minutes that conform 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 a {\KOMAScript} class here: \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} Note\textnote{Attention!} that when using this option with one of the {\KOMAScript} classes, as in the example above, it must be passed either as a class option, or via \DescRef{\LabelBase.cmd.KOMAoptions} or \DescRef{\LabelBase.cmd.KOMAoption} after loading the class. When using a {\KOMAScript} class, the \Package{typearea} package should not be loaded explicitly with \DescRef{\LabelBase.cmd.usepackage}, nor should the option be given as an optional argument thereto. If the option is changed via \DescRef{\LabelBase.cmd.KOMAoptions} or \DescRef{\LabelBase.cmd.KOMAoption} after loading the package, the type area and margins are automatically recalculated.% \EndIndexGroup \begin{Declaration} \OptionValue{DIV}{calc}% \OptionValue{DIV}{classic} \end{Declaration}% As\ChangedAt{v3.00}{\Package{typearea}} already mentioned in \autoref{sec:typearea.divConstruction}, there are fixed defaults for \Option{DIV} when using A4 paper. These can be found in \autoref{tab:typearea.div}. However, such fixed values have the disadvantage that they do not take into account the letter spacing of the font used. With A4 and fairly narrow fonts, this can quickly lead to an unpleasantly high number of characters per line. See the considerations in \autoref{sec:typearea.basics}. If you choose a different paper size, \Package{typearea} will calculate an appropriate \Option{DIV} value for you. Of course, you can also apply this same calculation to A4. To do so, simply use \OptionValue{DIV}{calc}% \important{\OptionValue{DIV}{calc}} in place of \OptionVNameRef{\LabelBase}{DIV}{factor}. Of course, you can also specify this option explicitly for all other paper sizes. If you want automatic calculation, this specification is useful, as it is possible to set different preferences in a configuration file (see \autoref{sec:typearea-experts.cfg}). Explicitly specifying the \OptionValue{DIV}{calc} option overrides such configuration settings. \begin{table} % \centering \KOMAoptions{captions=topbeside}% \setcapindent{0pt}% \begin{captionbeside} %\caption [{\PName{DIV} defaults for A4}] {\label{tab:typearea.div}\PName{DIV} defaults for A4} [l] \begin{tabular}[t]{lccc} \toprule base font size: & 10\Unit{pt} & 11\Unit{pt} & 12\Unit{pt} \\ \Option{DIV}: & 8 & 10 & 12 \\ \bottomrule \end{tabular} \end{captionbeside} \end{table} You can also select the traditional page layout mentioned in \autoref{sec:typearea.circleConstruction}, the medieval page canon. Instead of the \OptionVName{\DescRef{\LabelBase.option.DIV}}{factor} or \OptionValue{DIV}{calc} option, simply use the \OptionValue{DIV}{classic} option. A \Option{DIV} value which is as close as possible to the medieval page canon is then chosen. \begin{Example} In the example using the Bookman font and the \OptionVNameRef{\LabelBase}{DIV}{factor} option, the problem was to select a \Option{DIV} value that better matched the font. Modifying that example, you can simply leave the calculation of this value to \Package{typearea}: \begin{lstcode} \documentclass[a4paper,twoside]{protocol} \usepackage{bookman} \usepackage[DIV=calc]{typearea} \end{lstcode} \end{Example} \iffree{\par% Note\textnote{Attention!} that when using this option with one of the \KOMAScript{} classes% \iftrue , as in the example above, \fi% it must be passed either as a class option, or via \DescRef{\LabelBase.cmd.KOMAoptions} or \DescRef{\LabelBase.cmd.KOMAoption} after loading the class. When using a {\KOMAScript} class, the \Package{typearea} package should not be loaded explicitly with \DescRef{\LabelBase.cmd.usepackage}, nor should the option be given as an optional argument. If the option is changed via \DescRef{\LabelBase.cmd.KOMAoptions} or \DescRef{\LabelBase.cmd.KOMAoption} after loading the package, the type area and margins are automatically recalculated.% }{% \vskip-\dp\strutbox% Wegen Code im Beispiel am Ende }% % \EndIndexGroup \begin{Declaration} \OptionValue{DIV}{current} \OptionValue{DIV}{last} \end{Declaration}% If\ChangedAt{v3.00}{\Package{typearea}} you've been following the examples closely, you already know how to calculate a \Option{DIV} value based on the font you chose when using a {\KOMAScript} class together with a font package. \begin{Explain} The difficulty with doing so is that the {\KOMAScript} class already loads the \Package{typearea} package itself. Thus, it is not possible to pass options as optional arguments to \DescRef{\LabelBase.cmd.usepackage}. It would also be pointless to specify the \OptionValueRef{\LabelBase}{DIV}{calc} option as an optional argument to \DescRef{\LabelBase.cmd.documentclass}. This option would be evaluated immediately on loading the \Package{typearea} package and as a result the type area and margins would be calculated for the standard {\LaTeX} font and not for the font loaded later. However, it is possible to recalculate the type area and margins after loading the font with the aid of \DescRef{\LabelBase.cmd.KOMAoptions}% \PParameter{\OptionValueRef{\LabelBase}{DIV}{calc}} or \DescRef{\LabelBase.cmd.KOMAoption}% \PParameter{\DescRef{\LabelBase.option.DIV}}\PParameter{calc}. The option \OptionValue{DIV}{calc} will then request a \Option{DIV} value for an appropriate line length. As it is often more convenient to set the \Option{DIV} option not after loading the font but at a more noticeable point, such as when loading the class, the \Package{typearea} package offers two further symbolic values for this option. \end{Explain} The option \OptionVName{DIV}{current}\ChangedAt{v3.00}{\Package{typearea}} recalculates the type area and margins using the current \Option{DIV} value. This is less important for recalculating the type area after loading a different font. Instead, it is useful if, for example, you change the leading while keeping the \Option{DIV} value the same and want to ensure the margin constraint that \Length{textheight} minus \Length{topskip} is a multiple of \Length{baselineskip}. The option \OptionVName{DIV}{last}\ChangedAt{v3.00}{\Package{typearea}} will recalculate the type area and margins using exactly the same settings as the last calculation. By the way, if the last typeset area calculation before using \OptionValue{DIV}{last} or \OptionValue{DIV}{current} was done using \DescRef{\LabelBase.cmd.areaset}\IndexCmd{areaset}, the recalculation will be done using \DescRef{\LabelBase.cmd.areaset} again. It then corresponds to \DescRef{\LabelBase.cmd.areaset}\POParameter{current}\IndexLength{textwidth}% \PParameter{\Length{textwidth}}{\Length{textheight}}\IndexLength{textheight}. \begin{Example} Let's suppose again that we need to calculate an appropriate line length for a type area using the Bookman font. At the same time, a {\KOMAScript} class is used. This is very easy with the symbolic value \PValue{last} and the command \DescRef{\LabelBase.cmd.KOMAoptions}: \begin{lstcode} \documentclass[BCOR=12mm,DIV=calc,twoside]{scrartcl} \usepackage{bookman} \KOMAoptions{DIV=last} \end{lstcode} If you decide later that you need a different \Option{DIV} value, just change the setting of the optional argument to \DescRef{\LabelBase.cmd.documentclass}. \end{Example} For a summary of all possible symbolic values for the \Option{DIV} option, see \autoref{tab:symbolicDIV}. Note that the use of the \Package{fontenc}\IndexPackage{fontenc} package may also cause \LaTeX{} to load a different font. \begin{table} \caption[{% Symbolic values for the \DescRef{typearea.option.DIV} option and the \PName{DIV} argument to \DescRef{\LabelBase.cmd.typearea}% }]{% Available symbolic values for the \DescRef{typearea.option.DIV} option or the \PName{DIV} argument to \DescRef{typearea.cmd.typearea}\OParameter{BCOR}\Parameter{DIV}% } \label{tab:symbolicDIV} \begin{desctabular} \pventry{areaset}{Recalculate page layout.\IndexOption{DIV~=\textKValue{areaset}}}% \pventry{calc}{Recalculate type area including choice of appropriate \Option{DIV} value.\IndexOption{DIV~=\textKValue{calc}}}% \pventry{classic}{Recalculate type area using medieval book design canon (circle-based calculation).\IndexOption{DIV~=\textKValue{classic}}}% \pventry{current}{Recalculate type area using current \Option{DIV} value.\IndexOption{DIV~=\textKValue{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~=\textKValue{default}}}% \pventry{last}{Recalculate type area using the same \PName{DIV} argument as was used in the last call.\IndexOption{DIV~=\textKValue{last}}}% \end{desctabular} \end{table} Frequently\textnote{Attention!}, the type area must be recalculated in combination with a change in the line spacing (\emph{leading})\Index{leading}. Since the type area should be calculated in such a way that a whole number of lines fits in the text block, a change in the leading normally requires a recalculation of the type area. \begin{Example} Suppose that you require a 10\Unit{pt} font and a spacing of 1.5 lines for a dissertation. By default, {\LaTeX} sets the leading for 10\Unit{pt} fonts at 2\Unit{pt}, in other words 1.2 lines. Therefore, you must use an additional stretch factor of 1.25. Suppose also that you need a binding correction of \(12\Unit{mm}\). Then the solution to the problem might look like this: \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 \Macro{normalsize} command itself when calculating a new type area, it is not strictly necessary to set the chosen leading with \Macro{selectfont} after \Macro{linespread}, since this will already be done in the recalculation. When using the \Package{setspace}\IndexPackage{setspace}% \important{\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[onehalfspacing]{setspace} \KOMAoptions{DIV=last} \end{lstcode} \end{Example} As\textnote{Hint!} you can see from the example, the \Package{setspace} package saves you from needing to know the correct stretch value. However, this only applies to the standard font sizes 10\Unit{pt}, 11\Unit{pt}, and 12\Unit{pt}. For all other font sizes, the package uses an approximate value. At\textnote{Attention!} this point, note that the line spacing for the title page should be reset to the normal value, and the indexes should be set with the normal line spacing as well. \begin{Example} Here\IndexPackage{setspace} is a complete example: \begin{lstcode} \documentclass[10pt,twoside,BCOR=12mm,DIV=calc] {scrreprt} \usepackage{setspace} \onehalfspacing \AfterTOCHead{\singlespacing} \KOMAoptions{DIV=last} \begin{document} \title{Title} \author{Markus Kohm} \begin{spacing}{1} \maketitle \end{spacing} \tableofcontents \chapter{Ok} \end{document} \end{lstcode} Also see the notes in \autoref{sec:typearea.tips}. The \DescRef{tocbasic.cmd.AfterTOCHead}\IndexCmd{AfterTOCHead} command is described in \autoref{cha:tocbasic} of \autoref{part:forExperts} on \DescPageRef{tocbasic.cmd.AfterTOCHead}. \end{Example} Note also that changing the line spacing can also affect the page's header and footer. For example, if you are using the \Package{scrlayer-scrpage} package, you have to decide for yourself whether you prefer to have the normal or the changed leading. See the \DescRef{scrlayer.option.singlespacing} option in \autoref{cha:scrlayer}\important{\hyperref[cha:scrlayer]{\Package{scrlayer}}}% \IndexPackage{scrlayer}\IndexOption{singlespacing}, \DescPageRef{scrlayer.option.singlespacing}. Note\textnote{Attention!} that when using this option with one of the {\KOMAScript} classes, as in the example above, it must be passed either as a class option, or via \DescRef{\LabelBase.cmd.KOMAoptions} or \DescRef{\LabelBase.cmd.KOMAoption} after loading the class. When using a {\KOMAScript} class, the \Package{typearea} package should not be loaded explicitly with \DescRef{\LabelBase.cmd.usepackage}, nor should the option be given as an optional argument thereto. If the option is changed via \DescRef{\LabelBase.cmd.KOMAoptions} or \DescRef{\LabelBase.cmd.KOMAoption} after loading the package, the type area and margins are automatically recalculated.% % \EndIndexGroup \begin{Declaration} \Macro{typearea}\OParameter{BCOR}\Parameter{DIV}% \Macro{recalctypearea} \end{Declaration}% \begin{Explain} If the \DescRef{\LabelBase.option.DIV} option or the \DescRef{\LabelBase.option.BCOR} option is set after loading the \Package{typearea} package, the \Macro{typearea} command will be called internally. When setting the \DescRef{\LabelBase.option.DIV} option, the symbolic value \PValue{current} is used internally for \PName{BCOR}, which for reasons of completeness is also found in \autoref{tab:symbolicBCOR}. When setting the \DescRef{\LabelBase.option.BCOR} option, the symbolic value \PValue{last} is used internally for \PName{DIV}. If instead you want the type area and margins to be recalculated using the symbolic value \PValue{current} for \PName{DIV}, you can use \Macro{typearea}\POParameter{current}\PParameter{current} directly. \end{Explain} \begin{table} \caption[{% Symbolic \PName{BCOR} arguments for \DescRef{typearea.cmd.typearea}% }]{% Available 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 \PName{BCOR} value.\IndexOption{BCOR~=\textKValue{current}}} \end{desctabular} \end{table} If you change both \PName{BCOR} and \PName{DIV}, you should use \Macro{typearea}, since then the type area and margins are recalculated only once. With \DescRef{\LabelBase.cmd.KOMAoptions}% \PParameter{\OptionVNameRef{\LabelBase}{DIV}{factor},% \OptionVNameRef{\LabelBase}{BCOR}{correction}} the type area and margins are recalculated once for the change to \DescRef{\LabelBase.option.DIV} and again for the change to \DescRef{\LabelBase.option.BCOR}. \begin{Explain} The command \Macro{typearea} is currently defined so as to make it possible to change the type area in the middle of a document. However, several assumptions about the structure of the {\LaTeX} kernel are made, and internal definitions and sizes of the kernel are changed. Since changes are only made to the {\LaTeX} kernel to fix bugs, there is a high likelihood, though no guarantee, that this will still work in future versions of \LaTeXe{}. When used within the document, a page break will result. \end{Explain} Since\important{\Macro{recalctypearea}} \DescRef{\LabelBase.cmd.KOMAoption}% \PParameter{\hyperref[desc:\LabelBase.option.DIV.last]{\Option{DIV}}}% \PParameter{\hyperref[desc:\LabelBase.option.DIV.last]{last}}, \DescRef{\LabelBase.cmd.KOMAoptions}% \PParameter{\OptionValueRef{\LabelBase}{DIV}{last}}, or \Macro{typearea}\POParameter{current}\PParameter{last} is frequently needed to recalculate the type area and margins, there is a convenience command, \Macro{recalctypearea}\ChangedAt{v3.00}{\Package{typearea}}. \begin{Example} If you find the notation \begin{lstcode} \KOMAoptions{DIV=last} \end{lstcode} or \begin{lstcode} \typearea[current]{last} \end{lstcode} too cumbersome for recalculating text area and margins because of the many special characters, you can simply use \begin{lstcode} \recalctypearea \end{lstcode} \end{Example}% \EndIndexGroup \begin{Declaration} \OptionVName{twoside}{simple switch}% \OptionValue{twoside}{semi} \end{Declaration}% As explained in \autoref{sec:typearea.basics}, the distribution of the margins depends on whether the document is to be printed one-sided or two-sided. For one-sided printing, the left and right margins are the same width, whereas for two-sided printing the inner margin of one page is only half as wide as the corresponding outer margin. To invoke two-sided printing, you must give the \Package{typearea} package the \Option{twoside} option. For the \PName{simple switch}, you can use any of the standard values for simple switches in \autoref{tab:truefalseswitch}. If the option is passed without a value, the value \PValue{true} is assumed, so two-sided printing is enabled. Deactivating the option leads to one-sided printing. \begin{table} \centering \caption{Standard values for simple switches in \KOMAScript} \begin{tabular}{ll} \toprule Value & Description \\ \midrule \PValue{true} & 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{table} In addition to the values in \autoref{tab:truefalseswitch}, you can also use the value \PValue{semi}\ChangedAt{v3.00}{\Package{typearea}}. This value results in two-sided printing with one-sided margins and one-sided, that is non-alternating, marginal notes. Beginning\ChangedAt{v3.12}{\Package{typearea}} with \KOMAScript{} version 3.12, binding corrections (see \DescRef{\LabelBase.option.BCOR}, \DescPageRef{typearea.option.BCOR}) will be part of the left margin on odd pages but part of the right margin on even pages. But if you switch on compatibility with a prior version\important{\OptionValueRef{\LabelBase}{version}{3.12}} of \KOMAScript{} (see \autoref{sec:typearea.compatibilityOptions}, \autopageref{sec:typearea.compatibilityOptions}), the binding correction will be part of the left margin on both pages while using \OptionValue{twoside}{semi}. The option can also be passed as class option in \DescRef{\LabelBase.cmd.documentclass}, as a package option with \DescRef{\LabelBase.cmd.usepackage}, or even after loading \Package{typearea} with \DescRef{\LabelBase.cmd.KOMAoptions} or \DescRef{\LabelBase.cmd.KOMAoption}. Using this option after loading \Package{typearea} automatically\textnote{automatic recalculation} results in the recalculation of the type area using \DescRef{\LabelBase.cmd.recalctypearea} (see \DescPageRef{typearea.cmd.recalctypearea}). If the two-sided mode was active before the option was set, a page break is made to the next odd page before the recalculation.% % \EndIndexGroup \begin{Declaration} \OptionVName{twocolumn}{simple switch} \end{Declaration} To compute an appropriate type area with the help of \OptionValueRef{\LabelBase}{DIV}{calc}, it is useful to know in advance if the document is to be typeset in one or two columns. Since the considerations about line length in \autoref{sec:typearea.basics} apply to each column, the type area in two-column documents can be up to twice as wide as in one-column documents. To make this distinction, you must tell \Package{typearea} if the document is to be set with two columns using the \Option{twocolumn} option. Since this is a \PName{simple switch}, any of the standard values for simple switches from \autoref{tab:truefalseswitch} are valid. If the option is passed without a value, the value \PValue{true}\important{\OptionValue{twocolumn}{true}} is used, i.\,e. the two-column setting. Deactivating the option returns you to the default one-column setting. The option can also be passed as a class option in \DescRef{\LabelBase.cmd.documentclass}, as a package option to \DescRef{\LabelBase.cmd.usepackage}, or even after loading \Package{typearea} with \DescRef{\LabelBase.cmd.KOMAoptions} or \DescRef{\LabelBase.cmd.KOMAoption}. Using this option after loading \Package{typearea} will\textnote{automatic recalculation} automatically recalculate the type area using \DescRef{\LabelBase.cmd.recalctypearea} (see \DescPageRef{typearea.cmd.recalctypearea}).% % \EndIndexGroup \begin{Declaration} \OptionVName{headinclude}{simple switch}% \OptionVName{footinclude}{simple switch} \end{Declaration}% \begin{Explain}% So far we have discussed how the type area is calculated\Index{type area} and the relationship of the margins\Index{margins} to one another and between margins and body of the text. But one important question has not been answered: What exactly are \emph{the margins}? At first glance the question appears trivial: Margins are those parts on the right, left, top, and bottom of the page which remain empty. But this is only half the story. Margins are not always empty. Sometimes there can be marginal notes, for example (see the \DescRef{maincls.cmd.marginpar} command in \cite{lshort} or \autoref{sec:maincls.marginNotes}). For the top and bottom margins, the question becomes how to handle headers\Index{page header} and footers\Index{page footer}. Do these two belong to the text body or to their respective margins? This question is not easy to answer. Clearly an empty footer or header belongs to the margins, since it cannot be distinguished from the rest of the margins. A footer that contains only the pagination\Index[indexmain]{pagination}\textnote{pagination} % \iffalse % \unskip\footnote{Pagination refers to the indication of the page number, either inside or outside the type area, and usually appears in either the header or the footer of the page.} % \fi % looks more like a margin and should therefore be counted as such. It is irrelevant for the visual effect whether headers or footers are easily recognized as such when reading or skimming. The decisive factor is how a well-filled page appears when viewed \emph{out of focus}. For this purpose, you could, for example, steal the glasses of a far-sighted grandparent and hold the page about half a meter from the tip of your nose. If you lack an available grandparent, you can also adjust your vision to infinity and look at the page with one eye only. Those who wear glasses have a clear advantage here. If the footer contains not only the pagination but also other material like a copyright notice, it looks more like a slightly detached part of the body of the text. This needs to be taken into account when calculating the type area. For the header, this is even more complicated. The header often contains running heads\Index[indexmain]{running heads}\textnote{running heads}. % \iffalse% \unskip\footnote{Running heads refer to the repetition of a title, in titling font, which usually appears in the page header, or rarely in the page footer.} % \fi If you use the current chapter and section titles in your running head and these titles are long, the header itself will necessarily be very long. In this case, the header again acts like a detached part of the text body and less like an empty margin. This effect is reinforced if the header contains not only the chapter or section title but also the pagination. With material on the right and left side, the header no longer appears as an empty margin. It is more difficult if the pagination is in the footer and the length of the running titles varies, so that the header may look like part of the margin on one page and part of the text body on another. Under no circumstances should you treat the pages differently. That would lead to vertically jumping headers, which is not suitable even for a flip book. In this case it is probably best to count the header as part of the text body. The decision is easy when the header or footer is separated from the actual text body by a line. This will give a ``closed'' appearance and the header or footer should be calculated as part of the text body. Remember: It is irrelevant that the line improves the optical separation of text and header or footer; only the appearance when viewed out of focus is important. \end{Explain} The \Package{typearea} package cannot determine on its own whether to count headers and footers\important{\OptionValue{headinclude}{true} \OptionValue{headinclude}{false} \OptionValue{footinclude}{true} \OptionValue{footinclude}{false}} as part of the text body or the margin. The \Option{headinclude} and \Option{footinclude} options cause the header or footer to be counted as part of the text. These options, being \PName{simple switch}es\ChangedAt{v3.00}{\Package{typearea}}, accept the standard values for simple switches in \autoref{tab:truefalseswitch}. You can use the options without specifying a value, in which case the value \PValue{true} is used for the \PName{simple}, i.\,e. the header or footer is counted as part of the text. If you are unsure what the correct setting should be, reread the explanations above. The default is usually \OptionValue{headinclude}{false} and \OptionValue{footinclude}{false}, but this can change in the {\KOMAScript} classes or in other {\KOMAScript} packages depending on the options used (see \autoref{sec:maincls.options} and \autoref{cha:scrlayer-scrpage}). Note\textnote{Attention!} that these options must be passed as class options when using one of the {\KOMAScript} classes, or after loading the class with \DescRef{\LabelBase.cmd.KOMAoptions} or \DescRef{\LabelBase.cmd.KOMAoption}. Changing these options after loading the \Package{typearea} package does not automatically recalculate the type area. Instead, the changes only take effect the next time the type area is recalculated. For recalculation of the type area, see the \hyperref[desc:\LabelBase.option.DIV.last]{\Option{DIV}} option with the values \hyperref[desc:\LabelBase.option.DIV.last]{\PValue{last}} or \hyperref[desc:\LabelBase.option.DIV.current]{\PValue{current}} (see \DescPageRef{typearea.option.DIV.last}) or the \DescRef{\LabelBase.cmd.recalctypearea} command (see \DescPageRef{typearea.cmd.recalctypearea}).% % \EndIndexGroup \begin{Declaration} \OptionVName{mpinclude}{simple switch} \end{Declaration} In addition to\ChangedAt{v2.8q}{\Class{scrbook}\and \Class{scrreprt}\and \Class{scrartcl}} documents where the header and footer are more likely to be part of the text body than the margins, there are also documents where marginal notes should be considered part of the text body as well. The option \Option{mpinclude} does exactly this. The option, as a \PName{simple switch}\ChangedAt{v3.00}{\Package{typearea}}, accepts the standard values for simple switches in \autoref{tab:truefalseswitch}. You can also pass this option without specifying a value, in which case \PValue{true} is assumed. The effect of \OptionValue{mpinclude}{true}% \important{\OptionValue{mpinclude}{true}} is that a width-unit is removed from the main text body and used as the area for marginal notes. With the \OptionValue{mpinclude}{false} option, which is the default setting, part of the normal margin is used for marginal notes. The width of that area is one or one-and-a-half width units, depending on whether you have chosen one-sided or two-sided printing. The \OptionValue{mpinclude}{true} option is mainly for experts and so is not recommended. \begin{Explain} In most cases where the option \Option{mpinclude} makes sense, you also require a wider area for marginal notes. Often, however, only a part of the marginal note's width should be part of the text area, not the whole width, for example if the margin is used for quotations. Such quotations are usually set as unjustified text, with the flush edge against the text area. Since the unjustified text gives no homogeneous optical impression, these lines can protrude partially into the margin. You can accomplish that by using the option \Option{mpinclude} and by increasing the length \Length{marginparwidth} after the type area has been set up. The length can be easily enlarged with the command \Macro{addtolength}. How much the length has to be increased depends on the individual situation and it requires a certain amount of sensitivity. This is another reason the \Option{mpinclude} option is primarily intended for experts. Of course you can specify, for example, that the marginal notes should project a third of the way into the normal margin by using the following: \begin{lstcode} \setlength{\marginparwidth}{1.5\marginparwidth} \end{lstcode} Currently there is no option to enlarge the space for marginal notes within the text area. There is only one way to accomplish this: first, either omit the \Option{mpinclude} option or set it to \PValue{false}, and then, after the type area has been calculated, reduce \Length{textwidth} (the width of the text body) and increase \Length{marginparwidth} (the width of the marginal notes) by the same amount. Unfortunately, this procedure cannot be combined with automatic calculation of the \PName{DIV} value. In contrast, \Option{mpinclude} is taken into account with \OptionValueRef{\LabelBase}{DIV}{calc}\IndexOption{DIV~=calc} (see \DescPageRef{typearea.option.DIV.calc}). \end{Explain} Note\textnote{Attention!} that these options must be passed as class options when using one of the {\KOMAScript} classes, or after loading the class with \DescRef{\LabelBase.cmd.KOMAoptions} or \DescRef{\LabelBase.cmd.KOMAoption}. Changing these options after loading the \Package{typearea} package does not automatically recalculate the type area. Instead, the changes only take effect the next time the type area is recalculated. For recalculation of the type area, see the \hyperref[desc:\LabelBase.option.DIV.last]{\Option{DIV}} option with the values \hyperref[desc:\LabelBase.option.DIV.last]{\PValue{last}} or \hyperref[desc:\LabelBase.option.DIV.current]{\PValue{current}} (see \DescPageRef{typearea.option.DIV.last}) or the \DescRef{\LabelBase.cmd.recalctypearea} command (see \DescPageRef{typearea.cmd.recalctypearea}).% % \EndIndexGroup \begin{Declaration} \OptionVName{headlines}{number of lines} \OptionVName{headheight}{height} \end{Declaration}% \BeginIndex{}{header>height}% We have seen how to calculate the type area using the \Package{typearea} package and how to specify whether the header and footer are part of the text or the margins. However, especially 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{headlines}\important{\Option{headlines}} option specifies the number of lines of text in the header. The \Package{typearea} package uses a default of 1.25. This is a compromise: large enough for underlined headers (see \autoref{sec:maincls.pagestyle}) and small enough that the relative weight of the top margin is not affected too much when the header is not underlined. Thus the default value will usually be adequate. In special cases, however, you may need to adjust the header height more precisely to your actual requirements. \begin{Example} Suppose you want to create a two-line header. Normally this would result in {\LaTeX} issuing the warning ``\texttt{overfull} \Macro{vbox}'' for each page. To prevent this from happening, you tell the \Package{typearea} package to calculate an appropriate type area: \begin{lstcode} \documentclass[a4paper]{article} \usepackage[headlines=2.1]{typearea} \end{lstcode} If you use a {\KOMAScript} class, you should pass this option directly to the class: \begin{lstcode} \documentclass[a4paper,headlines=2.1]{scrartcl} \end{lstcode} Commands that can be used to define the contents of a two-line header can be found in \autoref{cha:scrlayer-scrpage}. \end{Example} In some cases it is useful to be able to specify the header height not in lines but directly as a length. This is accomplished with the alternative option \Option{headheight}\important{\Option{headheight}}. All lengths and sizes that \LaTeX{} understands are valid for \PName{height}. Note\textnote{Attention!}, however, that if you use a \LaTeX{} length such as \Length{baselineskip}, its value is not fixed at the time the option is set. The value that will be used will be the one current at the time the type area and margins are calculated. Also\textnote{Attention!}, \LaTeX{} lengths like \Length{baselineskip} should never be used in the optional argument of \DescRef{\LabelBase.cmd.documentclass} or \DescRef{\LabelBase.cmd.usepackage}. Please be sure to note\textnote{Attention!} that these options must be passed as class options when using one of the {\KOMAScript} classes, or after loading the class with \DescRef{\LabelBase.cmd.KOMAoptions} or \DescRef{\LabelBase.cmd.KOMAoption}. Changing these options after loading the \Package{typearea} package does not\textnote{no automatic recalculation} automatically recalculate the type area. Instead, the changes only take effect the next time the type area is recalculated. For recalculation of the type area, see the \hyperref[desc:\LabelBase.option.DIV.last]{\Option{DIV}} option with the values \hyperref[desc:\LabelBase.option.DIV.last]{\PValue{last}} or \hyperref[desc:\LabelBase.option.DIV.current]{\PValue{current}} (see \DescPageRef{typearea.option.DIV.last}) or the \DescRef{\LabelBase.cmd.recalctypearea} command (see \DescPageRef{typearea.cmd.recalctypearea}).% % \EndIndexGroup \begin{Declaration} \OptionVName{footlines}{number of lines}% \OptionVName{footheight}{height}% \Length{footheight}% \end{Declaration} \BeginIndex{}{footer>height}% Like\ChangedAt{v3.12}{\Package{typearea}} the header, the footer also requires an indication of how high it should be. But unlike the height of the header, the \LaTeX{} kernel does not provide a length for the height of the footer. So \Package{typearea} defines a new length, \Length{footheight}\IndexLength[indexmain]{footheight}, if it does not already exist. Whether this length will be used by classes or packages to design the headers and footers depends on the individual classes and packages. The \KOMAScript{} package \hyperref[cha:scrlayer-scrpage]{\Package{scrlayer-scrpage}}% \important{\hyperref[cha:scrlayer-scrpage]{\Package{scrlayer-scrpage}}}% \IndexPackage{scrlayer-scrpage} incorporates \Length{footheight} and actively cooperates with \Package{typearea}. The \KOMAScript{} classes, on the other hand, do not recognize \Length{footheight} because without the help of packages they offer only page styles with single-line page footers. You can use \Option{footlines}\important{\Option{footlines}} to set the number of lines in the footer, similar to \DescRef{\LabelBase.option.headlines} for the number of lines in the header. By default the \Package{typearea} package uses 1.25 footer lines. This value is a compromise: large enough to accommodate an overlined or underlined footer (see \autoref{sec:maincls.pagestyle}), and small enough that the relative weight of the bottom margin is not affected too much when the footer lacks a dividing line. Thus the default value will usually be adequate. In special cases, however, you may need to adjust the footer height more precisely to your actual requirements. \begin{Example} Suppose you need to place a two-line copyright notice in the footer. Although there is no test in \LaTeX{} itself to check the space available for the footer, exceeding the designated height will likely result in unbalanced distribution of type area and margins. Moreover, a package such as \hyperref[cha:scrlayer-scrpage]{\Package{scrlayer-scrpage}}% \important{\hyperref[cha:scrlayer-scrpage]{\Package{scrlayer-scrpage}}}% \IndexPackage{scrlayer-scrpage}, which can be used to define such a footer, performs the appropriate test and will report any overruns. So it makes sense to specify the required footer height when calculating of the type area: \begin{lstcode} \documentclass[a4paper]{article} \usepackage[footlines=2.1]{typearea} \end{lstcode} Again, if you use a \KOMAScript{} class, you should pass this option directly to the class: \begin{lstcode} \documentclass[footlines=2.1]{scrartcl} \end{lstcode} Commands that can be used to define the contents of a two-line footer are described in \autoref{cha:scrlayer-scrpage}. \end{Example} In some cases it is useful to be able to specify the footer height not in lines but directly as a length. This is accomplished with the alternative option \Option{footheight}\important{\Option{footheight}}. All lengths and sizes that \LaTeX{} understands are valid for \PName{height}. Note, however, that if you use a \LaTeX{} length such as \Length{baselineskip}, its value is not fixed at the time the option is set. The value that will be used will be the one current at the time the type area and margins are calculated. Also\textnote{Attention!}, \LaTeX{} lengths like \Length{baselineskip} should never be used in the optional argument of \DescRef{\LabelBase.cmd.documentclass} or \DescRef{\LabelBase.cmd.usepackage}. Please be sure to note\textnote{Attention!} that these options must be passed as class options when using one of the {\KOMAScript} classes, or after loading the class with \DescRef{\LabelBase.cmd.KOMAoptions} or \DescRef{\LabelBase.cmd.KOMAoption}. Changing these options after loading \Package{typearea} does not\textnote{no automatic recalculation} automatically recalculate the type area. Instead, the changes only take effect the next time the type area is recalculated. For recalculation of the type area, see the \hyperref[desc:\LabelBase.option.DIV.last]{\Option{DIV}} option with the values \hyperref[desc:\LabelBase.option.DIV.last]{\PValue{last}} or \hyperref[desc:\LabelBase.option.DIV.current]{\PValue{current}} (see \DescPageRef{typearea.option.DIV.last}) or the \DescRef{\LabelBase.cmd.recalctypearea} command (see \DescPageRef{typearea.cmd.recalctypearea}).% \EndIndexGroup \begin{Declaration} \Macro{areaset}\OParameter{BCOR}\Parameter{width}\Parameter{height} \end{Declaration}% So far, we have seen how to create a nice type area\Index{type area} for standard situations and how the \Package{typearea} package makes it easier to accomplish this while still giving the freedom to adapt the layout. However, there are cases where the text body has to adhere precisely to specific dimensions. At the same time, the margins should be distributed as nicely as possible and, if necessary, a binding correction should be taken into account. The \Package{typearea} package offers the command \Macro{areaset} for this purpose. This command takes as parameters the width and height of the text body, as well as the binding correction as an optional parameter. The width and position of the margins are then calculated automatically, taking account of the options \DescRef{\LabelBase.option.headinclude}, \OptionValueRef{\LabelBase}{headinclude}{false}, \DescRef{\LabelBase.option.footinclude} and \OptionValueRef{\LabelBase}{footinclude}{false} where needed. On the other hand, the options \DescRef{\LabelBase.option.headlines}\IndexOption{headlines}, \DescRef{\LabelBase.option.headheight}\IndexOption{headheight}, \DescRef{\LabelBase.option.footlines}\IndexOption{footlines}, and \DescRef{\LabelBase.option.footheight}\IndexOption{footheight} are ignored! For more information, see \DescRef{typearea-experts.cmd.areaset} on \DescPageRef{typearea-experts.cmd.areaset} of \autoref{sec:typearea-experts.experimental}. The default for \PName{BCOR} is 0\Unit{pt}. If you want to preserve the current binding correction, for example the value set by option \DescRef{\LabelBase.option.BCOR}\IndexOption{BCOR}, you can use the symbolic value \PValue{current} at an optional argument. \begin{Example} Suppose a text on A4 paper needs a width of exactly 60 characters in a typewriter font and a height of exactly 30 lines per page. You can accomplish this with the following preamble: \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} The factor is 29 rather than 30 because the baseline of the topmost line of text 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}. So we don't need to add any height for the first line. The descenders of characters on the lowermost line, on the other hand, protrude below the dimensions of the type area. \iffalse % Umbruchkorrekturtext If instead you want to set a book of poetry in which the text area is exactly square with a side length of 15\Unit{cm}, with a binding correction of 1\Unit{cm} taken into account, you can achieve this as follows:% \else% To set a book of poetry with a square text area with a side length of 15\Unit{cm} and a binding correction of 1\Unit{cm}, the following is possible:% \fi \begin{lstcode} \documentclass{poetry} \usepackage{typearea} \areaset[1cm]{15cm}{15cm} \end{lstcode} \end{Example} \EndIndexGroup \begin{Declaration} \OptionValue{DIV}{areaset} \end{Declaration}% In\ChangedAt{v3.00}{\Package{typearea}} rare cases it is useful to be able to realign the current type area. This is possible with the option \OptionValue{DIV}{areaset}, where \DescRef{\LabelBase.cmd.KOMAoptions}\PParameter{\OptionValue{DIV}{areaset}} corresponds to the \begin{lstcode} \areaset[current]{\textwidth}{\textheight} \end{lstcode} command. The same result is obtained if you use \OptionValueRef{\LabelBase}{DIV}{last} and the typearea was last set with \DescRef{\LabelBase.cmd.areaset}.% % \EndIndexGroup \iftrue% Umbruchkorrekturtext: Alternativen If you have concrete specifications for the margins, \Package{typearea} is not suitable. In this case, you should use the \Package{geometry}\IndexPackage{geometry}% \important{\Package{geometry}} package (see \cite{package:geometry}).% \fi% \iffalse% The \Package{typearea} package is not designed to set up predefined margins. If you have to do so, the \Package{geometry}\IndexPackage{geometry} package (see \cite{package:geometry}) is recommended.% \fi \section{Selecting the Paper Size} \seclabel{paperTypes}% \BeginIndexGroup The paper size is a key feature of a document. As already mentioned in the description of the supported page layout constructions (see \autoref{sec:typearea.basics} to \autoref{sec:typearea.circleConstruction} starting on \autopageref{sec:typearea.basics}), the layout of the page, and hence the entire document, depends on the paper size. Whereas the {\LaTeX} standard classes are limited to a few formats, {\KOMAScript} supports even unusual paper sizes in conjunction with the \Package{typearea} package. \begin{Declaration} \OptionVName{paper}{size} \OptionVName{paper}{orientation} \end{Declaration}% The \Option{paper}\ChangedAt{v3.00}{\Package{typearea}} option is the central element for paper-size selection\important[i]{% \begin{tabular}[t]{@{}l@{}l@{}} \KOption{paper} & \PValue{letter}, \\ & \PValue{legal}, \\ & \PValue{executive}, \\ & \PValue{A0}, \PValue{A1}, \PValue{A2} \dots\\ & \PValue{B0}, \PValue{B1}, \PValue{B2} \dots\\ & \PValue{C0}, \PValue{C1}, \PValue{C2} \dots\\ & \PValue{D0}, \PValue{D1}, \PValue{D2} \dots\end{tabular}} % in \KOMAScript. \PName{Size} supports 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 lower case\,---\,\PValue{a4}. Landscape orientations\important{% \begin{tabular}[t]{@{}l@{}l@{}} \KOption{paper} & \PValue{landscape}, \\ & \PValue{seascape} \end{tabular}% } are supported by specifying the option one more time with the value \PValue{landscape}\Index{paper>orientation} or \PValue{seascape}\ChangedAt{v3.02c}{\Package{typearea}}. The only difference between \PValue{landscape} and \PValue{seascape} is that that the application \File{dvips} rotates \PValue{landscape} pages by -90\Unit{\textdegree}, while it rotates \PValue{seascape} pages by +90\Unit{\textdegree}. Thus \PValue{seascape} is particularly useful whenever a PostScript viewer shows landscape pages upside-down. In order for the difference to have an effect, you must not deactivate the \DescRef{\LabelBase.option.pagesize}% \IndexOption{pagesize}\important{\DescRef{\LabelBase.option.pagesize}} option described below. Additionally, the \PName{size} can also be specified either in the form \PName{width}\texttt{:}\PName{height}\ChangedAt{v3.01b}{\Package{typearea}}% \important{\OptionVName{paper}{width\textup{:}height}} or in the form \PName{height}\texttt{:}\PName{width}\ChangedAt{v3.22}{\Package{typearea}}% \important{\OptionVName{paper}{height\textup{:}width}}. Which value is taken as the \PName{height} and which as the \PName{width} depends on the orientation of the paper. With \OptionValue{paper}{landscape} or \OptionValue{paper}{seascape}, the smaller value is the \PName{height} and the larger one is the \PName{width}. With \OptionValue{paper}{portrait}\important{\OptionValue{paper}{portrait}}, the smaller value is the \PName{width} and the larger one is the \PName{height}. Note\textnote{Attention!} that until version~3.01a the first value was always the \PName{height} and the second one the \PName{width}. From version~3.01b through version~3.21, the first value was always the \PName{width} and the second one the \PName{height}. This is important if you use compatibility settings (see option \DescRef{\LabelBase.option.version}% \IndexOption{version}\important{\DescRef{\LabelBase.option.version}}, \autoref{sec:typearea.compatibilityOptions}, \DescPageRef{typearea.option.version}). \begin{Example} Suppose you want to print an ISO-A8 index card in landscape orientation. The margins should be very small and 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: \begin{lstcode} \documentclass{article} \usepackage[headinclude=false,footinclude=false,% paper=landscape,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} By default, {\KOMAScript} uses A4 paper in portrait orientation. This is in contrast\textnote{\KOMAScript{} vs. standard classes} to the standard classes, which by default use the American letter paper format. Please note\textnote{Attention!} that these options must be passed as class options when using one of the {\KOMAScript} classes, or after loading the class with \DescRef{\LabelBase.cmd.KOMAoptions} or \DescRef{\LabelBase.cmd.KOMAoption}. Changing the paper size or orientation with \DescRef{\LabelBase.cmd.KOMAoptions} or \DescRef{\LabelBase.cmd.KOMAoption} does not\textnote{no automatic recalculation} automatically recalculate the type area. Instead, the changes only take effect the next time the type area is recalculated. For recalculation of the type area, see the \hyperref[desc:\LabelBase.option.DIV.last]{\Option{DIV}} option with the values \hyperref[desc:\LabelBase.option.DIV.last]{\PValue{last}} or \hyperref[desc:\LabelBase.option.DIV.current]{\PValue{current}} (see \DescPageRef{typearea.option.DIV.last}) or the \DescRef{\LabelBase.cmd.recalctypearea} command (see \DescPageRef{typearea.cmd.recalctypearea}).% \EndIndexGroup \begin{Declaration} \OptionVName{pagesize}{output driver} \end{Declaration}% \begin{Explain}% The above-mentioned mechanisms for choosing the paper format only affect the output insofar as internal {\LaTeX} lengths are set. The \Package{typearea} package then uses them in dividing the page into type area and margins. The specification of the DVI formats\Index{DVI}, however, does not include any indication of paper size. % \iffree{% When outputting directly from the DVI format to a low-level printer language such as PCL% \iftrue% Umbruchkorrektur \footnote{PCL is a family of printer languages that HP uses for its inkjet and laser printers.}% \fi \ or ESC/P2% \iftrue% Umbruchkorrektur \footnote{ESC/P2 is the printer language that EPSON uses for its dot-matrix, and older inkjet or laser printers.}% \fi \ or ESC/P-R% \iftrue% Umbruchkorrektur \footnote{ESC/P-R is the printer language that EPSON currently uses for inkjet and laser printers.}% \fi, this is usually not an issue% }{% In the past, when DVI was printed directly into a low-level printer language, it did not matter% }, since with these formats the reference zero-position is at the top left, as in DVI. But nowadays, the output is normally translated into languages such as PostScript\Index{PostScript} or PDF\Index{PDF}, in which the zero-position is at a different point, and in which the paper format should be specified in the output file, which is missing this information. To solve this problem, the corresponding driver uses a default paper size, which the user can change either by an option or by specifying it in the {\TeX} source file. When using the DVI driver \File{dvips} or \File{dvipdfm}, the information can be given in the form of a \Macro{special} command. When using {pdf\TeX}, {lua\TeX}, {\XeTeX} or {V\TeX} their paper-size lengths are set appropriately. \end{Explain} With the \Option{pagesize} option, you can select an output driver for writing the paper size into the destination document. Supported output drivers are listed at \autoref{tab:typearea.outputdriver}\iffalse% , \autopageref{tab:typearea.outputdriver}\fi. The default\ChangedAt{v3.17}{\Package{typearea}} is \Option{pagesize}. Using this option without providing a value is equivalent to \OptionValue{pagesize}{auto}. % \begin{table} \caption{Output driver for option \OptionVName{pagesize}{output driver}} \begin{desctabular} \pventry{auto}{Uses output driver \PValue{pdftex} if the pdf\TeX-specific lengths \Macro{pdfpagewidth}\IndexLength{pdfpagewidth} and \Macro{pdfpageheight}\IndexLength{pdfpageheight} or the lua\TeX-specific lengths \Macro{pagewidth}\IndexLength{pagewidth} and \Macro{pageheight}\IndexLength{pageheight} are defined. In addition, the output driver \PValue{dvips} will also be used. This setting is in principle also suitable for \XeTeX{}.% \IndexOption{pagesize~=\textKValue{auto}}}% \pventry{automedia}{Almost the same as \PValue{auto} but if the \mbox{V\TeX}-specific lengths \Macro{mediawidth}\IndexLength{mediawidth} and \Macro{mediaheight}\IndexLength{mediaheight} are defined, they will be set as well.\IndexOption{pagesize~=\textKValue{automedia}}}% \entry{\PValue{false}, \PValue{no}, \PValue{off}}{% Does not set any output driver and does not send page size information to the output driver.\IndexOption{pagesize~=\textKValue{false}}}% \pventry{dvipdfmx}{\ChangedAt{v3.05a}{\Package{typearea}} Writes the paper size into DVI files using \Macro{special}\PParameter{pagesize=\PName{width},\PName{height}}. The name of the output driver is \PValue{dvipdfmx} because the application \File{dvipdfmx} handles such specials not just in the preamble but in the document body too.\IndexOption{pagesize~=\textKValue{dvipdfmx}}}% \pventry{dvips}{Using this option in the preamble sets the paper size using \Macro{special}\PParameter{pagesize=\PName{width},\PName{height}}. Since the \File{dvips} driver cannot handle changes of paper size in the inner document pages, a hack is required to achieve such changes. Use changes of paper size after \Macro{begin}\PParameter{document} at your own risk, if you are using \PValue{dvips}!\IndexOption{pagesize~=\textKValue{dvips}}}% \entry{\PValue{pdftex}, \PValue{luatex}}{% \ChangedAt{v3.20}{\Package{typearea}}Sets paper size using the pdf\TeX-specific lengths \Macro{pdfpagewidth}\IndexLength{pdfpagewidth} and \Macro{pdfpageheight}\IndexLength{pdfpageheight} or the lua\TeX-specific lengths \Macro{pagewidth}\IndexLength{pagewidth} and \Macro{pageheight}\IndexLength{pageheight}. You can do this at any time in your document.% \IndexOption{pagesize~=\textKValue{pdftex}}% \IndexOption{pagesize~=\textKValue{luatex}}}% \end{desctabular} \label{tab:typearea.outputdriver} \end{table} \begin{Example} Suppose a document should be available both as a DVI data file and in PDF format for on-line viewing. The preamble might begin as follows: \begin{lstcode}[% aboveskip=.5\baselineskip plus .1\baselineskip minus .1\baselineskip,% belowskip=.4\baselineskip plus .1\baselineskip minus .1\baselineskip] \documentclass{article} \usepackage[paper=A4,pagesize]{typearea} \end{lstcode} If the {pdf\TeX} engine is used \emph{and} PDF output is enabled, the lengths \Macro{pdfpagewidth} and \Macro{pdfpageheight} are set appropriately. If, however, a DVI data file is created\,---\, whether by {\LaTeX} or by {pdf\LaTeX}\,---\,then a \Macro{special} is written at the start of this data file. \end{Example}% \iffree{% The recommendation is actually outdated. Those who use such old % versions of typearea are the ones at fault. If you use an older version of \Package{typearea}, you should\textnote{Attention!} always specify the \Option{pagesize} option, because older versions of \Package{typearea} did not set them by default. As a rule, the method without an \PName{output driver} or with \PValue{auto} or \PValue{automedia} is convenient.% }{% \vskip-1\ht\strutbox plus .75\ht\strutbox% Wegen Beispiel am Ende der Erklaerung }% \EndIndexGroup % \EndIndexGroup \section{Tips} \seclabel{tips} For theses and dissertations, many rules exist that violate even the most elementary rules of typography.\textnote{formatting rules vs. good typography} The reasons for such rules include the typographical incompetence of those who issue them, but also the fact that they were originally meant for mechanical typewriters. With a typewriter or a primitive text processor from the early 1980s, it was not possible to produce typographically correct output without extreme effort. So rules were created that appeared to be easy to follow and were still accommodating to a proofreader. These include margins that lead to usable line lengths for one-sided printing with a typewriter. To avoid extremely short lines, which are made worse by unjustified text, the margins were kept narrow and the leading was increased to 1.5 lines to allow space for corrections. Before the advent of modern text processing systems, single spacing would have been the only alternative\,---\,except 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 showed their playful side and tried to spice up their work by using an ornamental font to make their work look better than it really was. They did not consider that such fonts are often more difficult to read and therefore unsuitable for this purpose. Thus, two font families found their way into the regulations which are neither compatible nor particularly suitable for the job in the case of Times. Times is a relatively narrow typeface designed at the beginning of the 20th century for the narrow columns of British newspapers. Modern versions usually are somewhat improved. But still the Times font, which is often required, does not really fit the prescribed margins. {\LaTeX} already uses adequate line spacing, and the margins are wide enough for corrections. Thus a page will look spacious, even when quite full of text. Often these typographically questionable rules are difficult to implement in {\LaTeX}. A fixed number of characters per line can be achieved only when a non-proportional font is used. There are very few good non-proportional fonts available. Hardly any 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 widths. This does not work and results in a fragmented and agitated-looking text. If you use {\LaTeX} for your thesis, some of these rules have to be either ignored or at least interpreted generously. For example, ``60 characters per line'' can be interpreted not as a fixed but as an average or maximum value.% As implemented, typesetting rules are usually intended to obtain a useful result even if the author does not know what needs to be considered. \emph{Useful} frequently means readable and correctable. In my opinion the type area of a text set with {\LaTeX} and the \Package{typearea} package meets these criteria well from the outset. So if you are confronted with regulations which deviate substantially from it, I recommend that you present a sample of the text to your advisor and ask whether you can submit the work despite deviations in the format. If necessary the type area can be adapted somewhat by changing the \DescRef{\LabelBase.option.DIV}% \important{\DescRef{\LabelBase.option.DIV}} option. I advise against using \DescRef{\LabelBase.cmd.areaset} for this purpose, however. In the worst case, use the \Package{geometry} package% \important{\Package{geometry}}\IndexPackage{geometry} (see \cite{package:geometry}), which is not part of \KOMAScript, or change the page layout parameters of \LaTeX{} yourself. You can find the values as determined by \Package{typearea} in the \File{log} file of your document. The \DescRef{typearea-experts.option.usegeometry}% \important{\DescRef{typearea-experts.option.usegeometry}} option, which you can find in \autoref{part:forExperts}, can also improve the interactions between \Package{typearea} and \Package{geometry}. This should allow modest adjustments. However, make sure that the proportions of the text area match those of the page, taking the binding correction into account. If it is absolutely necessary to set the text with a line spacing of 1.5, do 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, use the \Macro{linespread} command. I recommend the package \Package{setspace}\important{\Package{setspace}}\IndexPackage{setspace} (see \cite{package:setspace}), which is not part of \KOMAScript. You should also let \Package{typearea} recalculate a new type area after changing the line spacing. However, you should switch back to the normal line spacing for the title, and preferably for the table of contents and various lists\,---\,as well as the bibliography and the index. For details, see the explanation of \OptionValueRef{\LabelBase}{DIV}{current}% \important{\OptionValueRef{\LabelBase}{DIV}{current}}. The \Package{typearea} package, even with option \OptionValueRef{\LabelBase}{DIV}{calc}% \important{\OptionValueRef{\LabelBase}{DIV}{calc}}, calculates a very generous text area. Many conservative typographers will find that the resulting line length is still excessive. The calculated \Option{DIV} value may be found in the \File{log} file for each document. So you can easily choose a smaller value after the first {\LaTeX} run. Not\textnote{What is better?} infrequently I am asked why I dwell on type area calculations for an entire chapter, when it would be much easier just to provide a package with which you can adjust the margins as in a word processor. Often it is said that such a package would be a better solution in any case, since everyone knows how to choose appropriate margins, and that the margins calculated by {\KOMAScript} are not that good anyway. I would like to quote Hans Peter Willberg and Friedrich Forssmann, two of the most respected contemporary typographers \cite{TYPO:ErsteHilfe}. (You can find the original German in the German guide.) \begin{quote} \phantomsection\seclabel{tips.cite}% \textit{The\textnote{Quote!} practice of doing things oneself has long been widespread, but the results are often dubious because amateur typographers do not see what is wrong and cannot know what is important. This is how you get used to incorrect and poor typography.} [\dots] \textit{Now the objection could be made that typography is a matter of taste. When it comes to decoration, one could perhaps accept that argument, but since typography is primarily about information, not only can mistakes irritate, but they may even cause damage.} \end{quote} % \EndIndexGroup %%% Local Variables: %%% mode: latex %%% mode: flyspell %%% coding: us-ascii %%% ispell-local-dictionary: "en_GB" %%% TeX-master: "../guide" %%% End: