如果我有像“Courier New”这样的字体名称,如何获得“- -courier- -*- - ...”这样的名称?我对前两个部分感兴趣——制造商和家庭。
谢谢你。
PS 我可以使用标准的 Xlib 函数。我不想依赖任何其他库。
不幸的是,字体处理在 X11 中是零散的,你想要的是不可能的。
Xlib 函数XListFonts()
将返回“旧”、固定大小的字体列表,例如“-adobe-courier-bold-o-normal--0-0-100-100-m-iso10464-1”。这就是所有的信息;只是一个名称和一堆参数。
您正在寻找的是来自 Freetype like 的功能XftFontOpenName()
,您可以在其中提供类似“Courier New-14:bold:slant=italic,oblique”的模式。但这是一种完全不同的字体渲染方式,两种字体系统之间没有任何联系。
您可以使用 查询 Xft 库以获取字体列表XftFontMatch()
,这可能会为您提供所需的信息。但是您将不得不使用 freetype 库(我认为要付出很小的代价)。