Как отредактировать/изменить значение usWeightClass TTF OS/2?

У меня есть шрифт Dosis, который я хочу использовать в качестве веб-шрифта в одном из своих проектов. Я могу преобразовать файлы TTF в WOFF с помощью Генератор веб-шрифтов Font Squirrel; пока ничего нового. Это приводит к следующему сообщению об ошибке в консоли Firefox:

загружаемый шрифт: OS/2: плохой вес: 250 (семейство шрифтов: стиль "dosis": нормальный вес: 200 растяжка: нормальный индекс src: 0) источник: http://example.com/fonts/dosis-extralight.woff2

Сообщение об ошибке ясно, и проблема ясна, но я понятия не имею, как изменить значение с 250 на 200 без изменения шрифта каким-либо другим образом. Я попытался использовать FontForge, но вновь сгенерированный файл TTF полностью отличается от исходного. Я также пытался использовать HEX-редактор, но не смог разобраться в содержимом файла.


Пробовал с «Adobe Font Development Kit для OpenType», и это WinMerge DIFF. Я не могу понять, проблема это или нет.

введите здесь описание изображения


person Fleshgrinder    schedule 09.01.2015    source источник
comment
Что вы имеете в виду под FontForge... вновь созданный файл TTF полностью отличается от исходного?? Отличается ли глиф шрифта от их оригинальных аналогов? В шрифте больше или меньше глифов?   -  person Kurt Pfeifle    schedule 09.01.2015
comment
Я использовал ttfdump и WinMerge для сравнения вывода, и он был совершенно другим. Шрифт показался мне нормальным, но тот факт, что DIFF был таким неправильным, меня напугал.   -  person Fleshgrinder    schedule 09.01.2015
comment
WinMerge для этого бесполезен. ttfdump хочет, чтобы вы понимали то, что видите...   -  person Kurt Pfeifle    schedule 09.01.2015
comment
Указывало ли ttfdump -t gsub другое количество таблиц в шрифте? Если да, то какие пропали?   -  person Kurt Pfeifle    schedule 09.01.2015
comment
Хорошо, если он хочет, чтобы я понял, и я бы хотел понять, но я этого не делаю. Попробовал это с помощью инструмента Adobe и включил в свой вопрос скриншот начала DIFF.   -  person Fleshgrinder    schedule 09.01.2015
comment
Ох... Я думал, вы профессионал или полупрофессионал в области шрифтов -- после всего, что вы сказали, сообщение об ошибке ясно, и проблема ясна...   -  person Kurt Pfeifle    schedule 10.01.2015
comment
Нет, не близко к этому. Никогда не разрабатывал шрифт сам. Меня всегда очень интересовала эта область, и с появлением @font-face ее использование увеличилось, но я все еще веб-разработчик, а не разработчик шрифтов. :)   -  person Fleshgrinder    schedule 10.01.2015
comment
Ну, сам веб-сайт для Dosis рекомендует использовать WOFF от Google... Но вы все равно хотели сгенерировать WOFF своими руками.   -  person Kurt Pfeifle    schedule 10.01.2015
comment
Это (поскольку я любопытный человек, который любит знать, как все делается), и я, честно говоря, не знал, что Google также предлагает загрузку шрифтов. Мне не нравится использовать их API (конфиденциальность, производительность и т. д.). Загрузка из Google снова предоставляет только файлы TTF, но, по крайней мере, для usWeightClass установлено правильное значение 200, а не 250.   -  person Fleshgrinder    schedule 10.01.2015
comment
Google нарушил бы некоторые лицензии на бесплатные шрифты, если бы они предлагали их использование только через API, и если бы они также не предлагали загрузки...   -  person Kurt Pfeifle    schedule 10.01.2015
comment
Используемый вами инструмент действительно говорит chechsum? (Наверное, да...)   -  person Jongware    schedule 11.01.2015
comment
Инструмент называется ttfdump и был разработан Microsoft. ;)   -  person Fleshgrinder    schedule 12.01.2015


Ответы (2)


  1. Проверьте, есть ли в вашей системе инструмент командной строки ttx. Если нет, выполните шаги 2-3. Если вы это сделаете, перейдите к шагу 4.

  2. Ознакомьтесь с этим многоплатформенным инструментом с открытым исходным кодом из его репозитория Github.

  3. Найдите инструмент ttx в папке Tools/osx или Tools/linux или Tools/win (в зависимости от того, что подходит для вашей платформы ОС).

  4. Введите ttx -h.

  5. Следуй инструкциям.

Короче говоря: Запустите ttx -v -o dosis.xml Dosis-Medium.otf. Отредактируйте сгенерированный файл XML. Выполнить ttx dosis.xml -o Dosis-Medium-modified.otf. Проверьте свой Dosis-Medium-modified.otf.

person Kurt Pfeifle    schedule 09.01.2015
comment
Это работает очень хорошо, но ttfdump вновь сгенерированного файла TTF снова немного отличается от оригинала. Я не знаю, является ли это проблемой (см. также комментарии к вопросу). Adobe также предлагает полностью работающую загрузку по адресу adobe.com/devnet/opentype/afdko.html< /а> - person Fleshgrinder; 09.01.2015
comment
Я считаю это правильным ответом, так как он позволяет редактировать значение. Тот факт, что недавно сгенерированный файл TTF немного отличается, довольно забавен, но я не могу оценить, будет ли это проблемой. Я буду использовать файл TTF из Google Fonts в соответствии с рекомендациями @ZacWolf и вами, так как мне не нужно беспокоиться о том, что я что-то уничтожил при редактировании шрифта. - person Fleshgrinder; 10.01.2015
comment
Насколько отличается немного? Контрольные суммы пересчитываются, и, возможно, порядок таблиц TTF может отличаться. В данных для каждой таблицы ничего не должно измениться (кроме того, где вы вставили свои собственные изменения). - person Jongware; 11.01.2015

Он уже существует как веб-шрифт: http://www.google.com/fonts/#UsePlace:use/Collection:Dosis

person ZacWolf    schedule 09.01.2015
comment
Это не ответ на вопрос, и я не хочу использовать Google Font API. - person Fleshgrinder; 09.01.2015
comment
Даже если вы не хотите использовать API, вы можете скачать сами файлы шрифтов... В упаковке есть шрифт 200 вес. - person ZacWolf; 09.01.2015
comment
О, вы правы, загрузите TTF с правильным usWeightClass. Спасибо, удалил отрицательный голос, так как это помогает мне решить мою первоначальную проблему, но как вы можете отредактировать значение самостоятельно? - person Fleshgrinder; 09.01.2015
comment
Быстрый поиск дает: truetex.com/ttf_edit.htm как возможный способ изменить значение веса. в таблице OS/2. По-видимому, значение является своего рода метаданными. - person ZacWolf; 09.01.2015
comment
Нет доступных загрузок для тестирования найденного вами инструмента. - person Fleshgrinder; 10.01.2015