我在 urxvt 或 xterm 下查看某些 unicode 符号时遇到了麻烦。我使用的字体是Source Code Pro for Powerline
通过 powerline fonts repo 安装的。我的字体.Xresources
包含以下内容:
9 URxvt.font: xft:Source\ Code\ Pro\ for\ Powerline:pixelsize=22,xft:PowerlineSymbols
10 URxvt.scrollBar: false
11
12 Xft.dpi: 150
13 Xft.antialias: true
14 Xft.rgba: rgb
15 Xft.hinting: true
16 Xft.hintstyle: hintslight
17
18 XTerm*selectToClipboard: true
19 XTerm*termName: xterm-256color
20 XTerm*locale: true
21 XTerm*metaSendsEscape: true
22 UXTerm*faceName: Source Code Pro for Powerline:style=Medium
23 UXTerm*faceSize:10
但在以下情况下,我仍然会遇到奇怪的行为
$TERM
输出rxvt-unicode-256color
跑步urxvt --help 2>&1 | grep options:
回报iso14755
,,unicode3
等等frills
。
所以我不确定为什么我还是看不到这些 unicode 符号,尽管我已经了解了所有基础知识?这种情况发生在整个系统,因为我在 Firefox 中也看不到某些符号,所以我认为这一定是字体问题。
提前致谢!
答案1
为了获得在 urxvt 上需要的字形,我在这里所做的就是在字体列表中添加更多字体:
URxvt.font: xft:Ubuntu Mono:pixelsize=18:antialias=true:hinting=true,\
xft:Source Code Pro:pixelsize=18:style=medium:antialias=true,\
-*-unifont-*-*-*-*-*-*-*-*-*-*-*-*
但它还不够完美。我仍然无法让此文件中的所有内容正确显示:http://www.cl.cam.ac.uk/~mgk25/ucs/examples/UTF-8-demo.txt
到目前为止,对我经常使用的大多数 unicode 字形最有帮助的是将 Unifont 纳入列表中。我希望它能对你有所帮助。
至于 xterm,它不支持多种字体。
为了发现哪种字体提供了特定的字形,我使用 gucharmap(至少在 Linux 发行版上可用),点击Ctrl-f
,C-s-u <unicode codepoint>
(例如:C-s-u2713
✓),然后右键单击找到的字形,应用程序会显示用于呈现该特定字形的字体的名称。
答案2
Fernando Basso 的回答已经给了我很大的帮助。然而,正如他指出的那样,我仍然无法让所有的字形都起作用。尤其是表示航空公司线路的符号(㏑)直到我添加了ttf 版本Unifont 的。
ttf 版本可以在 Debian 上安装apt install ttf-unifont
(在其他发行版中可能是一个不同的软件包名称)。之后,我将 ttf 版本的 Unifont 作为额外条目添加到我的~/.Xdefaults
:
URxvt.font: xft:Hack:pixelsize=18,\
xft:DejaVu Sans Mono:pixelsize:18,\
xft:Unifont:pixelsize:16,\
-*-unifont-*-*-*-*-*-*-*-*-*-*-*-*
如您所见,可以加载位图和 ttf 版本。