Формат OpenType
OpenType — это кроссплатформенный формат файлов шрифтов, разработанный совместно компаниями Microsoft и Adobe. Он объединяет возможности форматов TrueType и PostScript Type 1, позволяя хранить в одном файле как контурные описания символов (глифов), так и расширенные типографские функции, такие как лигатуры, кернинг, альтернативные начертания и поддержку сложных систем письменности.
История
Разработка OpenType началась в середине 1990-х годов как ответ на ограничения существовавших форматов. TrueType, созданный Apple и Microsoft, обеспечивал хорошую совместимость, но имел ограниченные возможности для сложной типографики. PostScript Type 1 от Adobe, напротив, предлагал высокое качество, но был менее гибким в плане кодировки и поддержки языков.
В 1996 году Microsoft и Adobe объявили о сотрудничестве, результатом которого стал формат OpenType. Первая версия спецификации была опубликована в 1997 году. Ключевым нововведением стала возможность использования таблиц GSUB (Glyph Substitution) и GPOS (Glyph Positioning) для замены и позиционирования глифов, что позволяло реализовывать такие функции, как контекстные замены, каллиграфические варианты и автоматический кернинг.
В 2000-х годах OpenType стал доминирующим форматом для профессиональной типографики, вытеснив как TrueType, так и PostScript Type 1. В 2007 году спецификация OpenType была принята в качестве стандарта ISO/IEC 14496-22 (MPEG-4 Part 22).
Технические характеристики
Структура файла
Файл OpenType состоит из нескольких таблиц, каждая из которых содержит определённый тип данных. Основные таблицы включают:
- cmap (Character to Glyph Index Mapping) — таблица соответствия символов (кодовых точек Unicode) индексам глифов.
- glyf (Glyph Data) — таблица, содержащая контурные описания глифов (в формате TrueType или PostScript).
- head (Font Header) — заголовок шрифта, содержащий общую информацию, такую как версия, размеры и флаги.
- hhea (Horizontal Header) — таблица горизонтальных метрик.
- hmtx (Horizontal Metrics) — таблица горизонтальных метрик для каждого глифа.
- name (Naming Table) — таблица имён, содержащая название шрифта, имя дизайнера, лицензию и другие метаданные.
- OS/2 (OS/2 and Windows Specific Metrics) — таблица, содержащая метрики, специфичные для операционных систем Windows и OS/2.
- GSUB (Glyph Substitution) — таблица, определяющая правила замены глифов (например, для лигатур, альтернативных начертаний, контекстных замен).
- GPOS (Glyph Positioning) — таблица, определяющая правила позиционирования глифов (например, для кернинга, акцентов, маркировки).
- GDEF (Glyph Definition) — таблица, определяющая классы глифов и их атрибуты (например, базовые, диакритические знаки, маркеры).
Контурные описания
OpenType поддерживает два типа контурных описаний:
- TrueType outlines — используются квадратичные кривые Безье. Обеспечивают высокую производительность рендеринга на экране.
- PostScript outlines (CFF — Compact Font Format) — используются кубические кривые Безье. Обеспечивают более высокое качество при печати и лучшую поддержку сложных форм.
Оба типа могут быть объединены в одном файле, но на практике обычно используется один из них.
Типографские функции
OpenType предоставляет широкий набор типографских функций, которые активируются через таблицы GSUB и GPOS. К наиболее распространённым относятся:
- Лигатуры — замена двух или более символов на один специальный глиф (например, «fi» → «fi»).
- Кернинг — автоматическая корректировка расстояния между определёнными парами символов для улучшения визуального восприятия.
- Альтернативные начертания — предоставление нескольких вариантов одного и того же символа (например, стилистические варианты, каллиграфические формы).
- Контекстные замены — замена глифа в зависимости от соседних символов (например, в арабском письме).
- Дроби — автоматическое форматирование дробей (например, 1/2 → ½).
- Порядковые номера — форматирование порядковых числительных (например, 1st → 1ˢᵗ).
- Капитель — преобразование строчных букв в малые прописные.
- Подстрочные и надстрочные знаки — автоматическое форматирование индексов и степеней.
Применение
OpenType используется в широком спектре приложений, от текстовых процессоров и издательских систем до веб-браузеров и мобильных приложений. Благодаря поддержке Unicode и сложных систем письменности, он является основным форматом для шрифтов, поддерживающих множество языков, включая кириллицу, латиницу, арабское письмо, иврит, деванагари и другие.
Преимущества и недостатки
Преимущества
- Кроссплатформенность — единый файл работает на Windows, macOS, Linux и мобильных платформах.
- Расширенные типографские возможности — поддержка сложных функций, таких как лигатуры, кернинг, альтернативные начертания.
- Поддержка Unicode — возможность хранить до 65 535 символов в одном файле, что позволяет создавать шрифты с поддержкой множества языков.
- Сжатие — формат поддерживает сжатие данных (например, CFF), что уменьшает размер файла.
- Лицензирование — возможность включения лицензионной информации в таблицу name.
Недостатки
- Сложность — создание шрифтов в формате OpenType требует специальных знаний и инструментов.
- Размер файла — шрифты с большим количеством глифов и сложными таблицами могут занимать значительный объём памяти.
- Совместимость — некоторые старые программы могут не поддерживать все функции OpenType, особенно сложные таблицы GSUB и GPOS.
Интересные факты
- Название «OpenType» отражает открытость спецификации для разработчиков, в отличие от проприетарных форматов.
- Первым шрифтом, выпущенным в формате OpenType, стал Adobe Garamond Pro.
- В 2016 году Microsoft и Adobe выпустили обновлённую спецификацию OpenType 1.8, которая добавила поддержку вариативных шрифтов (variable fonts), позволяющих изменять начертание (например, толщину, ширину, наклон) в одном файле.
Источники
- Спецификация OpenType (Microsoft, Adobe)
- ISO/IEC 14496-22:2007 — Information technology — Coding of audio-visual objects — Part 22: Open Font Format
- «The OpenType Cookbook» (Microsoft)
- Статья «OpenType» в энциклопедии «Fonts.com»
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →