IPAK

Процесс

Как проверяется шрифт

Что и зачем проверяется в рабочем шрифте Ipak Davlat перед выпуском: автоматические проверки, четыре направления проверки, тест подстановки на реальных словах и замер вместо оценки на глаз.

Ipak Davlat — рабочий шрифт библиотеки Ipak. Он построен на открытом шрифте Overpass, к которому добавлен узбекский слой: знаки ʻ и ʼ, кернинг кириллицы с Ў Қ Ғ Ҳ, буквы Ö Ğ Ş Ç, варианты для табличек. Прежде чем выложить шрифт, его проверяют. Ниже — что именно проверяется, зачем и как.

Правило выпуска

Шрифт выпускается, только когда две независимые проверки подряд не нашли ничего, что нужно исправлять. Если после проверки что-то поправили, следующая начинается с нуля.

Не каждое замечание мешает выпуску. Пожелания «на будущее» записываются отдельно и переходят в следующую версию. Мешает только ошибка, без исправления которой шрифт нельзя выпускать: неверный знак, слипание букв, сломанная сборка.

Автоматические проверки

Сначала шрифт проходят программы. Они не оценивают красоту, зато не пропускают технических ошибок.

  • Font Bakery — открытый набор проверок шрифта: имена и метрики в файле, наличие нужных знаков, корректность таблиц. У Ipak Davlat замечания, которые остались, относятся к основе Overpass, а не к узбекскому слою.
  • OTS (OpenType Sanitizer) — проверка, через которую браузеры Chrome и Firefox пропускают веб-шрифты перед загрузкой. Если OTS отвергнет файл, сайт его просто не покажет. Ipak Davlat проходит её без замечаний.

Четыре направления проверки

Программы не скажут, читается ли табличка с другого конца зала. Поэтому шрифт смотрят люди, каждый со своей задачей.

Направление Что смотрит
Типографика отступы между буквами, кернинг, знаки ʻ ʼ в сочетаниях, ровность набора
Узбекский язык правильные символы, орфография примеров, подстановка знаков, буквы Ö Ğ Ş Ç и кириллица
Вывески и навигация читаемость прописными, издалека и мелким кеглем; стрелки, цифры, макеты табличек
Техника и лицензия сборка, автоматические проверки, имена в файле, соблюдение лицензии основы, точность текста на странице шрифта

Проверяющий получает шрифт, страницу-образец и критерии. Что и почему правилось раньше, ему не рассказывают: так взгляд остаётся свежим и не привыкает к старым ошибкам.

Макет табло аэропорта, набранный Ipak Davlat
Макет табло аэропорта, набранный Ipak Davlat: стрелки, цифры и средняя точка проверяются в составе таблички, а не по отдельности Ipak; шрифт — SIL OFL 1.1 · CC BY 4.0 · Ipak

Что находит такая проверка

Примеры замечаний, которые проверка находила в Ipak Davlat:

  • Средняя точка без места. В основе «·» была помечена как надстрочный знак и садилась на предыдущую букву: «5·10» читалось как «510». Подробно — в статье «Вывеска издалека».
  • I и l, O и 0. На табличке их не различить издалека. Появились l с хвостиком и набор с перечёркнутым нулём.
  • Подстановка в чужих языках. Английское King's превращалось в Kingʻs. Для английского, немецкого, французского, русского и ряда других языков подстановку выключили, а для 's в конце слова сделали исключение.
  • Неразмеченный текст на сайте. Если язык страницы не указан, браузер берёт язык интерфейса, и подстановка не срабатывает. Образцы на портале размечены как узбекские.
  • Стрелки разной ширины и высоты. Стрелки нарисованы заново из одного контура, с общим центром.

Самые коварные ошибки появляются не в основе, а в собственных исправлениях. Пример — правило для ng. В узбекском ng — одна буква, и после неё в конце слова знак ʻ не нужен: ‘tong’ не должно становиться ‘tongʻ. Первое исключение для этого случая оказалось слишком широким и сломало qoʻngʻiroq, changʻi и toʻngʻich — слова, ради которых подстановка и существует. Другой пример: l с хвостиком сначала заменила сам рисунок l, и вместе с ней хвост получили ĺ ļ ľ и лигатура fl, которые от этого слиплись с соседями. Теперь хвостатая l — отдельный знак.

Тест на реальных словах

Чтобы такие ошибки не возвращались, подстановка проверяется тестом. В нём записаны слова так, как их набирают с обычной клавиатуры, язык текста и то, что должен показать шрифт. Например, qo'ng'iroq должно стать qoʻngʻiroq, ‘tong’ — остаться ‘tong’, а английское King's в тексте, размеченном как английский, не меняется. Тест набирает каждое слово движком HarfBuzz — тем же, что работает в браузерах, — в обоих начертаниях и сравнивает выбранные знаки с ожидаемыми.

Правило простое: каждое найденное замечание о подстановке становится новой строкой теста, и тест запускается после каждой сборки.

Слева — текст, набранный обычной клавиатурой. Справа — что показывает Ipak Davlat Bold с подстановкой знаков
Слева — текст, набранный обычной клавиатурой. Справа — что показывает Ipak Davlat Bold с подстановкой знаков Ipak; рендер HarfBuzz из IpakDavlat-Regular.ttf и IpakDavlat-Bold.ttf v0.1; шрифт — SIL OFL 1.1 · CC BY 4.0 · Ipak

Тест закрепляет и известное ограничение. Заимствование на -g в кавычках, например 'pedagog', получает ʻ на конце: по набранным символам его не отличить от узбекского bogʻ. Отличить их можно только по словарю, а шрифт словаря не знает. Тест следит, чтобы это поведение не менялось незаметно.

Замер вместо оценки на глаз

Спорные места решаются цифрами. При проверке было замечание: знак ʻ почти касается G, около 1 % кегля. Если бы это подтвердилось, шрифт нельзя было бы выпускать.

Пару измерили. Буквы отрисовали в растр крупно, 2000 единиц на кегль, и посчитали кратчайшее расстояние между контурами G и знака. Вышло 145 единиц в Regular и 119 в Bold, то есть 7,3 % и 6,0 % кегля. Независимый замер другим способом дал близкие числа: 7,8 % и 7,0 %. Порог, который предлагался в самом замечании, выполнен с запасом. Знак стоит близко к G намеренно: он должен читаться частью буквы Gʻ, а не отдельной кавычкой.

Замечание отклонили, а вместе с решением записали числа и способ замера.

Знак ʻ рядом с G в Ipak Davlat Bold. Красная линия — кратчайшее расстояние между контурами, около 6 % кегля
Знак ʻ рядом с G в Ipak Davlat Bold. Красная линия — кратчайшее расстояние между контурами, около 6 % кегля Ipak; рендер HarfBuzz из IpakDavlat-Bold.ttf v0.1; шрифт — SIL OFL 1.1 · CC BY 4.0 · Ipak

Правила, которые из этого следуют

  1. Пока шрифт проверяют, файл не меняют. Все проверяющие смотрят одну и ту же сборку. Правки вносятся после.
  2. Каждая правка подстановки — со строкой в тесте.
  3. Числа на странице шрифта берутся из самого шрифта. Страница собирается скриптом перед публикацией, и такие числа, как количество пар кернинга, он считает сам, а не переписывает вручную.
  4. Пожелания отдельно от правок. То, что не мешает выпуску, ждёт следующей версии.

Итог

Проверка шрифта — это не одна экспертиза, а несколько слоёв: программы ловят технические ошибки, люди с четырёх сторон смотрят типографику, язык, таблички и лицензию, тест на реальных словах не даёт старым ошибкам вернуться, а спорные места решает замер. Самые серьёзные ошибки обычно появляются в собственных исправлениях — поэтому тест и правило «не трогать файл, пока его проверяют» важнее любой внимательности.

Источники

Инструменты проверки: Font Bakery, OpenType Sanitizer (OTS), HarfBuzz; описание фичи calt — спецификация OpenType; основа шрифта — Overpass. Замеры и тест — собственные, на сборке Ipak Davlat v0.1, октябрь 2026 года.

Ссылки: