Может ли гарнитура быть разработана так, чтобы символы зависели от предыдущих символов в набранном слове?

13

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

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

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

Fiztban
источник
3
Я ничего не знаю о методах, используемых в альтернативных символах, но одна точка отсчета, которая может быть интересна для исследования, это шрифт Зигмунда Фрейда. Это было разработано, чтобы измениться в зависимости от напечатанного вопроса. Это хорошая статья, в которой упоминается что-то под названием « Полиабетическая замена», что может быть тем, что вам нужно после smashingmagazine.com/2014/06/…
johnp
Это отличный материал, который очень помогает моей цели! Спасибо, что поделились. Интересно узнать больше об этой технике, возможно, вы захотите включить информацию о своем комментарии в ответ, чтобы она стала более заметной, когда кто-то еще просматривает это сообщение.
Fiztban

Ответы:

15

Да, ты можешь сделать это. Вы делаете это с помощью функции OpenType, которая называется Contextual Alternates (calt).

Образец кода:

feature calt { 
    lookup calt1 { 
       sub a' b  by a.ss01 ; 
       } calt1; 
    }

В основном, вы говорите шрифт: замените a + b на a.ss01 + b

Это хороший обзор возможностей замены OpenType .

спираль
источник
Спасибо за помощь. Статья действительно интересная и полезная, поскольку показывает, как начать добиваться этого. Если у вас есть другие источники, о которых вы знаете, я был бы очень признателен, если бы вы добавили их в свой ответ. Счастливого Рождества / Счастливых Вам праздников.
Fiztban
10

Да, это можно сделать. Существует несколько интеллектуальных стандартов шрифтов, а именно AAT, Graphite и OpenType, которые позволяют это делать. Последний, кажется, последующий.

Вот пример, который я создал, используя такие методы. Обратите внимание, что буква s отображается по-разному в зависимости от предыдущей и следующей буквы:

Пример для контекстной функции

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

Wrzlprmft
источник
Спасибо за ваш ответ, это именно то, что я искал, и если это требует некоторого программирования, я могу не только запрограммировать его на альтернативы, основанные на поиске, но также я могу попытаться включить некоторые случайные варианты, поскольку почерк никогда не бывает идеальным. Но это еще одна часть проекта. Я хотел бы пометить это как ответ, но в приведенном ниже ответе также содержался метод, с которого можно начать, поэтому я склонен принять его, не могли бы вы расширить свой, чтобы я мог принять его, пожалуйста?
Fiztban
С праздником Вас и Рождеством!
Fiztban
3
Я не знаю много о METAFONT (движок шрифтов, созданный автором TeX Дональдом Кнутом), но я почти уверен, что он может это сделать.
Йорг Миттаг
Интересно, я обязательно посмотрю!
Fiztban