Emacs24无法正确呈现字体

时间:2014-03-28 11:00:26

标签: emacs fonts archlinux

我想知道如何在GNU Emacs中获得与GVim中类似的字体渲染,如下面的屏幕截图所示。看来Emacs默认情况下渲染字体的方式较差。我尝试过安装Infinality字体补丁,但结果相同。我在Arch Linux虚拟机上运行GNU Emacs 24.3。我没有桌面环境,并且使用OpenBox作为我的窗口管理器。

我挖出的很多论坛帖子似乎暗示了Emacs过去需要修补的libxft库,但现在已经不行了。根据Emacs的说法,它已编译成--with-xft,因此不应成为问题。下面是来自两个应用程序和放大视图的屏幕截图,以突出显示渲染的差异。

emacs vs gvim rendering

1 个答案:

答案 0 :(得分:8)

根据我的经验,Emacs无法从font config或Gnome中可靠地读取字体设置,因此您可能需要更改Emacs的字体渲染设置。

值得注意的是,GVim中字体周围的彩色像素表示GVim使用子像素渲染,而Emacs中缺少这些像素表明它仅使用提示。没有子像素渲染通常会使字体看起来模糊。

找出GVims首选项

找出GVim使用的字体渲染设置。我认为它需要Gnome的标准版,所以安装Gnome Tweaktool来检查Gnome的字体设置。

告诉Emacs您的字体首选项

现在创建一个.Xresources文件,告诉Emacs这些设置。以下代表我的字体设置,根据您在Gnome Tweaktool中找到的内容进行调整:

Xft.antialias:  1
Xft.hinting:    1
Xft.hintstyle:  hintfull
Xft.lcdfilter:  lcddefault
Xft.rgba:       rgb

据我所知,Gnome Tweaktool中没有lcdfilter设置,因此请将其保留在lcddefault上。创建文件后

  1. 使用C-x C-c
  2. 退出Emacs
  3. 使用以下方式加载这些设置:

    $ xrdb -merge ~/.Xresources
    
  4. 确认已加载设置:

    $ xrdb -query | grep Xft
    Xft.antialias:  1
    Xft.hinting:    1
    Xft.hintstyle:  hintfull
    Xft.lcdfilter:  lcddefault
    Xft.rgba:       rgb
    
  5. 重新启动Emacs

  6. 现在检查字体现在是否相同。请注意,GVim可能会使用不同的字体渲染器(例如Cairo,Harfbuzz或其他任何字体),因此无论如何都会有一些细微差别。

    检查设置是否为永久性

    1. 退出桌面
    2. 再次登录
    3. 使用上述xrdb -query命令验证字体设置是否存在