精度有限,问题棘手

精度有限,问题棘手

我正在使用 scrbook 在 Latex 中撰写论文,需要提交印刷版和电子版。两份副本应完全相同(例如,第 147 页第 13 行在两份副本中应相同)。

印刷版是单面的,并且有一个小的装订校正(比如 10 毫米)。数字版应该居中。因此,我想添加一个装订校正,只需将所有内容向右移动(5 毫米),而不改变线宽或其他任何东西。

目前,我只是添加了选项 BCOR=10mm,但这会使我的论文增加大约 5 页(它将左边距增加约 8mm,将右边距减少 2mm,并将线宽减少 2mm)。

这是一个 MWE(注释第一行并取消注释第二行以查看更长的文档):

\documentclass[a4paper,oneside,DIV=calc]{scrbook}
%\documentclass[a4paper,oneside,BCOR=10mm,DIV=calc]{scrbook}
\usepackage{blindtext}

\begin{document}
\Blinddocument
\end{document}

理想情况下,我希望找到一种不使用几何等附加包的解决方案。

提前致谢!

答案1

由于装订校正会占用纸张宽度的一部分(在您的情况下为 1cm),如果您希望两个版本中的所有排版都相同(特别是如果您希望两个版本具有相同的页面主体大小和边距 - 当然不包括装订校正),您可以将文档“屏幕”版本的纸张宽度减少 1cm。

打印版本:

\documentclass[a4paper,oneside,BCOR=10mm,DIV=calc]{scrbook}
\usepackage{blindtext}

\begin{document}
\Blinddocument
\end{document}

屏幕版本:

\documentclass[paper=20cm:29.7cm,oneside,DIV=calc]{scrbook}
\usepackage{blindtext}

\begin{document}
\Blinddocument
\end{document}

您可以轻松验证两个版本的页面主体是否相同。具体来说,此示例文档的最后一页(打印版)如下:

在此处输入图片描述

屏幕版本如下(窄 1cm,但页身相同):

在此处输入图片描述

精度有限,问题棘手

由于舍入误差,当使用12pt为基本字体大小时,DIV两个版本中的参数不再以相同的方式计算(为打印版本和屏幕版本typearea选择)。为了确保在两个版本中获得完全相同的换行符和分页符,重要的是确保和是DIV=9DIV=10\textwidth\textheight一模一样在两个版本中(这些参数定义“页面主体”)。因此,选择您喜欢DIV=9还是DIV=10,然后在两个版本中硬编码此参数(当然,如果您更改布局,您将重新访问它)。我们假设您选择DIV=10。编译两个版本。

打印:

\documentclass[12pt,a4paper,oneside,BCOR=10mm,DIV=10]{scrbook}

屏幕:

\documentclass[12pt,paper=20cm:29.7cm,oneside,DIV=10]{scrbook}

现在检查两个日志文件。打印:

Package typearea Info: These are the values describing the layout:
(typearea)             DIV  = 10
(typearea)             BCOR = 28.45274pt
(typearea)             \paperwidth      = 597.50793pt
(typearea)              \textwidth      = 398.33864pt
(typearea)              DIV departure   = 0%
(typearea)              \evensidemargin = 41.54103pt
(typearea)              \oddsidemargin  = 41.54103pt
(typearea)             \paperheight     = 845.04694pt
(typearea)              \textheight     = 592.0pt
...

屏幕:

Package typearea Info: These are the values describing the layout:
(typearea)             DIV  = 10
(typearea)             BCOR = 0.0pt
(typearea)             \paperwidth      = 569.05511pt
(typearea)              \textwidth      = 398.33861pt
(typearea)              DIV departure   = 0%
(typearea)              \evensidemargin = 13.08826pt
(typearea)              \oddsidemargin  = 13.08826pt
(typearea)             \paperheight     = 845.04675pt
(typearea)              \textheight     = 592.0pt
...

如您所见,我们的DIV=10指令得到了尊重,\textheight在两种情况下都是相同的,但\textwidth略有不同。在许多情况下,这不会改变任何东西,但这很危险:换行符不同,因此分页符也不同。所以,你会看到屏幕计算的\textwidth比打印的要小0.00003pt(实际上,这是2sp在 TeX 内部)。好吧,我们当然可以将屏幕纸张宽度增大0.00003pt!在上面的日志中,你可以看到对于 TeX,屏幕\paperwidth569.05511pt。只需将其放大0.00003pt,我们就完成了。

打印:

\documentclass[12pt,a4paper,oneside,BCOR=10mm,DIV=10]{scrbook}
\usepackage{blindtext}

\begin{document}
\Blinddocument
\end{document}

屏幕:

\documentclass[12pt,paper=569.05514pt:29.7cm,oneside,DIV=10]{scrbook}
\usepackage{blindtext}

\begin{document}
\Blinddocument
\end{document}

打印版本的日志输出:

Package typearea Info: These are the values describing the layout:
(typearea)             DIV  = 10
(typearea)             BCOR = 28.45274pt
(typearea)             \paperwidth      = 597.50793pt
(typearea)              \textwidth      = 398.33864pt
(typearea)              DIV departure   = 0%
(typearea)              \evensidemargin = 41.54103pt
(typearea)              \oddsidemargin  = 41.54103pt
(typearea)             \paperheight     = 845.04694pt
(typearea)              \textheight     = 592.0pt
...

屏幕版本的日志输出:

Package typearea Info: These are the values describing the layout:
(typearea)             DIV  = 10
(typearea)             BCOR = 0.0pt
(typearea)             \paperwidth      = 569.05515pt
(typearea)              \textwidth      = 398.33864pt
(typearea)              DIV departure   = 0%
(typearea)              \evensidemargin = 13.08826pt
(typearea)              \oddsidemargin  = 13.08826pt
(typearea)             \paperheight     = 845.04675pt
(typearea)              \textheight     = 592.0pt
...

现在,\textwidth并且\textheight一模一样在两个版本中。

相关内容