Как установить запасной шрифт для специальных символов в строках Pango в Windows? - PullRequest
0 голосов
/ 13 ноября 2018

Мое приложение отображает строки, используя Pango , Cairo и GTK3.Некоторые из этих строк содержат некоторые специальные символы, в том числе не в базовой плоскости Unicode.В Linux это просто работает, но в Windows он не может найти специальные символы и вместо этого отображает поле неизвестного символа.

Я использую Roboto для текста, но он не включает эти символы.Используя трюк, который я нашел здесь Я обнаружил, что в Linux базовая библиотека fontconfig переключается на Symbolica или STIX .

FC_DEBUG = 4 pango-view -q -t '{символ}' 2> & 1 |семейство grep -o ': "[^"] +' |вырезать -c 10- |tail -n 1

Я пытался установить эти шрифты на машине с Windows, но без радости.

Моя машина с Windows работает Mingw-w64 , котораяпоставляется с /etc/fonts, содержащим файлы fontconfig, но, похоже, они не работают правильно.К сожалению, pango-view, похоже, не обращает внимания на переменную среды FC_DEBUG, поэтому я не могу выяснить, что она делает.

Как мне указать fontconfig в Windows, где взять глифы для кодовых точек, которыеRoboto не предоставляет?

Обновление: Я установил AttrFallback для рассматриваемых строк как True, на тот случай, если сборки Pango трактуют это иначев Linux и Windows.Все еще не повезло.

1 Ответ

0 голосов
/ 16 ноября 2018

Я до сих пор не знаю, почему это работает по-разному в Windows и Linux, но ответ оказался скрыт в документации Pango.FontDescription.set_family:

В некоторыхиспользует pango.FontDescription, для этого поля также можно использовать список фамилий, разделенных запятыми.

Когда я добавил требуемые резервные шрифты в список, разделенный запятыми, это сработало.

...