Ipak Davlat — рабочий шрифт библиотеки Ipak. Он построен на открытом шрифте Overpass, к которому добавлен узбекский слой: знаки ʻ и ʼ, кернинг кириллицы с Ў Қ Ғ Ҳ, буквы Ö Ğ Ş Ç, варианты для табличек. Прежде чем выложить шрифт, его проверяют. Ниже — что именно проверяется, зачем и как.
Правило выпуска
Шрифт выпускается, только когда две независимые проверки подряд не нашли ничего, что нужно исправлять. Если после проверки что-то поправили, следующая начинается с нуля.
Не каждое замечание мешает выпуску. Пожелания «на будущее» записываются отдельно и переходят в следующую версию. Мешает только ошибка, без исправления которой шрифт нельзя выпускать: неверный знак, слипание букв, сломанная сборка.
Автоматические проверки
Сначала шрифт проходят программы. Они не оценивают красоту, зато не пропускают технических ошибок.
- Font Bakery — открытый набор проверок шрифта: имена и метрики в файле, наличие нужных знаков, корректность таблиц. У Ipak Davlat замечания, которые остались, относятся к основе Overpass, а не к узбекскому слою.
- OTS (OpenType Sanitizer) — проверка, через которую браузеры Chrome и Firefox пропускают веб-шрифты перед загрузкой. Если OTS отвергнет файл, сайт его просто не покажет. Ipak Davlat проходит её без замечаний.
Четыре направления проверки
Программы не скажут, читается ли табличка с другого конца зала. Поэтому шрифт смотрят люди, каждый со своей задачей.
| Направление | Что смотрит |
|---|---|
| Типографика | отступы между буквами, кернинг, знаки ʻ ʼ в сочетаниях, ровность набора |
| Узбекский язык | правильные символы, орфография примеров, подстановка знаков, буквы Ö Ğ Ş Ç и кириллица |
| Вывески и навигация | читаемость прописными, издалека и мелким кеглем; стрелки, цифры, макеты табличек |
| Техника и лицензия | сборка, автоматические проверки, имена в файле, соблюдение лицензии основы, точность текста на странице шрифта |
Проверяющий получает шрифт, страницу-образец и критерии. Что и почему правилось раньше, ему не рассказывают: так взгляд остаётся свежим и не привыкает к старым ошибкам.

Что находит такая проверка
Примеры замечаний, которые проверка находила в 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 — тем же, что работает в браузерах, — в обоих начертаниях и сравнивает выбранные знаки с ожидаемыми.
Правило простое: каждое найденное замечание о подстановке становится новой строкой теста, и тест запускается после каждой сборки.

Тест закрепляет и известное ограничение. Заимствование на -g в кавычках, например 'pedagog', получает ʻ на конце: по набранным символам его не отличить от узбекского bogʻ. Отличить их можно только по словарю, а шрифт словаря не знает. Тест следит, чтобы это поведение не менялось незаметно.
Замер вместо оценки на глаз
Спорные места решаются цифрами. При проверке было замечание: знак ʻ почти касается G, около 1 % кегля. Если бы это подтвердилось, шрифт нельзя было бы выпускать.
Пару измерили. Буквы отрисовали в растр крупно, 2000 единиц на кегль, и посчитали кратчайшее расстояние между контурами G и знака. Вышло 145 единиц в Regular и 119 в Bold, то есть 7,3 % и 6,0 % кегля. Независимый замер другим способом дал близкие числа: 7,8 % и 7,0 %. Порог, который предлагался в самом замечании, выполнен с запасом. Знак стоит близко к G намеренно: он должен читаться частью буквы Gʻ, а не отдельной кавычкой.
Замечание отклонили, а вместе с решением записали числа и способ замера.

Правила, которые из этого следуют
- Пока шрифт проверяют, файл не меняют. Все проверяющие смотрят одну и ту же сборку. Правки вносятся после.
- Каждая правка подстановки — со строкой в тесте.
- Числа на странице шрифта берутся из самого шрифта. Страница собирается скриптом перед публикацией, и такие числа, как количество пар кернинга, он считает сам, а не переписывает вручную.
- Пожелания отдельно от правок. То, что не мешает выпуску, ждёт следующей версии.
Итог
Проверка шрифта — это не одна экспертиза, а несколько слоёв: программы ловят технические ошибки, люди с четырёх сторон смотрят типографику, язык, таблички и лицензию, тест на реальных словах не даёт старым ошибкам вернуться, а спорные места решает замер. Самые серьёзные ошибки обычно появляются в собственных исправлениях — поэтому тест и правило «не трогать файл, пока его проверяют» важнее любой внимательности.
Источники
Инструменты проверки: Font Bakery, OpenType Sanitizer (OTS), HarfBuzz; описание фичи calt — спецификация OpenType; основа шрифта — Overpass. Замеры и тест — собственные, на сборке Ipak Davlat v0.1, октябрь 2026 года.
Ссылки:
- Font Bakery — проверка шрифтов. https://github.com/fonttools/fontbakery
- OpenType Sanitizer (OTS). https://github.com/khaledhosny/ots
- HarfBuzz — движок набора текста. https://harfbuzz.github.io/
- OpenType: фича calt (Contextual Alternates). https://learn.microsoft.com/en-us/typography/opentype/spec/features_ae#tag-calt
- Overpass — открытая основа Ipak Davlat. https://github.com/RedHatOfficial/Overpass