0

cairo中,字体可以通过它们的家族名称来指定,例如“HelveticaNeueLTStd”。然后,权重和样式可以定义为cairo.FONT_WEIGHT_[NORMAL|BOLD]cairo.FONT_SLANT_[NORMAL|OBLIQUE|ITALIC]定义,它们是具有整数值的常量。只有这2和3个选项是内置的。我想知道,如果家庭有更多的重量和款式,如何选择具体的重量和款式?例如 Light、Semi-bold 等。

我正在使用pycairo 1.10.0in python 2.7,尽管这些东西在任何语言中看起来都一样。

我可以通过猜测找到解决方案,所以我会回答我的问题,但我仍然想知道这是否是标准的做法。

4

1 回答 1

3

字体文件有各种名称和其他注释。在 FontForge 中,您可以在 menu 中找到这些列表Element > Font info。正如我发现cairo的那样,这里可以通过它来识别字体,TTF names > Family或者哪个是相同的WindowsString。在 Adob​​e 的 Helvetica Neue 灯的情况下,此字符串的值为'HelveticaNeueLT Std Lt'。然后选择这个名字的字体,并将倾斜和粗细设置为正常,将使用轻量级:

context.select_font_face('HelveticaNeueLT Std Lt', \
    cairo.FONT_SLANT_NORMAL, cairo.FONT_WEIGHT_NORMAL)

许多软件都可以找到字体名称。在 Linuxfontconfig上能够列出字体,以及 cairo 识别的第二列中的名称:

$ fc-list | grep HelveticaNeue
...
/usr/share/fonts/.../HelveticaNeueLTStd-Lt.otf: Helvetica Neue LT Std,HelveticaNeueLT Std Lt:style=45 Light,Regular
...
$ fc-list | sed 's/.*:\(.*,\|\s\)\(.*\):.*/\2/'
...
HelveticaNeueLT Std Lt
...
于 2015-02-25T21:06:55.823 回答