我有一个 C 应用程序,其用户界面依赖于 Motif 2.2(我相信是 OpenMotif)。问题在于:
- 字体很难看
- 有时(取决于 CentOS 版本)它们在默认用户界面中不显示粗体/斜体
- 字体选择弹出窗口中的可用字体列表也受到操作系统中安装的字体的严格限制
- 此外,无论程序是从远程 X 会话 (ssh -X) 运行还是在本地 KDE 窗口管理器中运行,字体选择弹出窗口中的可用字体列表都是不同的。
我一直在阅读诸如https://www.freebsd.org/doc/handbook/x-fonts.html但我无法理解这种行为。
换句话说,我怎样才能:
- 拥有我的程序中可用字体的完整列表(通过远程 X 会话和本地窗口管理器执行)
- 具有一致的粗体/斜体行为
- 有更好看的字体(可能有别名),但这是一个小问题。
答案1
旧版本的 Motif 不支持 XFT(矢量字体),而仅支持位图字体。如果某些尺寸或样式(斜体、粗体)的位图字体缺失,则不会显示。
如果可能,您应该切换到 Motif 2.3,它支持 XFT 抗锯齿字体。
https://sourceforge.net/projects/motif/
以下是有关如何在项目中使用 XFT 字体的说明。非常简单,不需要修改源代码,只需要资源文件就可以完成。
http://www.motifzone.net/files/documents/Fonts_UTF-8_WhitePaperv6.pdf
https://sourceforge.net/p/cdesktopenv/wiki/FontsWithXFT/
XFT 字体渲染器的一大优点是它的字体选择更加强大;如果未安装特定字体,它将尝试选择类似的字体,并且始终显示某种字体。如果系统中未安装指定的字体,核心 X 字体协议将完全失败。