Как работает случайный выбор альтернативных символов в шрифтах OpenType?

9

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

Один из ответов на вышеупомянутый вопрос говорит (акцент мой):

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

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

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

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

F'x
источник
В недавнем обсуждении списка рассылки Opentype казалось, что только TeX поддерживает эту randфункцию (и, возможно, некоторые веб-браузеры).
Восстановить Монику - М. Шредер
@ MartinSchröder у вас есть ссылка на это обсуждение? это было бы хорошим ответом
F'x
Список здесь , архив здесь . Как видите, он довольно закрыт. :-(
Восстановить Монику - М. Шредер
Как это работает, в простых терминах, математика. Если есть десять вариантов глифа, функция генерирует случайное число от одного до десяти и отображает соответствующий вариант. В программном плане вам придется посмотреть на код этого сценария "Randomize".
Москарда

Ответы:

2

Я полагаю, что вы описываете контекстную альтернативу opentype. ( http://msdn.microsoft.com/en-us/library/ms745109.aspx )

У Ника Шинна есть действительно интересная статья о многих функциях, доступных с использованием контекстных альтернатив, и о том, как он использовал его в пяти шрифтах, которые он разработал. В частности, Duffy Script использовался в том виде, в каком вы его описываете. ( http://ilovetypography.com/2011/04/01/engaging-contextuality/ )

Более подробно, я смог найти этот пост, описывающий, как вращать ваши глифы при последующем использовании (что обычно будет казаться случайным): http://forums.adobe.com/message/1785905#1785905

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

Энн
источник
2

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

Большинство изменений в почерке связано с контекстом: из этого следует, что за этим следует конец слова и т. Д. Лигатуры OpenType могут приспособиться к большим изменениям, если вы хотите хорошо спланировать их.

Существует также легендарный шрифт Beowolf от LettError. Такое программирование не для разработчика среднего типа.

** ОБНОВИТЬ **

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

Единственные настоящие эксперименты по рандомизации, о которых я знаю (как упомянуто выше Беоволфа), были сделаны с PostScript. Если вы готовы отойти от OpenType, Люк Деврой сделал документ (PDF), в котором подробно рассматривается программирование решения PostScript Type 3 для этой проблемы. У него также есть список вещей, связанных с проблемой рандомизированных шрифтов для справки.

Как и во всех типах вещей, некоторое время назад по этой теме велась дискуссия о Typophile . В этой ветке 8 лет назад Томас Финни сделал это заявление, которое, я думаю, все еще остается верным (спецификация OpenType не сильно изменилась, о чем я знаю):

Конечно. Предполагая, что вы хотите, чтобы он работал в некоторых существующих приложениях, у вас есть неинтересный выбор, поскольку каждый подход очень ограничен в том, как / где он работает:

  • OpenType (контекстный, WYSIWYG, в настоящее время поддерживается только приложениями Adobe, любым устройством вывода, проще всего кодировать, но это мало что говорит, используйте FontLab или, возможно, DTL FontMaster, чтобы сделать это)

  • AAT (контекстная, WYSIWYG, только Mac, в настоящее время поддерживается только несколькими приложениями, любым устройством вывода, трудно кодируемым контекстным материалом, использует инструменты командной строки Apple для компиляции функций в уже существующий шрифт)

  • Тип 1 (действительно случайный, не-WYSIWYG, будет работать во многих приложениях, но не в самых последних приложениях Adobe, будет работать только с устройствами вывода PostScript, вам, вероятно, придется быть программистом, чтобы его кодировать)

простая одежда
источник
Да, лигатуры допускают вариации, но это не то же самое, что рандомизация ... Спасибо за ссылку на Beowolf, я не знал об этом шрифте. Это круто!
F'x
Если вы действительно хотите уловить чувство почерка, вам, вероятно, нужно сначала определить параметры лигатуры, из которых можно сделать случайный выбор. Сочетание этих двух было бы прекрасным подвигом типового дизайна. Взгляните на работу Судтипоса: на ум приходят Adios Script, Affair и, в особенности, «Деловой почерк» -> sudtipos.com/fonts/99
штатском