【问题标题】:Emacs24 not rendering fonts properlyEmacs24 无法正确渲染字体
【发布时间】:2014-03-29 00:23:48
【问题描述】:

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

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

【问题讨论】:

    标签: emacs fonts archlinux


    【解决方案1】:

    根据我的经验,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 上。创建文件后

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

      $ xrdb -merge ~/.Xresources
      
    3. 验证设置是否已加载:

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

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

    检查设置是否永久

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

    【讨论】:

    • 我忘了说我没有使用 Gnome 或任何其他桌面环境,我只是在运行 OpenBox。但是,将这些 Xft 行添加到我的 .Xresources 中就可以了,谢谢。
    • @user1749222 不管你使用哪种桌面环境。作为 Gtk/Gnome 应用程序,GVim 将从 fontconfig 或 Gnome 获取其设置。
    • 要进行实验,您可以在命令行上传递 Xft 设置。这样,您可以并排放置多个 emacs 框架,以便于比较。例如emacs -xrm "Xft.hinting: 1" -xrm "Xft.hintstyle: hintmedium"。当你找到你喜欢的设置后,将它们保存到~/.Xresources
    猜你喜欢
    • 1970-01-01
    • 2015-10-06
    • 2012-08-17
    • 1970-01-01
    • 2019-07-21
    • 2015-03-10
    • 2020-07-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多