Как вы создаете альтернативные глифы/символы шрифта?

Недавно я использовал шрифт, в котором каждому символу были назначены альтернативные глифы. Это был рукописный шрифт. Как будто кто-то отсканировал и обвел образец собственного почерка. И я думаю, чтобы это выглядело более убедительно, каждая буква была отсканирована/отслежена несколько раз.
Таким образом, если вы наберете заглавную букву «А» (или строчную «а» или что-то еще) четыре раза подряд, она может появиться как четыре похожих, но немного разных (а иногда и совершенно разных) варианта. Но это был только один шрифт. Также казалось, что он предпочитает определенный вариант глифа на границах слов. Таким образом, первая и последняя буквы каждого слова могут иметь сложные завитки или что-то в этом роде. В Adobe Illustrator альтернативы всплывают по мере ввода, и вы можете выбирать с помощью мыши.

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

Например, этот шрифт разработан так, чтобы он выглядел как шрифт из культового логотипа Coca Cola. Но на самом деле он не может воссоздать оригинал, потому что в оригинале есть два разных глифа «C». Может быть, это не лучший пример, но вы поняли идею.

введите описание изображения здесь


введите описание изображения здесь

Отличный вопрос! Я наберу ответ позже, а пока вы можете выполнить поиск «Поваренная книга OpenType» и проверить раздел «Общие методы»> «Забавные вещи»> «Рандомизация». ВНИМАНИЕ: программирование функций OpenType совсем не просто.
@PepeOchoa Спасибо, я ценю это. Я не новичок в программировании. Вероятно, это все еще будет сложно? PS: я использовал шрифт True Type ( .ttf). Это, вероятно, не имеет значения, но просто к вашему сведению.

Ответы (1)

В общем: вам нужно использовать возможности OpenType, чтобы делать «интеллектуальные» автоматические замены. Так что это должен быть шрифт OpenType. Он может иметь суффикс TTF или OTF.

Взяв пример с Coca-Cola, можно добиться этого эффекта двумя способами:

  1. вы заменяете определенные строки лигатурами . Это могут быть два символа, например Co , или целые слова (например, Cola ), или фразы (например, Coca-Cola ). Стандартные лигатуры используются в функции LIGA, дополнительные часто используются в функции DLIG. Логика кодирования такова: если f + i , замените обе на лигатуру fi  .

  2. Другой вариант — контекстные вариации. В этом случае вы не заменяете всю строку поиска, а только ее части в зависимости от окружения. Например: у вас может быть  C без каких-либо росчерков по умолчанию, а затем два варианта с росчерком справа внизу и росчерком справа вверху. Замена производится только в том случае, если места достаточно. Если следует y , вы не можете использовать нижний перекос; если следует h , вы не можете использовать верхний перекос. Для этого вам необходимо создать так называемые классы соответствующих символов, например, «has_ascender» и «has_descender». Затем вы делаете замену в такой функции, как CALT или CLIG. Логика кодирования в этом случае такова: если C + [has_descender], заменитьC с C с верхним перекосом .