Jak działa losowy wybór alternatywnych znaków w czcionkach OpenType?

9

Mam pytanie podobne do „Pisanie tekstu z odmianami znaków” : Chciałbym stworzyć swobodną czcionkę w stylu odręcznym, która odtwarza naturalną różnorodność między wystąpieniami tego samego glifu, który można znaleźć w tekście odręcznym. Kontekstowe alternatywy są dobre, ale z tego, co rozumiem, są one najbardziej odpowiednie dla liter łączących się ze sobą niż dla skryptu, w którym wszystkie litery są oddzielone białymi spacjami.

Jedna z odpowiedzi na powyższe pytanie brzmi (nacisk należy do mnie):

Chociaż zwykle masz tylko kilka liter z kontekstową alternatywą, teoretycznie możliwe jest posiadanie kilku formularzy na literę. Ale nie sądzę, że można naprawdę losowo wyłonić ich wygląd, tylko cyklicznie je przeglądać (więc jeśli miałbyś trzy formy „a”, byłyby one używane kolejno i zaczynały powtarzać w „czarny kot usiadł na macie” )

Nie wydaje się to prawdą, ponieważ znalazłem wzmianki o funkcji OpenType o nazwie randomize , która najwyraźniej może to zrobić. Na przykład na tej stronie pakietu TeX :

Oryginalne czcionki Knutha generowały losowo różne kształty. W rzeczywistości nie jest to możliwe w czcionce OpenType; czcionka zawiera raczej kilka wariantów każdego glifu i używa funkcji randomizacji OpenType, aby wybrać wariant dla każdego wywołania .

Więc: czy istnieje mechanizm losowego wyboru wariantów glifów w OpenType i jak to działa? Link do odpowiedniej dokumentacji online lub cytatu ze specyfikacji byłby nieoceniony. Ponadto: czy uważasz, że ten cel ma sens, tj. Znacznie poprawiłby jakość tekstu w składzie, obejmując wiele losowo wybranych wariantów glifów?

F'x
źródło
W niedawnej dyskusji na liście mailingowej Opentype wydawało się, że tylko TeX obsługuje tę randfunkcję (i może niektóre przeglądarki internetowe).
Przywróć Monikę - M. Schröder
@ MartinSchröder Czy masz link do tej dyskusji? to byłaby dobra odpowiedź
F'x
Lista jest tutaj , archiwum jest tutaj . Jak widać, jest dość zamknięty. :-(
Przywróć Monikę - M. Schröder
Jak to działa, w prostych słowach, to matematyka. Jeśli istnieje dziesięć wariantów glifu, funkcja generuje losową liczbę od jednego do dziesięciu i renderuje odpowiedni wariant. W kategoriach programowych należy przyjrzeć się kodowi skryptu „Randomize”.
Moscarda

Odpowiedzi:

2

Uważam, że to, co opisujesz, to kontekstowa funkcja alternatywna typu opentype. ( http://msdn.microsoft.com/en-us/library/ms745109.aspx )

Nick Shinn ma naprawdę interesujący artykuł na temat wielu funkcji dostępnych przy użyciu alternatywnych kontekstów oraz tego, jak używał go w pięciu zaprojektowanych przez siebie czcionkach. Zwłaszcza Duffy Script został użyty w sposób, w jaki opisujesz. ( http://ilovetypography.com/2011/04/01/engaging-contextuality/ )

Patrząc głębiej, udało mi się znaleźć ten post opisujący, jak obracać glify po kolejnych zastosowaniach (które zwykle będą wyglądały losowo): http://forums.adobe.com/message/1785905#1785905

To zanurkuje w sam środek. Mogę spojrzeć dalej, jeśli chcesz czegoś, co zawiera nieco więcej informacji, aby zacząć, lub jeśli źle zrozumiałem twoją pierwszą prośbę.

Anne
źródło
2

Nie grałem z funkcją randomizacji, ale uzyskałem dobre wyniki dzięki szerokiemu wykorzystaniu ligatur.

Większość odmian pisma ręcznego jest związana z kontekstem: po tym następuje, to jest koniec słowa itp. Ligatury OpenType mogą pomieścić wiele odmian, jeśli chcesz dobrze to zaplanować.

Istnieje również legendarna czcionka Beowolf firmy LettError. Tego rodzaju programowanie nie jest przeznaczone dla programistów przeciętnego typu.

** AKTUALIZACJA **

Nadal nie ma odpowiedzi? Myślałem, że jakiś inteligentny programista już by to dla ciebie rozwiązał. Cóż, pozwól mi dodać trochę więcej informacji do puli.

Jedyne znane mi eksperymenty randomizacji (takie jak wspomniany powyżej Beowolf) zostały przeprowadzone przy użyciu PostScript. Jeśli chcesz odejść od OpenType, Luc Devroye napisał artykuł (PDF), który zagłębia się w programowanie rozwiązania PostScript Type 3 w tym problemie. Ma również listę rzeczy związanych z kwestią losowych czcionek w celach informacyjnych.

Jak w przypadku wszystkich typów rzeczy, dyskusja na ten temat na temat Typophile była jakiś czas temu. W tym wątku 8 lat temu Thomas Phinney stwierdził, że moim zdaniem nadal jest prawdą (specyfikacja OpenType niewiele się zmieniła, o czym jestem świadomy):

Pewnie. Zakładając, że chcesz, aby działał w niektórych istniejących aplikacjach, masz niecodzienny wybór, o ile każde podejście jest bardzo ograniczone w sposobie / miejscu działania:

  • OpenType (kontekstowy, WYSIWYG, obecnie obsługiwany tylko przez aplikacje Adobe, dowolne urządzenie wyjściowe, najłatwiejszy do kodowania, ale to niewiele mówi, użyj FontLab lub DTL FontMaster, aby to zrobić)

  • AAT (kontekstowy, WYSIWYG, tylko Mac, obecnie obsługiwany tylko przez kilka aplikacji, dowolne urządzenie wyjściowe, trudne do zakodowania treści kontekstowe, użyj narzędzi wiersza polecenia Apple do skompilowania funkcji w istniejącą czcionkę)

  • Typ 1 (prawdziwy losowy, nie WYSIWYG, będzie działał w wielu aplikacjach, ale nie w najnowszych aplikacjach Adobe, będzie działał tylko z urządzeniami wyjściowymi PostScript, prawdopodobnie będziesz musiał być programistą, aby go kodować)

zwykłe ubrania
źródło
Tak, ligatury pozwalają na zmienność, ale to nie to samo, co randomizacja… Dzięki za powiązany link do Beowolf, nie wiedziałem o tej czcionce. To jest spoko!
F'x
Jeśli naprawdę chcesz uchwycić uczucie pisma ręcznego, wydaje się, że musisz najpierw zidentyfikować opcje ligatur, z których można dokonać losowego wyboru. Połączenie tych dwóch byłoby pięknym wyczynem typu. Spójrz na Sudtipos' pracy: Adios Script, Afera, a zwłaszcza firm kaligrafii przyjść do głowy -> sudtipos.com/fonts/99
cywilu