长期以来,我一直在使用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中的错误吗?有没有什么办法解决这一问题?
感谢您的任何建议。
老实说,对我来说DejaVu的间距似乎不够,如果您看一下Fira的最后一个屏幕截图,那么您甚至可以看到裁剪出具有g和y等降序元素的字符。除此之外,我认为最小行高将根据某些TTF参数计算得出,因此,如果您真的要更改此值,我会考虑修改TTF(或OTF?)文件以更改字体的指标,以减少领导。
—
wvxvw 2015年
如果附加
—
jch 2015年
minspace=true
到FontConfig字体定义会发生什么?例如emacs -fn 'Fira Mono:minspace=true'
,或类似的字体名称。
这不是您想听到的,但大约一年前,我放弃了行距。取而代之的是,我选择一种自己喜欢的字体,然后设置即可
—
法律列表
:height
。Emacs实际上并不能很好地控制行之间的距离,对其进行调整只会导致更多问题。可能需要一个功能请求-例如,以像素为单位设置行之间的距离,并使其适用于所有字体。
行高是字体的属性,Emacs的渲染遵循给定的值。如果不管字体的属性如何强加一定的高度,都可能会出现裁剪字符,例如Kate中Fira Mono的屏幕截图(如wvxvw所指出)。在比例字体方面,我发现Lucida Grande Mono在空间方面效率最高,同时在小尺寸下仍可读性强(Droid Sans Mono接近,但密度较小)。
—
辣椒粉
--line-spacing=PIXELS
在命令行中使用emacs
,但是我的猜测是这没有帮助。我的水晶球告诉我,行距没有插入任何多余的像素,问题出在Emacs的字体显示上。缓冲模式有什么区别吗?(我假设您已经检查frame-parameters
了字体是什么,等等。)