8.7 系统字体替换

GUI 图形界面字体

良好的字体配置对于多语言环境(特别是中文)的正确显示至关重要。本节将介绍如何在 FreeBSD 系统中配置系统字体,包括图形界面字体和控制台字体的配置方法。

首先提取 Windows C:\Windows\Fonts 目录下的所有 .ttf.ttc 字体文件。对于 macOS 的字体,需要进行特殊处理,尽管其文件格式也为 .ttf

为便于管理新字体,创建一个目录存放 Windows 字体:

# mkdir -p /usr/local/share/fonts/WindowsFonts

将字体文件复制到 WindowsFonts 目录即可:

# chmod -R 755 /usr/local/share/fonts/WindowsFonts   # 设置 Windows 字体目录及其内容的权限为 755
# fc-cache                                           # 刷新字体缓存
/usr/local/share/
└── fonts/
    └── WindowsFonts/ # Windows 字体存放目录

TTY 中文控制台

FreeBSD 的新型终端 VT 原生支持 CJK 字符集(CJK 指中文、日文、韩文三国文字的统称,即中日韩统一表意文字),只需加载字体即可显示中文。

本文基于 FreeBSD 14.2 RELEASE。

字体格式为 .fnt(不是码表加 PNG 图片,而是二进制字体文件),使用命令切换控制台字体为 test.fnt:

$ vidcontrol -f test.fnt

FreeBSD 基本系统提供了一个工具,可将 bdf 或 hex 格式转换为 fnt 文件:

  • 示例:

未加入字体的 tty

技巧

若上述链接失效,请访问 https://github.com/FreeBSD-Ask/fnt-fontsarrow-up-right 下载字体。

设置完成后的 tty

上述命令为临时生效,若需永久生效,应将其加入 /etc/rc.conf 文件:

故障排除与未竟事宜

当前尚不清楚如何手动生成中文字体的 fnt 文件

https://github.com/usonianhorizon/vt-fntarrow-up-right 提供的方法较难理解,可生成 bdf 文件,但会出现文中相同的报错。该项目探索了 FreeBSD 控制台字体的生成方法。文中提到的软件 FontForge 提供 Windows 版本,下载地址为 https://fontforge.org/en-US/downloads/windows-dl/arrow-up-right,该页面提供 FontForge 字体编辑工具的 Windows 版本下载。

参考文献

课后习题

  1. 从 Windows 系统提取字体文件并在 FreeBSD 中配置,测试多个 GTK 和 Qt 应用程序的字体显示效果。

  2. 下载 bdf 或 hex 格式的字体文件,使用 vtfontcvt 工具将其转换为 fnt 格式,在控制台中测试显示效果。

  3. 尝试使用第三方工具(如 vt-fnt)生成中文字体的 fnt 文件,验证其在 FreeBSD 控制台中的显示效果。

最后更新于