Возможности OpenType — адаптируемые гарнитуры

У меня есть шрифт, который я разработал в двух вариантах: один располагается горизонтально, а другой вертикально. На данный момент они сидят как два OTF. Что я хотел бы сделать, так это создать функцию OpenType, которая позволила бы варьировать горизонтальную и вертикальную ориентацию при одном и том же использовании. Например, я набираю слово, первая буква вертикальная, вторая горизонтальная, третья вертикальная и т.д.

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

Это действительно сложный вопрос, и, к сожалению, у меня нет для вас ответа, но я хотел бы указать на страницу ресурсов Adobe OpenType и предложить прочитать спецификации Open Type, чтобы увидеть, возможно ли это вообще. Также взгляните на Adobe Glyphlet Development Kit, поскольку, возможно, вы сможете использовать технологию Gaiji SING для решения этой проблемы.

Ответы (1)

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

  1. Сделайте буквы по умолчанию вертикальными.
  2. Создайте функцию одиночной замены , которая заменяет каждую вертикальную букву ее горизонтальным аналогом (V → H). Эту функцию также можно использовать для переключения каждой буквы на вертикальную. Он не должен быть активирован по умолчанию.
  3. Создайте функцию замещения контекстной цепочки с двумя обратными классами: один, содержащий все вертикальные буквы (BV), и один, содержащий все остальное. Если обратный класс (т. е. буква, определяющая) — BV, примените функцию V→H к текущей букве.

Таким образом, первая буква слова остается нетронутой (поскольку ей не предшествует вертикальная буква) и, следовательно, вертикальной. Второй букве предшествует вертикальная буква, поэтому задний класс — BV, и к этой букве применяется V→H, и она становится горизонтальной. Для третьей буквы задний класс снова представляет собой все остальное , и поэтому он не трансформируется. И так далее …

Уже есть шрифты, которые это делают. Насколько мне известно, существуют даже те, у которых есть цепочки из трех букв.