某些字体的行距过大


13

长期以来,我一直在使用DejaVu Sans Mono作为编程字体。我还没有找到更好的字体。

但是不久前,我发现了Mozilla的Fira,它对代码看起来非常不错。因此,我决定尝试使用Emacs。

不幸的是,当我在Emacs中使用它时,行间距变大,我可以看到的行数减少了大约10条。

我已经尝试过(setq line-spacing 0)和进行不同组合,例如(set-frame-font (font-spec :name "Fira Mono" :width 'normal :height 100)),但是无论我做什么,都会保留过多的行距。(line-spacing不幸的是,不可能在Emacs中使用负值,这似乎是显而易见的解决方案。)

不过,这似乎不是字体中的错误,因为当我在Kate中以相同大小使用Fira Mono时,行间距是我认为正常的值,并且显然与DejaVu Sans的Emacs行间距相同。

这是Emacs中的错误吗?有没有什么办法解决这一问题?

感谢您的任何建议。

左: Emacs Fira Mono 右: Emacs DejaVu Sans Mono Emacs Fira Mono vs.Emacs DejaVu Sans Mono

左: Emacs Fira Mono 右: Kate Fira Mono 埃马克斯·费拉·莫诺vs凯特·费拉·莫诺


1
您可以使用尝试--line-spacing=PIXELS在命令行中使用emacs,但是我的猜测是这没有帮助。我的水晶球告诉我,行距没有插入任何多余的像素,问题出在Emacs的字体显示上。缓冲模式有什么区别吗?(我假设您已经检查frame-parameters了字体是什么,等等。)
Drew

2
老实说,对我来说DejaVu的间距似乎不够,如果您看一下Fira的最后一个屏幕截图,那么您甚至可以看到裁剪出具有g和y等降序元素的字符。除此之外,我认为最小行高将根据某些TTF参数计算得出,因此,如果您真的要更改此值,我会考虑修改TTF(或OTF?)文件以更改字体的指标,以减少领导。
wvxvw 2015年

1
如果附加minspace=true到FontConfig字体定义会发生什么?例如emacs -fn 'Fira Mono:minspace=true',或类似的字体名称。
jch 2015年

3
这不是您想听到的,但大约一年前,我放弃了行距。取而代之的是,我选择一种自己喜欢的字体,然后设置即可:height。Emacs实际上并不能很好地控制行之间的距离,对其进行调整只会导致更多问题。可能需要一个功能请求-例如,以像素为单位设置行之间的距离,并使其适用于所有字体。
法律列表

1
行高是字体的属性,Emacs的渲染遵循给定的值。如果不管字体的属性如何强加一定的高度,都可能会出现裁剪字符,例如Kate中Fira Mono的屏幕截图(如wvxvw所指出)。在比例字体方面,我发现Lucida Grande Mono在空间方面效率最高,同时在小尺寸下仍可读性强(Droid Sans Mono接近,但密度较小)。
辣椒粉

Answers:


2

Fira Mono v3.2调整了字体的行高,这使我在Emacs中可以使用它:

https://github.com/mozilla/Fira/issues/67


感谢更新。似乎好一点,但是使用Fira Mono 3.2的Emacs仍然比使用DejaVu Sans Mono的行少4条。因此,不幸的是,它仍然没有用。行间不需要更多空间;它没有给我任何好处。它所做的只是减少我在屏幕上看到的内容并使我滚动得更多,从而降低了效率并浪费了时间。:(太糟糕了,Mozilla的更多关注使字体看起来比通风使得它非常有用。
blujay

…与DejaVu Sans Mono相比,使用Consolas(例如)可以在屏幕上多显示4行。各个字体确实具有不同的固有高度(在等宽变体的情况下为宽度),这与行间距无关。将某种恶意归咎于Mozilla或Carrois(似乎主导Fira设计的铸造厂)是愚蠢的。
cemerick's

谁说过恶意?还是从什么时候起“ airy” =恶意?事实是,基本上所有与UI相关的事物目前都有增加空白的趋势。实际上,最近进行重新设计的每个大型网站都会大大增加行距。这是当前流行的。这些相同的趋势也渗入了创建这些工具的工具中。“网站上的更多空白=良好,因此编辑器中的更多空白=良好。” 这种教条主义不是恶意的,只是没有用。在防御非攻击之前,请尝试了解。
blujay 2015年

1
哦,还有,仅供参考,作品中有一个Fira代码,行距较小。希望它能成功。
blujay 2015年

但是,目前,在Emacs中似乎存在严重问题。(“评论只能编辑5分钟。”叹息。)
blujay 2015年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.