从历史上看,我一直在使用Monotype Courier 新品作为我的终端字体(它可以很好地显示西里尔字符和方框绘制字符)。从旧版迁移时KOI8-R到UTF-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 能够接受的话,您可以尝试低于该值。