我的系统是Arch Linux,带有KDE桌面环境。我了解到我的系统中有两组不同的字体。一套用于没有“X Window System”的虚拟控制台,另一套用于我的 KDE 桌面环境。 Archi Wiki 建议Fontconfig
该库告诉应用程序可用的字体以及如何呈现它们(例如抗锯齿)。另一组字体存储在 中/usr/share/kdb/consolefonts
,专门用于虚拟控制台的字体渲染。由于虚拟控制台的字形数量有限,我无法渲染 CJK 字体。然而,对于使用 X Window 系统的应用程序,更具体地说,虚拟控制台(Konsole
X-term 的替代方案)允许我渲染 CJK 字体,因为它依赖于 fontconfig 来渲染字体。我的问题是我将字体设置为 Noto MonoKonsole
,但它似乎仍然可以很好地渲染 CJK 字体。我检查了 google 并确认 Noto Mono 不包含任何 CJK 字形,那么这怎么可能呢?
所以我基本上问了两个问题。 1. 我的理解是有两组不同的字体,一组用于原始控制台,另一组用于使用 X11 的应用程序,这是真的吗? 2.Konsole
即使配置的字体不包含任何 CJK 字形,怎么可能显示 CJK 字符?
答案1
是的,你是对的。虚拟控制台使用内置字体。您可以使用该命令
showconsolefont
查看当前字体的字形表。您必须在 VGA 控制台上才能以普通用户身份使用该命令 ( Ctrl+ Alt+ F2...)Fontconfig 有一个后备命令来使用支持需要显示的字符的字体。因此,如果 Noto Mono 不支持这些字符,那么它将使用其他已安装的字体来显示它们。