Fonts 如何从用户友好名称中获得类似X的字体名称?

Fonts 如何从用户友好名称中获得类似X的字体名称?,fonts,x11,xlib,Fonts,X11,Xlib,如果我有像“courier New”这样的字体名,我如何获得“-courier-->…”这样的名称?我对前两部分感兴趣-制造商和家庭 多谢各位 另外,我可以使用标准的Xlib函数。我不想依赖任何其他库。不幸的是,字体处理在X11中是碎片化的,您想要的是不可能的 Xlib函数XListFonts()将返回“旧的”固定大小字体列表,如“-adobe-courier-bold-o-normal--0-0-100-100-m-iso10464-1”。这就是所有的信息;只是一个名字和一堆参数 您所寻求的是

如果我有像“courier New”这样的字体名,我如何获得“-courier-->…”这样的名称?我对前两部分感兴趣-制造商和家庭

多谢各位


另外,我可以使用标准的Xlib函数。我不想依赖任何其他库。

不幸的是,字体处理在X11中是碎片化的,您想要的是不可能的

Xlib函数
XListFonts()
将返回“旧的”固定大小字体列表,如“-adobe-courier-bold-o-normal--0-0-100-100-m-iso10464-1”。这就是所有的信息;只是一个名字和一堆参数

您所寻求的是来自Freetype的函数,如
XftFontOpenName()
,其中您可以提供类似“Courier New-14:bold:斜面=斜体,斜面”的模式。但这是一种完全不同的字体呈现方式,两种字体系统之间没有任何联系


您可以使用
XftFontMatch()
查询Xft库中的字体列表,这可能会为您提供所需的信息。但是您必须使用freetype库(我认为这是一个很小的代价)。

不幸的是,字体处理在X11中是不完整的,您不可能实现所需的功能

Xlib函数
XListFonts()
将返回“旧的”固定大小字体列表,如“-adobe-courier-bold-o-normal--0-0-100-100-m-iso10464-1”。这就是所有的信息;只是一个名字和一堆参数

您所寻求的是来自Freetype的函数,如
XftFontOpenName()
,其中您可以提供类似“Courier New-14:bold:斜面=斜体,斜面”的模式。但这是一种完全不同的字体呈现方式,两种字体系统之间没有任何联系

您可以使用
XftFontMatch()
查询Xft库中的字体列表,这可能会为您提供所需的信息。但是您必须使用freetype库(我认为这是一个很小的代价)