Порядковые числительные в OpenType: автоматическое оформление

Порядковые числительные в OpenType оформляются через специальную функцию ordn, которая может заменить обычные знаки на подготовленные глифы или изменить их положение. Однако шрифт не понимает грамматику русского языка: он не определяет падеж и род автоматически. Поэтому результат зависит от текста, таблиц шрифта и поддержки функции конкретным приложением.
Актуальность материала: 27 августа 2026 года.
Что такое порядковые числительные в OpenType
Порядковые числительные обозначают порядок предметов или событий: первый, второй, десятый, двадцать третий. В наборе они встречаются в датах, нумерации этапов, названиях веков, заголовках, интерфейсах и технической документации. В сокращённой записи используются формы вроде 1-й, 2-я, 5-е, 10-го или 23-м.
В OpenType для такого оформления предусмотрен тег функции ordn, от слова ordinals. Функция обращается не к числу как к математическому значению, а к последовательности символов и глифов. Если шрифт содержит нужные замены, приложение может поднять буквенное окончание, уменьшить его, изменить интервалы или использовать отдельный вариант знака.
Важно разделять автоматическое типографическое оформление и автоматическое написание числительных. OpenType может визуально обработать уже набранную последовательность, например 1st или 3-й, но не превратит 3 в слово третий, не выберет форму третьего и не исправит неправильное окончание. Такие задачи относятся к редактору текста, локализации или программной логике.
Как работает функция ordn
При наборе текста приложение передаёт движку формирования строк последовательность Unicode-символов. Движок выбирает глифы из шрифта, учитывает язык, направление письма, кернинг и активные OpenType-функции. Функция ordn обычно реализуется заменами глифов в таблице GSUB, а окончательная настройка положения и интервалов может выполняться средствами GPOS.
Упрощённая схема выглядит так: текст содержит цифру и буквенное окончание, приложение активирует ordn, шрифт находит подходящую последовательность, затем применяет заранее описанную замену. В одном шрифте это может быть уменьшенный суффикс, в другом — специальный глиф с изменённой шириной, а в третьем функция вообще не даст заметного результата, если таблица не содержит нужных правил.
Тег ordn не является гарантией автоматического включения. Одни программы предлагают функцию в панели OpenType, другие включают её через настройку числовых стилей, а некоторые не поддерживают её в конкретном режиме экспорта. Поэтому проверять нужно не только наличие тега в шрифте, но и реальное поведение в целевой среде.
ordn, superscript и другие числовые функции
Функцию ordn часто путают с верхним индексом. Верхний индекс — это общий способ уменьшить и поднять символы, тогда как ordn предназначена именно для порядковых обозначений. Если включить superscript или функцию sups, приложение может обработать все цифры и буквы как верхние индексы, включая те, которым не следует менять размер.
Для дробей используется отдельная функция frac, а для числителей и знаменателей — numr и dnom. Табличные и пропорциональные цифры управляются функциями tnum и pnum. Эти возможности могут сочетаться, но их назначение различается: ordn отвечает за порядковые формы, а не за любое уменьшенное или поднятое число.
Особенности русского языка и кириллицы
Русские порядковые числительные сложнее английских сокращений 1st, 2nd и 3rd. Окончание зависит от рода, числа и падежа: 1-й день, 1-я глава, 1-е место, 1-го участника, 1-му разделу, 1-м пунктом. Цифра сама по себе не содержит этой грамматической информации, поэтому шрифт не может надёжно выбрать нужную форму без явно набранного окончания.
Для кириллицы особенно важно заранее определить, какие последовательности должен поддерживать шрифт. Можно предусмотреть формы с дефисом, варианты окончаний в верхнем индексе, специальные интервалы между цифрой и буквами, а также локализованные глифы. Но чем больше правил добавляется в таблицы, тем тщательнее нужно тестировать пересечения функций и поведение разных движков.
Когда автоматическое оформление срабатывает
Функция может сработать, если шрифт содержит ordn, приложение умеет активировать этот тег, а исходная последовательность совпадает с правилами шрифта. Например, дизайнер набирает 1st, включает Ordinals и получает уменьшенное или поднятое окончание st. Для русской формы 3-й результат возможен только при наличии соответствующего правила для кириллических символов и дефиса.
Когда лучше не полагаться на OpenType
Не стоит рассчитывать на ordn в системах, где функция не отображается или не сохраняется при экспорте. Осторожность нужна также в динамических интерфейсах, где окончания формируются программой, в многоязычных текстах и в документах, которые будут редактироваться без исходного шрифта. В таких случаях надёжнее контролировать разметку текста или использовать отдельные стили.
Как включить порядковые формы в макете и CSS
В графических редакторах и издательских программах функцию обычно ищут в панели OpenType, разделе числовых стилей или настройках символов. Название может отображаться как Ordinals, Ordinal Forms или Порядковые числительные. После включения нужно проверить не один символ, а набор реальных строк: даты, номера глав, формы мужского и женского рода, а также разные падежи.
В веб-интерфейсах для числовых вариантов можно использовать CSS-свойство font-variant-numeric со значением ordinal. Более низкоуровневый способ — font-feature-settings со значением ordn. Первый вариант лучше выражает типографическое намерение, а второй позволяет явно управлять функцией, если это необходимо для конкретного шрифта и браузерного окружения.
CSS не решает грамматическую задачу. Разметка должна уже содержать правильную форму, например 5-й или 5-го. Если сайт получает числовые данные из базы, окончания нужно формировать в коде с учётом рода и падежа, а OpenType использовать только для визуального оформления готовой строки.
Практические примеры оформления
В англоязычном интерфейсе строка 1st может быть обработана функцией ordn так, чтобы st стало компактным верхним окончанием. Аналогично могут оформляться 2nd, 3rd и 4th. Такой сценарий относительно прост, потому что набор сокращений ограничен и не зависит от падежа.
В русском интерфейсе набор «3-й этап» требует другого подхода. Цифра 3, дефис и буква й должны оставаться грамматически корректными, а визуальный стиль может уменьшать или поднимать только окончание. Для строки «3-я глава» потребуется отдельное правило для я, а для «3-го этапа» — правило для последовательности го. Если такие правила не заложены, приложение покажет обычный текст.
В редакционном макете полезно сравнивать три состояния: обычный набор, ordn и ручную настройку символов. Если автоматическая форма выглядит слишком мелкой, теряет читаемость в малом кегле или конфликтует с кернингом, ручная корректировка может быть оправдана для единичного заголовка. Для большого массива данных предпочтительнее системное правило и единый тестовый набор.
Как заложить поддержку ordn в шрифт
Разработка функции начинается не с написания правила, а с определения сценариев использования. Нужно решить, какие языки поддерживаются, какие окончания считаются допустимыми, должен ли суффикс подниматься, уменьшаться или заменяться отдельным глифом. Для коммерческого или публичного шрифта также важно описать функцию в документации, чтобы пользователь понимал её назначение.
- Составьте перечень языков и реальных форм порядковых числительных.
- Нарисуйте отдельные варианты глифов, если обычные знаки не подходят по пропорциям.
- Определите последовательности для латиницы, кириллицы, дефиса и возможных пробелов.
- Добавьте правила функции ordn в таблицы шрифта через выбранный редактор.
- Проверьте взаимодействие ordn с кернингом, локализацией, верхними индексами и цифрами.
- Протестируйте шрифт в макете, браузере, текстовом редакторе и после экспорта в PDF.
Отдельно проверяйте отсутствие побочных замен. Правило, рассчитанное на 1-й, не должно неожиданно менять часть слова или числовой идентификатор. Тестовые строки следует размещать рядом с обычным текстом, чтобы сравнивать высоту строки, ширину блока, межсимвольные интервалы и визуальный вес буквенного окончания.
Частые ошибки при работе с порядковыми формами
Ошибки возникают как при проектировании шрифта, так и при его использовании. Большинство проблем связано с тем, что ordn воспринимают как универсальный грамматический алгоритм. На самом деле это набор типографических правил, который работает только с предусмотренными последовательностями и только при поддержке со стороны приложения.
- Ожидать, что ordn самостоятельно определит род и падеж русского числительного.
- Путать порядковые формы с верхними индексами и включать sups вместо ordn.
- Проверять только английские 1st и 2nd, не тестируя кириллицу и дефис.
- Считать наличие тега ordn доказательством поддержки функции во всех программах.
- Забывать о кернинге и получать слишком тесное или слишком широкое окончание.
- Применять автоматическую замену к числовым идентификаторам и кодам, где она не нужна.
- Не проверять результат после экспорта, хотя PDF или веб-движок может обработать функцию иначе.
Чеклист проверки шрифта и готового макета
Перед публикацией шрифта или передачей макета в производство полезно пройти короткий контрольный список. Он помогает отделить ошибку исходного текста от проблемы OpenType и не допустить расхождений между экранной версией, печатью и экспортированным файлом.
- Проверьте, присутствует ли функция ordn в техническом описании шрифта.
- Убедитесь, что функция включается в целевой программе или через CSS.
- Сравните латинские и кириллические примеры отдельно.
- Проверьте формы 1-й, 1-я, 1-е, 1-го, 1-му и 1-м.
- Оцените читаемость окончания в малом, среднем и крупном кегле.
- Проверьте переносы, кернинг, межстрочное расстояние и ширину текстового блока.
- Сравните результат на экране, в PDF и в печатном образце.
- Зафиксируйте случаи, когда оформление нужно оставить ручным.
Часто задаваемые вопросы
Что делает функция ordn в OpenType?
Функция ordn применяет подготовленные шрифтовые замены к порядковым обозначениям. Она может уменьшить, поднять, заменить или иначе позиционировать буквенное окончание рядом с числом. Функция не пишет числительное словами и не анализирует грамматику предложения.
Работает ли ordn с русскими порядковыми числительными?
Да, но только если шрифт специально содержит правила для кириллицы и нужных последовательностей. Поддержка русских форм не следует автоматически из наличия латинской функции ordn. Необходимо проверить конкретные окончания, дефисы и поведение шрифта в выбранном приложении.
Можно ли автоматически получить форму 1-го или 1-му?
OpenType может визуально обработать уже набранные строки 1-го и 1-му, если для них предусмотрены правила. Но шрифт не выбирает между этими вариантами по контексту. Правильное окончание должен сформировать автор текста, программа локализации или серверная логика.
Чем ordn отличается от верхнего индекса?
ordn предназначена для порядковых обозначений и может учитывать конкретную последовательность цифры и окончания. Верхний индекс, например sups, является общей заменой для уменьшенных и поднятых знаков. Он не знает, что перед ним порядковое числительное, и может изменить символы, которым это не требуется.
Почему функция есть в шрифте, но не видна в программе?
Приложение может не показывать ordn в интерфейсе, не активировать функцию автоматически или использовать ограниченный движок формирования текста. Иногда проблема связана с тем, что тестовая строка не совпадает с правилами шрифта. Проверьте тег, язык текста, настройки OpenType и результат в другой совместимой среде.
Нужно ли использовать ordn в каждом макете?
Нет. Функция полезна при регулярном наборе порядковых форм и единых требованиях к оформлению, особенно в больших документах и интерфейсах. Для одного заголовка ручная настройка может быть быстрее и предсказуемее, если автоматическая форма выглядит неудачно или целевая программа не поддерживает нужный тег.
Вывод
Порядковые числительные в OpenType оформляются не за счёт понимания смысла, а через заранее заданные замены и позиционирование глифов. Функция ordn особенно удобна для системного набора, но в русском языке требует явной поддержки кириллицы и не заменяет грамматическую проверку текста. Всегда тестируйте шрифт в той среде, где он будет использоваться.