Как включить прописные формы после заглавных букв в OpenType

Актуально на 22 июля 2026 года.
Чтобы включить прописные формы после заглавной буквы, сначала определите нужный сценарий: для обычного слова с первой заглавной и последующей капителью используется функция smcp, для текста, набранного целиком заглавными, — c2sc вместе с smcp. Ниже показано, как подготовить глифы, прописать OpenType-функции, подключить их в CSS и проверить результат.
Что именно означает «прописные формы» в OpenType
В русской типографике слово «прописные» обычно означает заглавные буквы. Однако в запросах про OpenType под «прописными формами после заглавных» нередко подразумевают капитель — малые заглавные, или small caps. Это отдельные глифы, нарисованные как уменьшенные версии прописных букв, а не просто уменьшенные обычные заглавные.
Для связки «первая буква крупная, остальные буквы капителью» не существует отдельного универсального тега «после заглавной». Обычно дизайнер применяет smcp ко всему слову: строчные символы превращаются в малые заглавные, а исходная первая прописная сохраняется полноразмерной. Если же исходная строка полностью набрана заглавными, применяется c2sc, который заменяет обычные прописные на малые.
Какая OpenType-функция нужна для вашего сценария
- smcp, Small Capitals, заменяет строчные буквы на капительные. Это основной выбор для слов вроде «OpenType», где первая заглавная должна остаться крупной.
- c2sc, Small Capitals From Capitals, заменяет прописные буквы на капительные. Функция нужна для строки вроде «OPENTYPE», если весь текст должен стать малой капителью.
- case, Case-Sensitive Forms, подставляет знаки, рассчитанные на соседство с прописными буквами: например, верхние варианты скобок, кавычек или математических символов.
- cpsp, Capital Spacing, меняет межбуквенные интервалы в тексте, набранном прописными. Она не создаёт капитель и не заменяет начертания букв.
- locl, Localized Forms, используется для языковых вариантов глифов. Она важна для кириллицы и не является заменой smcp или c2sc.
Что подготовить до настройки функций
Для корректной функции понадобятся обычные прописные и строчные глифы, а также отдельные капительные формы. Названия глифов зависят от редактора и проекта: часто применяются суффиксы вроде .sc, но сам суффикс не включает функцию автоматически. Важны реальные соответствия между исходными символами и глифами, которые должен получить шейпер.
Капитель должна быть спроектирована как самостоятельный набор. Простое масштабирование прописных обычно даёт слишком тонкие штрихи, слабый контраст и неправильные пропорции. Проверьте высоту малых заглавных относительно x-высоты шрифта, толщину вертикалей, ширину знаков, диакритику, цифры и знаки пунктуации.
- Создайте капительные формы для всех поддерживаемых языков, а не только для базовой латиницы.
- Согласуйте высоту, насыщенность и ритм капительных букв между собой.
- Подготовьте капительные варианты диакритических знаков и комбинируемых последовательностей.
- Проверьте цифры, валютные знаки, скобки и кавычки в окружении малой капители.
- Убедитесь, что таблица Unicode корректно связывает символы с нужными глифами.
Как настроить smcp для слова с первой заглавной
Шаг 1. Создайте соответствия строчных и капительных глифов
Составьте пары: строчная a должна получать капительную форму a.sc, строчная б — б.sc и так далее. Это только пример системы именования: в конкретном шрифтовом редакторе имена могут отличаться. Важно, чтобы каждая строчная буква имела правильную замену, а отсутствующие символы не подменялись случайными глифами.
Шаг 2. Добавьте функцию smcp
В feature-файле логика может выглядеть так: feature smcp { sub @lowercase by @smallcaps; } smcp;. Здесь @lowercase и @smallcaps — классы глифов одинаковой длины, составленные в одинаковом порядке. Если редактор формирует функцию автоматически, проверьте сгенерированный код и убедитесь, что замены не затрагивают прописные буквы.
Шаг 3. Проверьте применение к смешанному регистру
Наберите тестовое слово с одной начальной прописной и несколькими строчными, например «OpenType» или «Типографика». При включённой функции smcp первая буква должна остаться в обычной высоте прописной, а последующие строчные — перейти в капитель. Если первая буква тоже уменьшилась, вы применили не тот режим или включили c2sc к исходному тексту.
Как включить капитель для текста из одних заглавных
Когда текст уже набран заглавными буквами, smcp не поможет: функция ищет строчные символы, которых в строке нет. В этом случае добавьте c2sc. Пример логики: feature c2sc { sub @uppercase by @smallcaps; } c2sc;. Класс @uppercase должен содержать прописные глифы, а класс @smallcaps — соответствующие малые заглавные.
В пользовательских интерфейсах и CSS режим «все малые прописные» обычно должен включать обе функции: smcp для строчных символов и c2sc для прописных. На уровне CSS предпочтительнее использовать font-variant-caps: all-small-caps. Низкоуровневый вариант font-feature-settings: «smcp», «c2sc» применяйте для точного контроля, когда поддержка браузера и задача проекта это допускают.
Как реализовать поведение только после первой заглавной
Если требуется автоматически превращать строчные буквы в капитель только после первой прописной в каждом слове, одной стандартной функции smcp недостаточно. OpenType-функции работают с заменами глифов, но не всегда надёжно определяют смысл слова, границы предложений и языковые правила. Такое поведение можно попытаться реализовать контекстными заменами, однако оно будет зависеть от движка формирования текста.
Практически безопаснее разделить задачу между шрифтом и версткой. В шрифте создайте качественные smcp и c2sc, а включение нужного режима выполняйте на уровне выделения слова, текстового стиля или CSS-класса. Такой подход предсказуем в макетах, веб-интерфейсах и экспортируемых документах и не меняет регистр текста неожиданным образом.
Как учесть case и интервалы в заголовках
Функция case нужна, когда рядом с прописными должны использоваться специальные формы знаков. Например, обычный знак плюс, скобка или кавычки могут иметь вертикальное положение и пропорции, рассчитанные на строчные буквы. При включении case шейпер выбирает альтернативные case-sensitive формы, если они предусмотрены гарнитурой.
Для заголовков из прописных также может понадобиться cpsp. Она задаёт отдельную настройку межбуквенного расстояния, потому что полноразмерные заглавные часто требуют другого ритма, чем смешанный текст. Не подменяйте cpsp ручным трекингом во всех случаях: ручной интервал может быть уместен в конкретном макете, но не заменяет предусмотренную шрифтом функцию.
Пошаговая проверка OpenType-файла
- Откройте шрифт в редакторе и убедитесь, что капительные глифы существуют для всех нужных символов.
- Соберите шрифт с включёнными функциями smcp и c2sc, а при необходимости также case и cpsp.
- Проверьте таблицу GSUB: в ней должны присутствовать корректные замены для выбранных тегов.
- Протестируйте смешанный регистр, строку из одних заглавных, кириллицу, латиницу, цифры, диакритику и пунктуацию.
- Откройте шрифт минимум в одном графическом редакторе, текстовом редакторе и браузере.
- Сравните результат в статическом и переменном вариантах шрифта, если гарнитура выпускается в двух форматах.
- Проверьте экспорт в PDF и убедитесь, что при передаче файла включённые замены не исчезают.
Практический пример для веб-страницы
Предположим, в интерфейсе есть класс для подписей, где нужно сохранить первую заглавную букву и уменьшить остальные. Для такого сценария задайте элементу режим small-caps через CSS-свойство font-variant-caps: small-caps. Браузер запросит у шрифта функцию smcp, поэтому гарнитура должна содержать соответствующие капительные глифы и корректную таблицу GSUB.
Для коротких надписей, которые всегда вводятся в верхнем регистре, используйте режим all-small-caps. Он предназначен для преобразования и строчных, и прописных символов в малую капитель. Если визуальный результат отличается от макета, сначала проверьте наличие c2sc, затем размер капительных глифов, их насыщенность и межбуквенный интервал.
Частые ошибки при создании капители
- Включают c2sc вместо smcp для смешанного регистра и неожиданно уменьшают первую заглавную букву.
- Создают капитель обычным масштабированием прописных без коррекции толщины штрихов и пропорций.
- Добавляют глифы с суффиксом .sc, но не прописывают замены в GSUB, поэтому приложение их не видит.
- Забывают о кириллице, диакритике, знаках валюты и пунктуации, из-за чего строка выглядит неоднородно.
- Полагаются только на font-feature-settings и не проверяют, какие функции реально поддерживает текстовый движок.
- Пытаются решить задачу капители через изменение регистра текста, хотя регистр и визуальная OpenType-замена — разные уровни.
- Проверяют шрифт только в одном приложении и принимают локальную особенность его шейпера за универсальное поведение.
Чеклист перед выпуском шрифта
- Определите, нужен ли режим smcp, c2sc или их сочетание.
- Проверьте, что первая прописная в смешанном слове сохраняет полноразмерную форму.
- Сверьте высоту, толщину и ширину всех капительных глифов.
- Добавьте кириллические формы, если шрифт поддерживает русский язык.
- Проверьте функции в макете, браузере и экспортированном PDF.
- Убедитесь, что case и cpsp включаются отдельно и не меняют капитель без необходимости.
- Протестируйте короткие слова, длинные заголовки, цифры, кавычки и диакритику.
- Зафиксируйте ожидаемое поведение для пользователей шрифта в документации.
Часто задаваемые вопросы
Как сделать первую букву большой, а остальные — капителью?
Примените функцию smcp к слову со смешанным регистром. Она заменит строчные символы на капительные, но исходную заглавную букву оставит полноразмерной. Если текст предварительно переведён в верхний регистр, потребуется c2sc или режим all-small-caps.
Чем smcp отличается от c2sc?
smcp превращает строчные буквы в малые заглавные, а c2sc превращает в них обычные прописные. Поэтому smcp подходит для смешанного текста, а c2sc — для уже набранных заглавными слов и надписей. Для полного режима all-small-caps обычно нужны обе функции.
Можно ли включить капитель только средствами CSS?
Да, если шрифт содержит нужные OpenType-функции. Для смешанного регистра используют font-variant-caps: small-caps, а для преобразования обоих регистров — font-variant-caps: all-small-caps. CSS не создаёт качественные капительные глифы сам по себе: он только запрашивает их у шрифта или использует доступный механизм замены.
Почему c2sc не работает в моём шрифте?
Чаще всего функция отсутствует в таблице GSUB, классы прописных и капительных глифов составлены неправильно или приложение не активирует тег c2sc в выбранном режиме. Проверьте сборку шрифта, соответствия символов и результат в нескольких программах. Также убедитесь, что тестовая строка действительно содержит прописные символы.
Нужно ли создавать отдельные капительные формы для кириллицы?
Да, если гарнитура поддерживает кириллицу. Латинские капительные глифы нельзя автоматически считать заменой русских букв: у кириллицы собственные очертания, пропорции и диакритические знаки. Отсутствие кириллических форм приведёт к смешению разных визуальных систем или к пропускам в строке.
Что делает функция cpsp?
cpsp настраивает интервалы между прописными буквами и не заменяет их начертания. Она полезна для заголовков, аббревиатур и других фрагментов верхнего регистра, если дизайнер предусмотрел специальный ритм. Для капители нужны smcp и c2sc, а не cpsp.
Вывод и следующий шаг
Корректная настройка прописных и капительных форм начинается с точного определения сценария. Используйте smcp для строчных после полноразмерной заглавной, c2sc для преобразования исходных прописных, а case и cpsp подключайте только для знаков и интервалов. После сборки обязательно тестируйте шрифт в разных текстовых движках.
Если вы хотите создать собственную гарнитуру с капителью, кириллицей и OpenType-функциями, начните проект в fontgenerator.ru. Подготовьте набор символов, проверьте характер букв и настройте функции так, чтобы шрифт одинаково уверенно работал в макетах, документах и веб-интерфейсах.