KOMA-Script typearea 和 DIV

KOMA-Script typearea 和 DIV

我正在经历KOMA-script Documentation我在第 32 页发现了一个漂亮的表格,其中根据您设置的文件type area数量。DIV

在此处输入图片描述

现在我必须做错了什么,因为当我用不同的DIV值设置我的 MWE 时,我得到的结果\textheight\textwidthKOMA 文档中的不同。

\documentclass[a4paper,BCOR=0mm,DIV=12]{scrbook}

\usepackage{layouts}

\begin{document}

\printinunitsof{mm}{\pagevalues}

\verb|\marginparwidth|: \printinunitsof{mm}\prntlen{\marginparwidth}

\pagediagram
\end{document}

在此处输入图片描述

此外,我费尽心思打印了这些页面,然后测量了距离。它们似乎都不一致(其中一些偏差了几毫米,另一些偏差更大)。

所以,我的问题是:

  1. KOMA 脚本文档的人员是如何得出上述这些值的?
  2. 如果他们做对了(我确信他们做对了),为什么这在印刷版本上却不正确?
  3. 为什么我从包中获得的值layouts与 KOMA 文档或印刷版本不一致?

答案1

水平值

KOMA-Script 的理念是:如果有两页并排,则左页(偶数页)左侧的空白与右页(奇数页)右侧的空白相同与左页正文与右页文本之间的空白相同。

使用 时DIV=12,外边距获得 2 个单位,内边距获得 1 个单位(因为它们从偶数页和奇数页加起来为 2 个单位),文本宽度获得 9 个单位:

unit width:   210mm / 12 =  17.5mm
outer margin: 2 * 17.5mm =  35mm
inner margin: 1 * 17.5mm =  17.5mm
text width:   9 * 17.5mm = 157.5mm

因此,表格中文本宽度和内边距的值是正确的。

文本宽度

\textwidth表格显示的值是正确的,157,50mm并且您得到157.49817mm。(英文版应该用句点代替小数点分隔符中的逗号。

左边距

左边距奇怪的编号页是内边距,应为 17.5 毫米:

25.4mm     (TeX origin)
-7.89989mm (\oddsidemargin)
----------
17.50011mm

正确(模数舍入误差)

左边距甚至编号页是外边距,应为 35mm:

25.4mm     (TeX origin)
 9.59988mm (\evensidemargin)
----------
34.99988mm

正确(模数舍入误差)

垂直值

DIV=12表示将页面高度分为 12 个单位。顶部边距为一个单位,底部边距为两个单位,其余 9 个单位为文本高度。

unit height:   297mm / 12  =  24.75mm
top margin:    1 * 24.75mm =  24.75mm
bottom margin: 2 * 24.75mm =  49.5mm
text height:   9 * 24.75mm = 222.75mm

因此,表格中文本高度和顶部边距的值是正确的。

上边距

表值:24,75mm

 25.4mm     (TeX origin)
-13.79442mm (\topmargin)
  5.97475mm (\headheight)
  7.1697mm  (\headsep)
------------
 24.75mm

正确的。

文本高度

表格标题翻译不正确,德文版也说,\topskip没有考虑到这一点。

\@typearea按以下方式计算文本高度:

RealTextHeight = topskip + n * baselineskip
with
    n is a natural number
and
    0 ≤ RealTextHeight - DivTextHeight < baselineskip

\topskip因此,实际文本高度取决于通过 div 方法计算的值、 (取决于字体大小)和\baselineskip(也取决于字体大小)的设置。

因此文本高度可以大于表格值。视觉文本高度甚至可以更大,因为文本区域底部框的深度可以下降到文本区域下方\maxdepth(= .5\topskip) 。typearea

类选项的值11pt(默认):

\topskip:      11pt   ≈ 3.86606mm
\baselineskip: 13.6pt ≈ 4.77985mm
\maxdepth:      5.5pt ≈ 1.93303mm

然后

\textheight = \topskip   + 46 * \baselineskip
636.60028pt = 11pt       + 46 * 13.6pt         (modulo rounding error)
223.73679mm = 3.86606mm  + 46 * 4.77985mm      (modulo rounding error)

223.73679mm ≥ 222.75mm
223.73679mm < \topskip + 47 * \baselineskip

因此,根据所使用的算法,文本高度是正确的\typearea

答案2

但是您的 LaTeX 文档生成的值与表格中的值一致。我没有发现任何问题。\textwidth\textheight和几乎与预测的一致。奇数页上的\topmargin内边距为 ,因此也与预测的一致。1in + \oddsidemargin25.4 - 7.9 = 17.5mm

对于偶数页,内边距为\paperwidth - 1in - \evensidemargin - \textwidth = 210 - 25.4 - 9.6 - 157.5 = 17.5mm。同样,如表格所预测的那样。

所以我确实没发现什么问题。

现在,如果您打印它,那么 Adob​​e Reader 可能会添加额外的边距,因为它实际上会缩小页面,除非您在打印对话框中选择了正确的选项。所以我预计边距会增加,宽度和高度会缩小。确保在打印时选择“实际大小”选项。您的打印机可能也不是很准确。所以边距可能会增加/减少几毫米。但我预计宽度和高度对于大多数打印机来说应该是准确的,除非您在 Adob​​e Reader 中选择了错误的打印选项。

相关内容