Введение
Типографические возможности, реализованные благодаря цифровым типографическим системам, решили многие задачи, стоявшие перед компьютерными системами в области воспроизведения традиционной типографики, и расширили возможности благодаря множеству новых функций. В настоящее время широко используются три системы: OpenType, разработанная Microsoft и Adobe, Apple Advanced Typography (AAT) от Apple и Graphite от SIL. Ниже приведена информация о функциях OpenType и AAT. Graphite не имеет предопределенного набора функций, а предоставляет шрифтам возможность определять собственные.
Typographic features made possible using digital typographic systems have solved many of the demands placed on computer systems to replicate traditional typography and have expanded the possibilities with many new features. Three systems are in common use: OpenType, devised by Microsoft and Adobe, Apple's Apple Advanced Typography (AAT), and SIL's Graphite. The lists below provide information about OpenType and AAT features. Graphite does not have a fixed set of features; instead it provides a way for fonts to define their own features.
Типографические особенности OpenType
Формат OpenType определяет ряд типографических функций, которые может поддерживать конкретный шрифт. Некоторые программы, такие как Adobe InDesign, LibreOffice/OpenOffice или последние версии Lua/XeTeX, предоставляют пользователям возможность управлять этими функциями, например, для включения декоративных прописных букв (с засечками) или выбора между пропорциональными (полной высоты) и не пропорциональными (старостильными, или строчными) цифрами. Некоторые веб-браузеры также поддерживают функции OpenType в соответствии со спецификацией CSS Fonts Module Level 3, которая позволяет задавать функции OpenType напрямую через свойство или косвенно с помощью механизмов более высокого уровня. В следующих таблицах перечислены функции, определенные в версии 1.8.1 спецификации OpenType. Объяснение кодов в столбце "тип" приведено после таблиц. Функции OpenType могут быть применимы только к определенным системам письма или конкретным языкам, или в определенных режимах записи. Соответственно, функции разделены на несколько таблиц.
Особенности, предназначенные в первую очередь или требуемые исключительно для южноазиатских алфа-лабораторий (индийский/брахманский)
Долгое имя тег тип Описание
Верхняя основа Формыabvf S1 Заменяет верхнюю часть знака гласной. Для кхмерского и подобных шрифтов.
Над основой Позиционированиеabvm P4,5 Позиционирует глиф маркировки над базовым глифом.
Над основой Заменаabvs S4 Лигатура согласной с надставным знаком.
Ниже основы Формыblwf S4 Заменяет комбинацию халант+согласной подписной формой.
Ниже основы Позиционированиеblwm P4,5 Позиционирует глиф маркировки под базовым глифом.
Ниже основы Заменаblws S4 Лигатура согласной с подставным знаком.
Пребаза Формыpref S4 Заменяет халант+согласную в конце группы согласных глифом в начале. Кхмерский, Мьянма, Малаялам, Телугу.
Пребаза Заменаpres S4,5 Лигатура согласных комбинаций.
Постбаза Заменаpsts S4 Лигатура конечной согласной+согласной.
Постбаза Формыpstf S4 Заменяет конечный халант+согласную специальной формой. Кхмерский и Гурмукхи, Малаялам.
Расстояниеdist P2 Регулирует горизонтальное позиционирование между глифами. (Всегда включено, в отличие от 'kern'.)
Акхандаakhn S4 Хинди для неразрывного. Лигатура согласной+халант+согласной, обычно только для комбинаций k ss и j ny.
Форма халантаhaln S4 Заменяет глиф конечной согласной+халанта.
Половина формыhalf S4 Заменяет согласную+халант половинной формой, указывая, что она является частью слитного символа.
Форма нукты nukt S4 Заменяет согласную+нукту (точечный знак) одним глифом.
Форма ракараrkrf S4 Заменяет халант+ра глифом ракара, указывая, что это часть слитного символа.
Форма рефаrphf S4 Заменяет начальный ра+халант конечным знаком рефа, указывая на часть слитного символа.
Варианты ваттуvatu S4 Заменяет комбинации согласной+ракара лигатурой ватту.
Слитная формаcjct S4 Лигатура согласной+халант+согласной, указывает на часть слитного символа.
Слитная форма после Rocfar S1 Кхмерский.
Особенности, предназначенные в первую очередь или исключительно требуемые для восточноазиатских тетраграмм (китайские, японские, корейские)
Длинное имя тега Тип ОписаниеУпрощенная формаsmpl S1 Заменяет синограммы их упрощенными версиями, может зависеть от языкаТрадиционная формаtrad S1,3 Заменяет китайские символы их традиционными версиямиТрадиционное имя формыstnam S1Японские альтернативы для собственных именЭкспертная формаexpt S1 Типографические альтернативы для некоторых японских тетраграммФорма Ходжо Кандзиhojo Ходжо альтернативы для японских тетраграммФорма NLC Канджинlck NLC альтернативы для японских тетраграммФормы JIS 78jp78 S1,3 Альтернативы JIS C 6226 1978 для японских тетраграмм, недоступные в UnicodeФормы JIS 83jp83 S1Альтернативы JIS X 0208 1983 для японских тетраграмм, недоступные в UnicodeФормы JIS 90jp90 S1 Альтернативы JIS X 0208 1990 для японских тетраграмм, недоступные в UnicodeФормы JIS 04jp04 Альтернативы JIS 2004 для японских тетраграмм, недоступные в UnicodeХангыльhngl S1,3 Транслитерирует китайские символы корейским хангылемФорма начальных ямоljmo S4 Начальная группа согласных для синтезированного корейского слогаФорма конечных ямоtjmo S4 Конечная группа согласных для синтезированного корейского слогаФорма гласных ямоvjmo S4 Средняя группа гласных для синтезированного корейского слогаПолная ширинаfwid S1 Заменяет пропорционально отформатированные символы на символы полной ширины (особенно для латинских букв в китайском тексте)Половина шириныhwid S1,P1 Заменяет символы фиксированной ширины на символы половинной шириныАльтернативная половина шириныhalt P1 Перемещает глифы полной ширины на позиции половинной шириныТретья ширинаtwid S1,P1 Заменяет символы фиксированной ширины на символы шириной 1/3 (пунктуация и т.д.)Четверть шириныqwid S1 Заменяет символы фиксированной ширины на символы шириной 1/4 (пунктуация и т.д.)Пропорциональная ширинаpwid S1 Заменяет символы фиксированной ширины на пропорциональныеПропорциональные альтернативыpalt P1 Перемещает символы, отличные от моноширинных, в соответствии с шириной глифаПропорциональная канаkna S1 Кана для использования вместе с алфавитами, без типографической сеткиФормы рубиruby S1 Рубиновые символы, мелкий шрифтГоризонтальные альтернативы канаhkna S1 Альтернативные формы для горизонтального текста кана, например ー для чōонпу вместо |, см. vknaВертикальные альтернативы канаvkna S1 Альтернативные формы японского кана для вертикального текста, например | для чōонпу вместо ー, см. hknaЦентрированная пунктуация CJKcpct P1 Позиционирует знаки препинания по вертикали и горизонтали
Особенности, предназначенные для двухкамерных алфавитов (латинский, греческий, кириллический и т.д.)
Длинное имя тега Тип ОписаниеSmall Caps smcp S1 Заменяет строчные буквы на версионные с засечками малого размера.Capitals to Small Caps c2sc S1 Заменяет прописные буквы на версионные с засечками малого размера.Petite Caps pcap S1 Заменяет строчные буквы на аналогичные с маленькими засечками.Capitals to Petite Caps c2pc S1 Заменяет прописные буквы на маленькие засечки.Unicase unic S1 Заменяет строчные и прописные буквы на набор глифов с единым регистром.Capital Spacing cpsp P1 Регулирует расстояние между буквами в тексте, написанном полностью прописными буквами.Case Sensitive Forms case P1 Заменяет символы, особенно знаки препинания, на формы, лучше подходящие для текста, написанного полностью прописными буквами, см. titlItalics ital S1 Заменяет буквы на соответствующие курсивные глифы.Ordinals ordn S6,4 Заменяет символы на порядковые формы для использования после чисел.
Функции, предназначенные для цифр и математики
Длинное имя тега Тип Описание
Линейные цифры lnum S1 Заменяет цифры глифами, предназначенными для лучшего отображения в тексте, написанном полностью заглавными буквами, часто также tnum
Цифры старого стиля onum S1 Заменяет цифры глифами старого стиля, часто также pnum
Пропорциональные цифры pnum S1 Заменяет цифры глифами пропорциональной ширины, часто также onum
Табличные цифры tnum S1 Заменяет цифры глифами фиксированной ширины, часто также lnum
Дроби frac S4 Преобразует цифры, разделенные косой чертой, в диагональную дробь
Альтернативные дроби afrc S4 Преобразует цифры, разделенные косой чертой, в альтернативную форму сложной дроби
Знаменатель dnom S1 Преобразует в соответствующую форму знаменателя дроби, вызывается функцией frac
Числитель numr S1 Преобразует в соответствующую форму числителя дроби, вызывается функцией frac
Научные нижние индексы sinf S1 Как в "H2O", "SOx" или "YCbCr" (но с использованием того же начертания шрифта и предопределенного положения, в отличие от обычных HTML нижних и верхних индексов)
Перечеркнутый ноль zero S1 Заменяет цифру 0 на перечеркнутый ноль
Математический греческий mgrk S1 Заменяет греческие символы специальными формами для использования в математике
Сглаженные формы акцентов flac Эта функция применяется к отдельным глифам при компоновке математической формулы.
Формы без точек dtls Формы без точек должны использоваться в качестве базовых форм для размещения над ними математических диакритических знаков.
Альтернативы математического стиля написания ssty Эта функция может иметь параметр, указывающий уровень стиля написания: 1 для простых нижних и верхних индексов, 2 для индексов и надстрочных символов второго уровня (то есть, индексов на индексах) и так далее. (В настоящее время используются только первые два варианта). Для глифов, которые не охватываются этой функцией, в нижних и верхних индексах используется исходный глиф.
Лигационные и альтернативные формы предназначены для всех сценариев
Длинное имя тега Тип Описание Доступ Все альтернативыaalt S1,3 Особая функция: используется для предоставления пользователю выбора всех альтернативных форм символаSwashswsh S1,3 Заменяет символ или отображает несколько вариантов с засечкамиКонтекстные засечкиcswh S8 Преобразует букву в форму с засечками в зависимости от окружающих символовКонтекстные альтернативыcalt S6 Применяет вторую функцию замены на основе совпадения шаблона символа в контексте окружающих шаблоновИсторические формыhist S1 Устаревшие формы символов, которые могут быть применены по усмотрению пользователя, см. hligЛокализованные формыlocl S1 Заменяет символ предпочтительной формой в зависимости от языка сценарияСлучайный выборrand S3 Заменяет символ случайными формами (предназначен для имитации рукописного текста)Альтернативные формы аннотацийnalt S1,3 Предоставляет пользователю доступ к заключенным в окружность цифрам, перевернутым буквам и т.д. Вариант символа 1–99cv01–cv99 S3 Множество вариантов одного символа, которые могут не применяться ко многим другим символам, см. ссылки на подробную документациюСтилистические альтернативы salt S1,3 Заменяет символ или отображает список стилистических альтернатив для символаСтилистический набор 1–20ss01–ss20 S1 Заменяет символ на один из стилистических наборов, специфичных для шрифтаПодстрочный индексsubs S1 Заменяет символ подстрочным вариантом, см. numrНадстрочный индексsups S1 Заменяет символ надстрочным вариантом, см. dnomАльтернативы для заголовков titl S1 Заменяет символы формами, подходящими для крупного размера, например, в заголовкахНеобходимые вариативные альтернативыrvrn S1 Специальные варианты одного символа, которые должны применяться к конкретным вариациям шрифта, требуемые переменными шрифтамиКонтекстные лигатурыclig S8 Применяет вторую функцию лигатур на основе совпадения шаблона символа в контексте окружающих шаблоновПроизвольные лигатурыdlig S4 Лигатуры, которые могут быть применены по усмотрению пользователяИсторические лигатурыhlig S1 Устаревшие лигатуры, которые могут быть применены по усмотрению пользователяСтандартные лигатурыliga S4 Заменяет (по умолчанию) последовательность символов на единый глиф лигатуры
Устройства позиционирования, предназначенные для всех сценариев
Тип тега длинного имени ОписаниеGlyph Composition/Decompositionccmp S4,2 Вызывает замену лигатуры для последовательности символов или заменяет символ последовательностью глифов. Обеспечивает логику, которая, например, может эффективно изменять порядок входных символов. Kerningkern P2,8 Тонкая горизонтальная расстановка одного глифа относительно следующего, основанная на форме глифов. Расстановка отметокmark P4,5 Тонкая расстановка глифа относительно базового символа. Расстановка отметки к отметкеmkmk P6 Тонкая расстановка глифа относительно другой отметки. Оптические границыopbd P1 Перепозиционирует глифы в начале и конце строки для точного выравнивания текста. Левая границаslfbd P1 Перепозиционирует глифы в конце строки. Вызывается из opbd. Правая границаrtbd P1 Перепозиционирует глифы в начале строки. Вызывается из opbd.
Особые особенности, предназначенные для всех сценариев
Длинное имя тег тип Описание
Оптические размеры size Не таблица поиска: таблица функций предоставляет приложениям информацию о внешнем виде и назначении шрифта, чтобы помочь в выборе шрифта.
Орнаменты ornm S3,1 Декоративные альтернативы для символа маркированного списка •
Легенда о замене и коды позиционирования
Ниже перечислены типы таблиц поиска OpenType, используемые в столбце "тип" в вышеуказанных таблицах. S обозначает замену, а P – позиционирование. Обратите внимание, что часто функция может быть реализована более чем одним типом таблицы, и иногда спецификация не указывает тип таблицы явно.
Аббрев. | Тип | Описание
------- | -------- | --------
S1 | GSUB 1 | Простая замена одного глифа другим
S2 | GSUB 2 | Множественная замена одного символа несколькими глифами
S3 | GSUB 3 | Выбор варианта
S4 | GSUB 4 | Лигатуры
S5 | GSUB 5 | Контекстная замена
S6 | GSUB 6 | Цепная контекстная замена
S7 | GSUB 7 | Расширение для таблиц GSUB больше 64 КБ
S8 | GSUB 8 | Обратная цепная контекстная замена
P1 | GPOS 1 | Позиционирование одиночного глифа
P2 | GPOS 2 | Позиционирование пары глифов
P3 | GPOS 3 | Курсивное соединение
P4 | GPOS 4 | Позиционирование знаковых глифов относительно базового глифа
P5 | GPOS 5 | Позиционирование знаковых глифов относительно лигатуры
P6 | GPOS 6 | Позиционирование знаковых глифов относительно другого знакового глифа
P7 | GPOS 7 | Контекстное позиционирование
P8 | GPOS 8 | Расширенное контекстное позиционирование
P9 | GPOS 9 | Расширение для таблиц GPOS больше 64 КБ