根据字体编码的不同行距

根据字体编码的不同行距

从历史上看,我一直在使用Monotype Courier 新品作为我的终端字体(它可以很好地显示西里尔字符和方框绘制字符)。从旧版迁移时KOI8-RUTF-8语言环境,我注意到行间距发生了变化(或领导),这使得快递新品不再适合终端。

ru_RU.KOI8-R以下是我的 XTerm 在语言环境 (12pt Courier New)下的样子:

在此处输入图片描述

现在它看起来是这样的(ru_RU.UTF-8同样是 12pt,字符宽度相同,但请注意增加的前导,垂直框绘制字符形成双“虚线”):

在此处输入图片描述

显然,XTerm 并不是唯一受影响的应用程序。基本上,所有使用 Core X11 字体的程序都表现出相同的行为。看一下xfontsel显示相同字体的不同编码:

KOI8-R

在此处输入图片描述

ISO 10646-1(代表 Unicode):

在此处输入图片描述

有趣的是,Courier New 似乎是唯一受影响的等宽字体。其他字体(如-misc-freemono-*)无论采用何种编码,行距都相同。

现在,问题

有什么方法可以强制使用特定字体的特定行距吗?我应该研究一下自由类型图书馆?或者西弗特? 任何想法都值得赞赏。

答案1

解决方案可能是使用文件scaleHeight中的资源 .Xresources描述 作为:

调整行距

文本行有时会太近,或者看起来间距太大。例如,使用 DejaVu Sans Mono 时,低下划线字形可能会与 CJK 字形或下一行中的光标块相邻。行距(印刷工称为行距)可以使用以下资源进行调整,例如加宽间距:

XTerm.scaleHeight: 1.01

有效值范围为 0.9 至 1.5,默认值为 1.0。

我建议尝试看看最低限度是否足够:

XTerm.scaleHeight: 0.9

如果有必要并且 XTerm 能够接受的话,您可以尝试低于该值。

相关内容