[Tex/LaTex] KOMA-Script: Why does “DIV=calc” destroy the initial geometry

koma-scriptmarginstypearea

Why does the DIV=calc-command modify the whole layout geometry, even if the binding correction BCOR is set to 0mm?

Let's have a look at two simple examples to explain my question.


1. Example

In the first example, I completely disactivate the BCOR and the DIV=calc commands by commenting them out. The result will be a harmonious looking layout with nice borders.


Minimum Working Example (MWE):

\documentclass[twoside=false]{scrbook}

\usepackage{blindtext}

% \KOMAoptions{BCOR=0mm}
% \KOMAoptions{DIV=calc}

\begin{document}
    \blinddocument
\end{document}

Screenshot of the result:

Nice layout with disactivated BCOR/DIV=calc and initial geometry.


2. Example

However, if I switch on the DIV=calc-command even with BCOR=0mm, the whole layout is getting changed. The result will be a strongly modified geometry with (in my eyes) too wide and inharmonious border widths.


Minimum Working Example (MWE):

\documentclass[twoside=false]{scrbook}

\usepackage{blindtext}

\KOMAoptions{BCOR=0mm}
\KOMAoptions{DIV=calc}

\begin{document}
    \blinddocument
\end{document}

Screenshot of the result:

Modified layout with activated BCOR and initial geometry.


What is the reason for this behavior?

Why does the whole layout change, even with 0mm in BCOR? I think the initial layout without DIV=calc is looking way more natural, doesn't it?

Best Answer

If you do not set option DIV as class option package typearea is loaded using DIV=default. That means: either there exists a default value (only for a4 paper and the fontsizes 10pt, 11pt or 12pt) or DIV=calc is used automatically.

Your example does not set paper, fontsize or DIV, so the defaults paper=a4, fontsize=11pt, DIV=default are used. This results in the preset value DIV=10.

With DIV=calc package typearea recalculates the DIV value depending on the current font to get a recommended number of characters per line. In your example this is DIV=8. You can find this value in the log file.

If you do not want a change of DIV while the page layout is recalculated, do not use DIV=calc. Replace it by DIV=current (current value of DIV) or DIV=last (last argument of option DIV - this could be a number or a symbolic value like default).

But if you change BCOR in the preamble the recalculation of the page layout is already done using DIV=last. In your example this would be DIV=default resulting in DIV=10. So there is no need to set DIV again. See also DIV and BCOR setting in KOMA (best practices).

Note that \recalctypearea recalculates the page layout using options BCOR=current and DIV=last.

If the margins should be smaller set a larger DIV value i.e. DIV=12.

If you need special margins you could set KOMA-Script option usegeometry and load package geometry to change the margins.