3

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

TrueType 与位图

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

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

  3. 我想将 XTerm 字体设置为 Ubuntu Mono。这是的输出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

但是,这不起作用。我在这里错过了什么/搞砸了?

编辑:几天前,在浏览了多个来源后,我终于弄清楚了问题所在。在这里结合大家的回答:

Ubuntu Mono 是一种 TrueType 字体,TrueType 字体需要 xterm 编译时使用 FreeType 库支持。要检查 xterm 是否有此功能,请使用该ldd /path/to/xterm/binary命令并查看其中是否显示 freetype。另一种方法是查看 xterm 是否有-fa选项。

如果您的 xterm 支持 FreeType lib,请选择一个

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

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

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

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

希望这可以帮助; 如果我错过了什么,请告诉我。

PS 我使用的是从这里下载的 Ubuntu Mono 修补字体我正在使用XTerm*faceName: "Ubuntu Mono derivative Powerline"

4

1 回答 1

3

逐点:

  1. 是的,该font资源是 X Toolkit 的标准资源设置,它只处理XLFD(位图),而faceName在很久之后添加到应用程序中,例如xterm提供一种指定 TrueType 字体的方法(实际上是 fontconfig 支持的任何内容,其中可以包括位图字体)。
  2. 和程序分别用于两者(XLFD 和xlsfontsfontconfig fc-list
  3. 风格看起来……很奇怪。我将github.ttf中的文件添加到了我的目录中(zip 文件链接是最简单的下载方式)。~/.fonts
  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选项直接测试字体(当然,引用面名)。我这样做了,结果看起来很合理(比较常规和粗体)。

于 2015-04-22T22:50:36.107 回答