2015-02-25 3 views
0

В cairo, шрифты могут быть указаны по их фамилии, например. 'HelveticaNeueLTStd. Затем веса и стили могут быть определены cairo.FONT_WEIGHT_[NORMAL|BOLD] и cairo.FONT_SLANT_[NORMAL|OBLIQUE|ITALIC], которые являются константами с целыми значениями. Только эти 2 и 3 варианта встроены. Мне интересно, как выбрать конкретные веса и стили в случае, если у семьи их больше? Например. Светлый, полужирный и т. Д.Как выбрать шрифты более конкретно в cairo?

Я использую pycairo 1.10.0 в python 2.7, хотя эти вещи выглядят одинаково на любом языке.

Я мог бы найти решение, угадывая, поэтому я отвечу на свой вопрос, но все же мне интересно, является ли это стандартным способом.

ответ

1

Файлы шрифтов имеют различные названия и другие аннотации. В FontForge вы можете найти их в меню Element > Font info. Здесь, как я нашел cairo, можно идентифицировать шрифт по его TTF names > Family или который является тем же самым его WindowsString. В случае с подсветкой Adobe Helvetica Neue эта строка имеет значение 'HelveticaNeueLT Std Lt'. Затем выбрать шрифт под этим именем, и установив уклон и вес нормального, будет использоваться легкий вес:

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

можно найти имена шрифтов многого программного обеспечения. В Linux fontconfig можно перечислить шрифты, а также имя во втором столбце, которое признает 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 
... 
Смежные вопросы