Проверка проблем со шрифтами OpenType - PullRequest
0 голосов
/ 19 января 2019

Наконец-то удалось получить несколько сообщений об ошибках при создании моего собственного шрифта. Это:

  • kATSFontTestMessageTextKey sfnt: шрифт содержит данные 'sfnt', но не распознает данные глифа.
  • kATSFontTestMessageTextKey hhea: ascent (200) меньше 40,00 их (1000)
  • kATSFontTestMessageTextKey hhea: спуск (100) больше или равен нулю
  • kATSFontTestMessageTextKey 'name': имя PostScript (foo) имеет недопустимую комбинацию платформы / скрипта (0, 4)
  • kATSFontTestMessageTextKey 'name': таблица не имеет имени PostScript с необходимыми сочетаниями платформы / сценария / языка 1/0/0 или 3/1/1033.
  • kATSFontTestMessageTextKey hmtx: глиф 1 имеет ширину 90; должно быть ноль

Хотите знать, что нужно сделать для этого на высоком уровне. В основном это name. hhea - "незначительные" ошибки, поэтому шрифт может все еще работать. sfnt Я не уверен, что это из-за того, что имя включено неверно, или потому что мои шрифты - это только кривые, которые не могут закрыть . Фактически, я не думаю, что они закрываются, поскольку я не строил это как контуры, я не думаю. Так интересно, может ли это быть проблемой.

Если я попытаюсь просто добавить запись name с платформой 1 (mac), сценарием 0, языком 0, валидатор завершит работу, поэтому больше не будет использовать. Я не уверен, почему он не примет комбинацию 0/4 (0 = платформа Unicode).

Если я добавлю 3/1/1033 name запись, я получу эту ошибку:

'имя': запись имени 1 (тип имени 6, платформа 3, сценарий 1033, язык 1) не может быть преобразована в Unicode.

Хорошо, только что он работает с 1/0/0, но теперь получите следующие дополнительные ошибки:

  • 'имя': перекрываются две записи имени: запись имени 0 (байты 66-69) и запись имени 1 (байты 66-69)
  • ... несколько похожих с разными номерами записи, например, следующее:
  • 'имя': перекрываются две записи имени: запись имени 4 (байты 66-72) и запись имени 2 (байты 69-72)

Похоже, единственное, что действительно необходимо исправить, это таблица sfnt, в которой нет хорошего сообщения об ошибке.

enter image description here

У меня там есть таблица CFF2, поэтому не уверен, что это значит.

...