Emacs24 无法正确渲染字体

标签 emacs fonts archlinux

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

我挖出的许多论坛帖子似乎暗示 Emacs 过去使用的 libxft 库需要修补,但现在不再需要修补。根据 Emacs 已编译 --with-xft所以这不应该是一个问题。下面是两个应用程序的屏幕截图和放大 View ,以突出显示渲染的差异。

emacs vs gvim rendering

最佳答案

根据我的经验,Emacs 不能可靠地从字体配置或 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

据我所知,lcdfilter设置在 Gnome Tweaktool 中不可用,所以将其保留在 lcddefault .创建文件后
  • 使用 C-x C-c 退出 Emacs
  • 加载这些设置:
    $ xrdb -merge ~/.Xresources
    
  • 验证设置是否已加载:
    $ xrdb -query | grep Xft
    Xft.antialias:  1
    Xft.hinting:    1
    Xft.hintstyle:  hintfull
    Xft.lcdfilter:  lcddefault
    Xft.rgba:       rgb
    
  • 重启 Emacs

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

    检查设置是否永久
  • 退出您的桌面
  • 重新登录
  • 以上使用xrdb -query命令来验证您的字体设置是否存在
  • 关于Emacs24 无法正确渲染字体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22710964/

    相关文章:

    macos - Slime-repl 不在这里

    css - 在没有互联网连接的情况下使用下载的字体

    ios - 纯文本在 iOS 底部被截断,如何在 xCode 中修复?

    linux - shell 脚本 : how to use getopts to get last arguments and unhandle arguments

    javascript - 我可以将 EMACS 用于 Javascript 吗?

    r - 从 saveRDS() 语句自动写入 readRDS() 语句

    emacs - 如何在 Emacs 中突出显示选项卡

    ios - 在 Interface Builder 中使用自定义字体设计标签/ TextView

    linux - GNOME 3 中 JetBrains 的 PyCharm 窗口中的不可见文本

    android - "dlopen failed: is 32-bit instead of 64-bit"仅在测试中