无法在 XTerm 中配置字体

Unable to configure font in XTerm

在对 Xterm 进行了大量研究之后,仔细阅读了大量我已经认输的网页,并意识到这不是我自己可以解决的问题。

TrueType 与位图

  1. 选项xterm*font是否仅用于指定位图字体,*faceName是否仅用于TrueType字体?

  2. 我正在使用命令 xlsfontsfc-list 找出安装的位图和 TrueType 字体。这是正确的吗?

  3. 我想将 XTerm 字体设置为 Ubuntu 单色。这是 fc-list | grep -i ubuntu

    的输出
    Ubuntu Mono for Powerline:style=RegularForPowerline
    Ubuntu Mono for Powerline:style=Bold Italic
    Ubuntu Mono for Powerline:style=BoldForPowerline
    Ubuntu Mono for Powerline:style=ItalicForPowerline
    

并且我将 XTerm*faceName: Ubuntu Mono for Powerline:style=RegularForPowerline 添加到我的 ~/.Xresources 和 运行 xrdb -merge ~/.Xresources

xrdb -query all表示*faceName设置为Ubuntu Mono for Powerline:style=RegularForPowerline

但是,这不起作用。我在上面 missing/screwing 是什么?

编辑:几天前,在搜索了多个来源后,我终于弄清楚出了什么问题。在这里综合大家的回复:

Ubuntu Mono 是一种 TrueType 字体,TrueType 字体需要 xterm 与 FreeType 库支持一起编译。要检查 xterm 是否有这个,使用 ldd /path/to/xterm/binary 命令并查看它是否在其中显示 freetype。另一种方法是查看 xterm 是否具有 -fa 选项。

如果您的 xterm 支持 FreeType 库,请选择

  1. 位图字体,由 运行ning xfontsel -p 并使用它在退出时打印的确切字符串。

  2. TrueType 字体,使用 fc-list :scalable=true:spacing=mono: family 并使用它输出的确切字符串。

使用上述步骤之一获得字体名称后,通过 XTerm*faceName: <name of the font>

进行设置

如果您安装了一种新字体,并且当您 运行 上述命令之一时它没有显示,请使用 fc-cache -frv 重建您的字体缓存并重试。

希望这对您有所帮助;如果我遗漏了什么,请告诉我。

P.S。我使用 Ubuntu 从 here 下载的 Mono 补丁字体 我正在使用 XTerm*faceName: "Ubuntu Mono derivative Powerline"

逐点:

  1. 是的,font 资源是 X Toolkit 的标准资源设置,它只处理 XLFD (bitmap), while faceName was added long after, in applications such as xterm 以提供指定 TrueType 字体的方法(实际上是任何 fontconfig 支持的,它可以包括位图字体)。
  2. 分别是xlsfonts and fc-list programs are used for the two (XLFD and fontconfig)。
  3. 这种风格看起来……很奇怪。我从 github to my ~/.fonts directory (the zip-file link 添加了 .ttf 文件是最简单的下载方式。
  4. 我解压了下载解压我的 ~/.fonts 目录,而不是将 .ttf 文件复制到顶级目录。 fontconfig 可以处理子目录;它可能对实际文件名敏感。例如,如果我将文件复制到顶级 ~/.fonts 目录,fc-list 将显示字体文件的完整路径名(可能不正确)。
  5. fc-list 告诉我 Regular 你有 RegularForPowerline.

这里是 fc-list 的输出,寻找 "Power":

Ubuntu Mono for VimPowerline:style=Bold
Ubuntu Mono for VimPowerline:style=Bold Italic
Ubuntu Mono for Powerline:style=Bold Italic
Ubuntu Mono for Powerline:style=Regular
Ubuntu Mono for VimPowerline:style=Italic
Ubuntu Mono for Powerline:style=Bold
Ubuntu Mono for VimPowerline:style=Regular
Ubuntu Mono for Powerline:style=Italic

顺便说一下,您可以直接使用命令行 -fa 选项(当然要引用字体名称)来测试字体。我这样做了,结果看起来合理(比较常规和粗体)。