在完成文档时,我做的最后一件事通常是调整页面几何形状以改善整体布局:删除一些孤行或寡行,减少连字符的数量等。
我通常首先设计文档,采用可接受的或强加/建议的页面几何形状,例如
\usepackage[scale=0.75]{geometry}
但更多的时候(如果不是总是),我实际上可以用介于和0.75
之间的任何东西来替换它(作为示例)(因为即使页面几何形状据称是“强制性的”,大多数人也不会注意到差异......)。0.73
0.77
然而,到目前为止,我的过程是手动的、繁琐的和相当主观的,基本上是尝试不同的scale
选项并选择最令我赏心悦目的选项......
更好的方法是让 TeX 输出一些印刷指标,或者更好的是,输出整个文档的全局“不良”指标,然后使用一个小脚本scale
根据此指标优化该因素。以下是我的几个相关问题:
a) TeX 是否可能输出如下的印刷质量指标:
- 寡妇的数量,
- 孤儿数量,
- 连字符的数量,
- 标准和最大字间距,
- 字间距大于标准值两倍的行数,以及
- 您认为还有其他相关的印刷质量指标有用吗?(我假设在所有情况下都已处理了像盒子过满这样的大忌)。
b) 对于寡妇、孤儿、连字符和类似的严重错误,是否可以修改 TeX 的输出程序来识别它们发生的位置?要么直接在文档内部,要么作为警告在日志中,或者两者同时选择(如过满或欠满
hbox
时发生的情况)。是否可以让 TeX 输出整个文档的全局质量/不良指标?我知道 TeX 内部使用惩罚系统;是否可以输出整个文档的惩罚总数,这是否是符合我的优化期望的合适指标?
(注意:答案不一定适用于每个引擎;特别是,Lua 代码是完全可以接受的,因为我猜这个问题涉及到luatex
了“打开 TeX 的内部结构”)