您如何知道用于XTerm * faceName或xterm -fa <NAME>的X11字体的正确名称?


17

我正在使用Mac OS X 10.8和XQuartz 2.7.2。我已经下载了几种TrueType字体并将其放置*.ttf/Users/<name>/.fonts目录中。在运行XQuartz时,fonts.dir将创建多个文件,包括。对于我安装的每种字体,此文件具有各种编码的X11字体名称,等等。

我的麻烦在于,我无法始终“弄清楚” 输入xterm -fa <NAME>.Xresources XTerm*faceName输入中使用的正确名称。对于某些字体,fonts.dir文件中详细X11字体名称中列出的核心字体名称有效,而对于其他字体则无效。


1
如果有帮助:xterm(1)FreeBSD 10.2手册页包含有关信息-fa以及faceName资源。
Graham Perrin

Answers:


23

以下一线通常可以帮助我找到正确的字体名称:

$ fc-list | cut -f2 -d: | sort -u

特别是对于像“ IPAX0208Mincho”这样的日语字体,我永远无法猜出正确的名称。如果您不介意打字,您甚至可能更喜欢

$ fc-list | cut -f2 -d: | sort -u | less -r

获取页面输出。


5

您可以使用xfontsel来获取正确的名称:

$ xfontsel

在此处输入图片说明

选择所需的字体,然后单击“选择”按钮。这会将字体名称复制到剪贴板。使用该名称运行xterm。例如:

$ xterm -font -adobe-helvetica-*-r-normal-*-12-120-*-*-*-*-*-*

无法使用“ -fa”使其在我的系统(Linux)上工作,但“ -font”有效。


1
是的,我知道使用xfontsel来获取X11字体名称,并使用xterm -font来选择它。奇怪的是,对于某些字体,我可以使用xterm -fa <简单字体名称>,并且在其他字体上不能正常工作。我认为您必须对<简单字体名称>进行非常具体的拼写,因为如果我在可行的地方使用一种字体并更改一个字母,它将不再起作用。因此,我的基本问题是如何系统地确定“正确的” <简单字体名称>,以便xterm -fa起作用。
杰森·沃尔多普

@JasonWaldrop啊。在那种情况下,我很沮丧。
terdon 2012年

如果有帮助(来自手册页):“…尽管xfd接受“ -fa”选项表示FreeType字体),则xfontsel并未得到类似的扩展……”
Graham Perrin

@JasonWaldrop您可能对上面的评论感兴趣。
terdon


0

缺少的是fonts.alias文件中的条目:

/usr/share/X11/fonts/75dpi/fonts.alias

该文件的作用是为已安装的X Window字体提供简称(“别名”)。当您尝试使用文件中没有的短名称时,启动xterm时会出现以下行为:

lansdale:~> xterm -xrm \*font:courr12
xterm: cannot load font "courr12"

(xterm确实可以使用默认的不同字体运行)

fonts.alias由于X11字体名称的长度过长,因此存在该文件。例如,courr12是以下各项的简称:

-adobe-courier-medium-r-normal--12-120-75-75-m-70-iso10646-1

[长名称实际上是14个不同的可编辑字段,用短划线/连字符缝合在一起。运行程序xfontsel来查看它们;它将以所有带有星号的字段开始,表示未设置为特定的内容。]

文件中的每一行都以短名称(别名),空格开头,然后是其指向/引用的长名称。这样,您不必一直使用长名称,只需设置别名并使用它即可。在文件中添加新行时,您可以决定简称为什么,只有完整的X11名称必须在系统上安装字体文件。

当我在1990年代初次尝试使用Unix系统时,我遇到了courr12,后来又想为我的xterms设置字体(Courier'Roman'size 12)。在HP / UX和Solaris,该fonts.alias文件已经有了courr12,所以我只是把"XTerm*font: courr12"我的.Xdefaults文件,一切都将正常工作。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.