.
i-Type.ru
.
размышления о дизайне и типографике    
.
.
• Начало
• Статьи
• Календарь
• Энциклопедия
• Реклама на сайте

.

Статьи
Про шрифты с продолжением. Часть 17

Расширенная типографика (OpenType features)

Когда заходит речь о расширенной типографике, то обычно имеются в виду шрифты в формате OpenType. Подробно об этом формате мы говорили в предыдущих публикациях, а здесь рассмотрим его именно в контексте расширенной типографики.

Из-за ограничений предыдущих шрифтовых технологий в один шрифт часто невозможно было поместить все необходимые знаки. Поэтому в дополнение к основным шрифтам строили дополнительные варианты шрифтов в различных стандартизованных или, чаще, случайно придуманных кодировках. Применение шрифтов, для которых были разработаны, например, минускульные цифры и капитель, было чрезвычайно неудобным. Шрифты OpenType используют единый файл шрифтов для компьютеров под управлением ОС Windows и Macintosh, поэтому можно переносить эти файлы с одной платформы на другую, не задумываясь о подстановке шрифтов и других проблемах, которые могут привести к перекомпоновке текста.

Одно из главных преимуществ новой технологии — поддержка расширенных типографских возможностей. Эти шрифты могут обладать особыми возможностями, например поддерживать каллиграфическое начертание и дополнительные лигатуры, которые недоступны в существующих шрифтах PostScript и TrueType.

При работе со шрифтом OpenType в тексте можно автоматически использовать альтернативные варианты начертания, например лигатуры, капители, дроби и пропорциональные цифры старого стиля.

Шрифты OpenType могут содержать расширенные наборы символов и возможности их компоновки для обеспечения более глубокой языковой поддержки и дополнительного типографского контроля.

Основное, что должно нас интересовать в реализации расширенной типографики OpenType, касается разделения числового кода знака (character) и его графемы (glyph). Знак — это кодированная единица, упорядоченная в соответствии со стандартом Unicode, представляющая собой минимальную семантическую единицу языка, например букву. Глиф — это графический образ знака. Один знак может соответствовать нескольким глифам (рис. 1): строчная «а», капительная «а» и альтернативный вариант строчной «а» с росчерком являются одним и тем же знаком, но в то же время это три разных глифа (графемы). Один глиф, в свою очередь, может соответствовать комбинации нескольких знаков, например лигатура «ffi», являясь единой графемой, соответствует последовательности трех знаков: f, f и i. Таким образом, для программы проверки орфографии слово «office» будет состоять из шести знаков, а графический процессор выдаст на экран четыре глифа.

Для любого знака по умолчанию определен базовый глиф и порядок его размещения в тексте. Применение дополнительных правил к одному или нескольким знакам может изменить их взаимное расположение или заменить базовые глифы альтернативными. К примеру, применение правила «Капитель» к символу «а» заменит обычный знак на капительный аналог «A».

Для того чтобы воспользоваться новыми возможностями шрифтов, необходимо, чтобы прикладные программы поддерживали эти возможности и имели соответствующий пользовательский интерфейс (см. врезку 1).

Рис. 1. Один знак — три глифа

Рис. 1. Один знак — три глифа

Врезка 1

Chosen functionality Activated feature(s)                                  
Proportional Oldstyle pnum + onum × × × × × × × × × × × × × × × × ×
Tabular Lining tnum + lnum × × × ×   × × ×           × × × ×
Proportional Lining pnum + lnum × × × ×   × × ×           × × × ×
Tabular Oldstyle tnum + onum × × × ×   × × ×           × × × ×
Standard Ligatures liga × × × × × × × × × × × × × × × × ×
Discretionary Ligatures dlig × × × ×   × × × × × × ×   × × × ×
Historical Ligatures hlig × × × ×   × × × × × × ×   × × × ×
All Caps case + cpsp × × × × × × × × × × × × × × × ×  
Small Caps smcp × × × × × × × × × × × × × × × ×  
Capitals to Small Caps c2sc × × × ×                   × × ×  
Superscript sups × × × ×   × × ×             × ×  
Scientific Inferiors sinf × × × ×   × × ×             × ×  
Subscript subs                                  
Ordinals ordn × × × ×   × × × × × ×       × ×  
Titling Alternates titl × × × ×   × × ×           × × ×  
Swash swsh × × × ×   × × × × × ×       × ×  
Contextual Swash cswh × × × ×   × × × × × ×       × ×  
All Alternates aalt × × × × × × × ×           × × ×  
Contextual Alternates calt × × × ×   × × × × × ×     × × × ×
Contextual Ligatures clig × × × ×   × × × × × ×     × × × ×
Fractions frac × × × ×   × × × × × ×       × ×  
Alternative Fractions afrc                             ×    
Numerator numr × × × ×   × × ×             × ×  
Denominator dnom × × × ×   × × ×             × ×  
Ornaments ornm                 × × ×       × ×  
Stylistic Alternates salt           × × × × × ×       × ×  
Stylistic Sets ss01…ss20 × ×                             ×
Historical Forms hist × ×                         times; ×  
Slashed Zero zero × ×                       × × ×  
Justification Alternates jalt                                  
Alternate Annotation nalt                                  
Mathematical Greek mgrk                                  
Localized Forms locl ×         ×     ×         ×      
Petite Caps pcap                                  
Capitals to Petite Caps c2pc                                  
Unicase unic                                  
Glyph de/composition ccmp ×                         ×     ×
Required Ligatures rlig ×                         ×     ×
Mark Positioning mark ×                         ×     ×
Mark-to-mark Positioning mkmk ×                         ×     ×
Mark Positioning via Subs. mset ×                         ×     ×
Terminal Form fina ×                         ×     ×
Initial Form init ×                         ×     ×
Isolated Form isol ×                         ×     ×
Medial Form medi ×                         ×     ×

Например, в текущей версии программы Adobe InDesign палитра Символ и панель Управление позволяют применять к тексту различные атрибуты шрифтов OpenType: дроби, орнаменты и т.п.

Применение атрибутов шрифтов OpenType:

  1. Выделите текст.
  2. Убедитесь, что в палитре Символ или в панели Управление выбран шрифт OpenType.
  3. В меню палитры Символ выберите пункт OpenType, а затем выберите один из атрибутов OpenType — Дополнительные лигатуры, Дроби и т.д.

Свойства, не поддерживаемые в текущем шрифте, отображаются в квадратных скобках (например, «[Орнамент]»).

Врезка 2

Лигатура (лат. ligatura — связь) — знак любой системы письма или фонетической транскрипции, образованный путем соединения двух и более графем, например: датское, исландское, норвежское и осетинское «æ»; немецкое «ß»; русские и белорусские «ы», «ю», «щ».

По неслившимся частям (иногда изменяющим свою форму) обычно можно видеть, какие буквы входят в состав лигатуры. В некоторых системах письма лигатуры многих буквенных сочетаний вошли во всеобщее употребление, являясь как бы сложными буквенными знаками для изображения определенных звуковых комплексов.

Некоторые виды лигатур в латинице

Некоторые виды лигатур в латинице

Лигатуры широко применялись в Средние века как способ ускорения письма и экономии места. Лигатуры появились в ручном наборе сразу же с его изобретением, когда немецкий первопечатник Иоганн Гутенберг для достижения ровности строки и сходства ее с рукописной использовал в своей 42-строчной Библии лигатуры и различные вариации одних и тех же знаков (например, три варианта буквы «а»: узкая, обычная и широкая). Позже лигатуры применялись при книгопечатании, например для воспроизведения идущих подряд латинских знаков «f» и «i» с такими же апрошами, как между другими буквами, использовался знак «?», так как применение обычных литер было невозможно из-за столкновения точек и нахлеста букв. Этот метод довольно долго использовался в ручном наборе, но практически исчез при появлении линотипа и монотипа, так как в их матрицах не хватало места для лигатур (аналогичная судьба постигла русскую букву «ё»). По тем же причинам лигатуры отсутствовали в первых цифровых шрифтах (из-за ограничения числа глифов 256) и если подставлялись в набор, то либо вручную, либо аппаратно в программе верстки. Активно глифы стали применяться с появлением шрифтов формата OpenType, где число возможных глифов расширилось до 64 тыс., а разного рода замены прописываются на простейшем языке Python.

Лигатура старославянского йотированного «большого юса»

Лигатура старославянского йотированного «большого юса»

В то же время лигатуры нередко использовались для украшения и орнаментализации текстов, например в вязи (см. рисунок).

В наше время многие лигатуры можно встретить только в исторических источниках (например, в аутентичном переиздании «Слова о полку Игореве») или в тех языках, где они фактически приобрели статус самостоятельных букв (французском, норвежском, нидерландском, армянском и многих других).

В арабском письме используют лигатуру Лям-алиф. К типам письма с многочисленными лигатурами относятся индийское письмо деванагари и угловатая (хорватская) глаголица.

В китайском языке в качестве лигатур применяются словосочетания, объединенные в один иероглиф.

Некоторые лигатуры фактически превратились в логограммы, например амперсанд («&» из лат. «et»), используемый во многих европейских языках в значении союза «и» независимо от реального произношения слова.

Реже лигатурами называют диграфы, триграфы и тетраграфы, то есть обозначение одной фонемы двумя, тремя или четырьмя графемами, например польские «sz» и «cz», немецкое «tsch».

Если лигатура применяется долгое время, ее эволюция продолжается. В частности, возможен переход лигатуры в специальный символ. К таким знакам относится символ «@», предположительно образованный из английского предлога «at».

Дополнительные лигатуры

InDesign обеспечивает автоматическую вставку лигатур — типографских знаков, заменяющих определенные пары символов (например, «fi» и «fl» — см. врезку 2), если они доступны для данного шрифта. Символы, которые использует InDesign, если выбран параметр Лигатура, отображаются и печатаются как лигатуры, однако при этом они полностью доступны для редактирования и не приводят к ложным ошибкам при проверке орфографии.

Разработчик может включить в шрифт необязательные лигатуры, которые будут применяться не во всех случаях. Если этот параметр выбран, то дополнительные лигатуры будут использованы, если они определены в шрифте.

Во время создания шрифта фича описывается так (здесь пример для лигатур «fi» и «fl»):
feature liga{ # Ligatures sub f i by f_i; sub f l by f_l; } liga;

Ничего сложного здесь нет. Слово «liga» — сокращение от «ligatures», а «sub» — от «substitute». Похожим образом прописываются и остальные подстановки. Это относится как к стандартным, так и к дополнительным лигатурам. Только тэги будут определены по-разному: «liga» для стандартных и «dlig»  для дополнительных лигатур.

При этом бывают случаи, когда надо предусмотреть:
ignore substitute @LETTER f’ i’;

То есть игнорировать подстановку сочетания «f» и «i» на соответствующую лигатуру в прописных.

Дроби

Числа, разделенные косой чертой (например, «1/3»), преобразуются в символы дробей, если они определены в шрифте (?). Существует несколько видов записи обыкновенных дробей:

  • привычная нам по учебникам высшей школы —1/2;
  • 1/2 или 1 / 2 (наклонная черта называется «солидус»);
  • выключенная формула, где цифры располагаются строго одна над другой (вверху числитель, внизу — знаменатель) и разделяются горизонтальной чертой (она называется «винкулиум» (англ.)). В выключенной формуле цифры числителя и знаменателя могут выходить далеко за границы строки, на которой они размещаются;
  • строчная формула — это более компактная форма записи выключенной формулы, которая своими габаритами не выходит за границы строки;
  • существуют еще многоэтажные, так называемые составные дроби. Но это отдельный случай, который мы здесь рассматривать не будем.

Надо заметить, что в Древней Руси дроби называли долями или ломаными числами. Термин «дробь» как аналог латинского fractura используется в «Арифметике» Магницкого (1703) как для обыкновенных, так и для десятичных дробей.
feature frac { # my Fractions feature
sub slash by fraction; # 1st statement
sub @standard by @numerator; # 2nd statement
sub fraction @numerator’ by @denominator; # 3rd statement
sub @denominator @numerator’ by @denominator; # 4th statement
} frac;

Порядковое числительное

Порядковые числительные (например, 1st и 2nd) форматируются надстрочными индексами (1st и 2nd), если они определены в шрифте.
feature ordn { # Ordinals
sub @ordn1 by @ordn2;
} ordn;

Орнамент

Доступны обычные и контекстные орнаменты, которые могут включать альтернативные варианты начертания прописных букв и конечных символов, если они определены в шрифте.

В скрипте:
feature ornm { # Ornaments
# Latin
sub bullet from @aalt3;
script cyrl; # Cyrillic
sub bullet from @aalt3;
sub arrowright from [uni2192.alt1 uni2192.alt2 orn.025 orn.029 orn.031];
sub arrowleft from [uni2190.alt1 uni2190.alt2 orn.024 orn.028 orn.030];
} ornm;

Контекстные альтерации

Контекстные лигатуры и варианты соединений включаются, если они определены в шрифте. Альтернативные символы включаются в некоторые рукописные гарнитуры шрифта для улучшения их стыковки. Этот параметр обычно выбран по умолчанию.

Подстановка для буквы «t», которая находится соответственно в начале, середине и конце слова, выглядит так:
feature calt {
sub @_bajas t’ @_altas by t.left;
sub @_bajas t’ @_bajas by t.middle;
sub @_altas t’ @_bajas by t.right;
} calt;

Врезка 3

/tr>
Feature Tag Friendly Name
'aalt' Access All Alternates
'abvf' Above-base Forms
'abvm' Above-base Mark Positioning
'abvs' Above-base Substitutions
'afrc' Alternative Fractions
'akhn' Akhands
'blwf' Below-base Forms
'blwm' Below-base Mark Positioning
'blws' Below-base Substitutions
'calt' Contextual Alternates
'case' Case-Sensitive Forms
'ccmp' Glyph Composition / Decomposition
'cfar' Conjunct Form After Ro
'cjct' Conjunct Forms
'clig' Contextual Ligatures
'cpct' Centered CJK Punctuation
'cpsp' Capital Spacing
'cswh' Contextual Swash
'curs' Cursive Positioning
cv01-cv99' Character Variants
'c2pc' Petite Capitals From Capitals
'c2sc' Small Capitals From Capitals
'dist' Distances
'dlig' Discretionary Ligatures
'dnom' Denominators
'expt' Expert Forms
'falt' Final Glyph on Line Alternates
'fin2' Terminal Forms #2
'fin3' Terminal Forms #3
'fina' Terminal Forms
'frac' Fractions
'fwid' Full Widths
'half' Half Forms
'haln' Halant Forms
'halt' Alternate Half Widths
'hist' Historical Forms
'hkna' Horizontal Kana Alternates
'hlig' Historical Ligatures
'hngl' Hangul
'hojo' Hojo Kanji Forms (JIS X 0212-1990 Kanji Forms)
'hwid' Half Widths
'init' Initial Forms
'isol' Isolated Forms
'ital' Italics
'jalt' Justification Alternates
'jp78' JIS78 Forms
'jp83' JIS83 Forms
'jp90' JIS90 Forms
'jp04' JIS2004 Forms
'kern' Kerning
'lfbd' Left Bounds
'liga' Standard Ligatures
'ljmo' Leading Jamo Forms
'lnum' Lining Figures
'locl' Localized Forms
'ltra' Left-to-right alternates
'ltrm' Left-to-right mirrored forms
'mark' Mark Positioning
'med2' Medial Forms #2
'medi' Medial Forms
'mgrk' Mathematical Greek
'mkmk' Mark to Mark Positioning
'mset' Mark Positioning via Substitution
'nalt' Alternate Annotation Forms
'nlck' NLC Kanji Forms
'nukt' Nukta Forms
'numr' Numerators
Feature Tag Friendly Name
'onum' Oldstyle Figures
'opbd' Optical Bounds
'ordn' Ordinals
'ornm' Ornaments
'palt' Proportional Alternate Widths
'pcap' Petite Capitals
'pkna' Proportional Kana
'pnum' Proportional Figures
'pref' Pre-Base Forms
'pres' Pre-base Substitutions
'pstf' Post-base Forms
'psts' Post-base Substitutions
'pwid' Proportional Widths
'qwid' Quarter Widths
'rand' Randomize
'rkrf' Rakar Forms
'rlig' Required Ligatures
'rphf' Reph Forms
'rtbd' Right Bounds
'rtla' Right-to-left alternates
'rtlm' Right-to-left mirrored forms
'ruby' Ruby Notation Forms
'salt' Stylistic Alternates
'sinf' Scientific Inferiors
'size' Optical size
'smcp' Small Capitals
'smpl' Simplified Forms
'ss01' Stylistic Set 1
'ss02' Stylistic Set 2
'ss03' Stylistic Set 3
'ss04' Stylistic Set 4
'ss05' Stylistic Set 5
'ss06' Stylistic Set 6
'ss07' Stylistic Set 7
'ss08' Stylistic Set 8
'ss09' Stylistic Set 9
'ss10' Stylistic Set 10
'ss11' Stylistic Set 11
'ss12' Stylistic Set 12
'ss13' Stylistic Set 13
'ss14' Stylistic Set 14
'ss15' Stylistic Set 15
'ss16' Stylistic Set 16
'ss17' Stylistic Set 17
'ss18' Stylistic Set 18
'ss19' Stylistic Set 19
'ss20' Stylistic Set 20
'subs' Subscript
'sups' Superscript
'swsh' Swash
'titl' Titling
'tjmo' Trailing Jamo Forms
'tnam' Traditional Name Forms
'tnum' Tabular Figures
'trad' Traditional Forms
'twid' Third Widths
'unic' Unicase
'valt' Alternate Vertical Metrics
'vatu' Vattu Variants
'vert' Vertical Writing
'vhal' Alternate Vertical Half Metrics
'vjmo' Vowel Jamo Forms
'vkna' Vertical Kana Alternates
'vkrn' Vertical Kerning
'vpal' Proportional Alternate Vertical Metrics
'vrt2' Vertical Alternates and Rotation
'zero' Slashed Zero

Все капителями

Для шрифтов, содержащих капители, выбор этого параметра включает вывод символов капителями.

InDesign поддерживает автоматическое изменение регистра символов для выделенного текста. Если текст отформатирован в виде капителей, то автоматически используются символы капители, если они предусмотрены в шрифте. Если же капители в шрифте отсутствуют, то InDesign производит их синтез, используя варианты обычных прописных символов уменьшенного размера. Размер синтезируемых капителей задается в диалоговом окне Установки текста.

Строчные в капитель:
feature smcp { # my Small Caps feature
sub @lowercase by @small_caps;
} smcp;

Пример фичи, глобально регулирующей расстояние между символами капители:
feature cpsp {
pos @uppercase <7 0 14 0>;
} cpsp;

Перечеркнутый ноль

При включении этого параметра 0 (ноль) перечеркивается по диагонали косой чертой. В некоторых шрифтах (особенно сжатых) ноль (0) бывает трудно отличить от прописной буквы O.
feature zero { # Slashed Zero
# Latin
    sub [zero zero.fitted] by [zero.slash zero.slashfitted];
script DFLT;
    sub [zero zero.fitted] by [zero.slash zero.slashfitted];
script cyrl; # Cyrillic
    sub [zero zero.fitted] by [zero.slash zero.slashfitted];
} zero;

Стилистические наборы

Некоторые шрифты OpenType включают наборы вариантов начертания глифов, разработанные для улучшения эстетического эффекта (рис. 2).

Стилистический набор (набор вариантов начертания глифа) — это группа альтернативных вариантов начертания глифов, которая может быть за один раз применена к одиночному символу или фрагменту текста. При выборе другого варианта начертания вместо глифов по умолчанию применяются глифы, определенные в наборе. Если символ глифа в наборе вариантов начертания используется в сочетании с другими параметрами OpenType, то отдельно заданный глиф заменяет глиф из набора символов. Глифы, содержащиеся в каждом из наборов, можно просмотреть в палитре Глифы.
feature salt { # my Stylistic Alternates
sub a by a.salt;
sub g by g.salt;
} salt;

Рис. 2. Стилистические наборы в шрифте Poetica

Рис. 2. Стилистические наборы в шрифте Poetica

Позиционные формы

В некоторых курсивных рукописных шрифтах и языках (например, в арабском) форма символа зависит от его положения в слове. Символ может иметь различную форму в начале (начальное положение), середине (среднее положение) и конце (конечное положение) слова, а также если слово состоит только из одного этого символа (изолированное положение). Чтобы правильно задать формат символа, выделите его и выберите значение параметра Позиционные формы. В режиме Общая форма вставляется обычный символ, в режиме Автоматическая форма — форма символа в зависимости от его положения в слове или форма символа в изолированном положении.
feature init{
sub @isolated_forms by @initial_forms;
}init;

В классах это может выглядеть, например, так:
substitute [a e n] d’ by d.alt;

При этом имеется в виду, что на «d» альтернативную заменяется соответствующий знак только в сочетаниях «ad», «ed» или «nd».

Надстрочные и подстрочные индексы

Некоторые шрифты OpenType содержат приподнятые или опущенные глифы, которые имеют размер, правильно подобранный относительно окружающих их символов.
feature sups { # Superscript
sub @figures_standard by @figures_sups;
sub @punctuation_regular by @punctuation_sups;
} sups;

Если в шрифте OpenType эти глифы для нестандартных дробей отсутствуют, попробуйте воспользоваться атрибутами Числитель и Знаменатель.

Научный подстрочник

Часто бывает, особенно в химических или физических формулах и описаниях, что часть или некоторые знаки должны не только быть в положении нижнего индекса, но еще и сдвинуты вниз относительно базовой линии. Здесь на помощь приходит фича:
feature sinf { # Scientific Inferiors
sub @sups1 by @sinf1;
} sinf;

Пропорциональные старого стиля

Цифры разной высоты имеют различную ширину. Этот режим рекомендуется для отображения текста, набранного прописными и строчными буквами, в классическом стиле.
feature pnum { # Proportional Figures
sub @pnum1 by @pnum2;
} pnum;

Пропорциональные современные

Цифры полной высоты имеют различную ширину. Этот режим рекомендуется для текста, набранного только прописными буквами.
feature lnum { # Lining Figures
sub @lnum1 by @lnum2;
} lnum;

Моноширинные старого стиля

Цифры разной высоты имеют фиксированную, одинаковую ширину. Этот режим рекомендуется в тех случаях, когда необходимо добиться классического внешнего вида чисел в старом стиле и чтобы при этом они были выровнены в столбце.
feature onum { # Old Style Figures
sub @c2sc1 by @c2sc2;
} onum;

Табличные цифры

Все цифры полной высоты имеют одинаковую ширину. Этот режим подходит в тех ситуациях, когда необходимо выравнивать числа на нескольких строках, как в таблицах.
feature tnum { # Tabular Figures
sub @tnum1 by @tnum2;
} tnum;

Разумеется, здесь перечислены не все фичи. Мало того, в борьбе за потребителя приложения разных фирм-производителей поддерживают не все возможности шрифтов формата OpenType. Полный список дан в сводной таблице во врезке 3 (без перевода).

Подробную информацию по OT-фичам можно посмотреть на странице OpenType Specification at Microsoft (http://www.microsoft.com/typography/otspec/) или на странице Adobe Font Development Kit for OpenType (http://www.adobe.com/devnet/opentype/afdko.html). Продвинутым разработчикам настоятельно рекомендую для чтения справочник по синтаксису OT-фич (http://www.adobe.com/devnet/opentype/afdko/topic_feature_file_syntax.html).

КомпьюАрт 10'2011

i-type.ru
end --›
  Copyright©1998-2010
Nikolay Dubina | Николай Дубина
реклама