Czy czcionkę można zaprojektować tak, aby znaki zależały od poprzednich znaków w wpisanym słowie?

13

Podejmuję się projektu zaprojektowania własnej czcionki do projektu osobistego, który będzie przypominał moje pismo ręczne. Przeczytałem kilka dobrych przewodników, aby uzyskać ogólny obraz tego, co trzeba, aby to osiągnąć, ten był szczególnie dobry, który znalazłem.

Nie mogę znaleźć nigdzie, co sugerowałoby, że można robić to, co chciałbym; czy litera w czcionce może mieć różny wygląd w zależności od poprzedzających ją liter?

Moim celem byłoby, aby litery łączyły się tak, jak robią to w piśmie, ale aby to zrobić, zmieniam ich kształt, kiedy piszę, aby łączyć się ze sobą na podstawie tego, jaki list napisałem wcześniej. Czy można zaprogramować czcionkę tak, aby każda litera dostosowywała się na podstawie poprzednio wpisanej?

Fiztban
źródło
3
Nic nie wiem o technikach wykorzystywanych w alternatywnych postaciach, ale jednym z punktów odniesienia, który może być interesujący do zbadania, jest krój pisma Zygmunta Freuda. Został zaprojektowany, aby zmieniać w zależności od wpisanej materii. To jest dobry artykuł i wspomina coś o nazwie Podstawienie polialfabetyczne, które może być tym, czego szukasz po smashingmagazine.com/2014/06/…
johnp
To jest doskonały materiał, który pomaga tonie w moim celu! Dziękuję za podzielenie się. Interesujące jest, aby zobaczyć więcej zastosowanej techniki, możesz zamieścić informacje o komentarzach w odpowiedzi, aby zyskały lepszą widoczność, gdy ktoś wyświetli ten post.
Fiztban,

Odpowiedzi:

15

Tak, możesz to zrobić. Robisz to za pomocą funkcji OpenType o nazwie Alternatywne kontekstowe (calt).

Przykładowy kod:

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

Zasadniczo mówisz czcionce: zamień a + b na a.ss01 + b

To dobry przegląd funkcji podstawiania OpenType .

spirala
źródło
Dziękuję za pomoc Artykuł jest naprawdę interesujący i przydatny, ponieważ pokazuje, jak zacząć od tego dążyć. Jeśli masz inne znane Ci źródła, byłbym wdzięczny za dodanie ich do swojej odpowiedzi. Wesołych Świąt / Wesołych Świąt dla Ciebie.
Fiztban,
10

Tak, można to zrobić. Istnieje kilka inteligentnych standardów czcionek, a mianowicie AAT, Graphite i OpenType, które pozwalają na to. Ten ostatni wydaje się być następcą.

Oto przykład, który stworzyłem przy użyciu takich technik. Zwróć uwagę, jak litera s jest renderowana inaczej na podstawie litery poprzedzającej i następującej:

Przykład funkcji kontekstowej

To, jak najlepiej osiągnąć cel, zależy od twoich szczegółów, ale prawie na pewno chcesz pracować z klasami wyszukiwania i formami kontekstowymi.

Wrzlprmft
źródło
Dziękuję za odpowiedź, dokładnie tego szukałem, a jeśli wymaga to programowania, mogę nie tylko zaprogramować, aby mieć alternatywne wersje na podstawie wyszukiwania, ale mogę także spróbować wprowadzić losowe odmiany, ponieważ pismo ręczne nigdy nie jest idealne. Ale to kolejna część projektu. Chciałbym zaznaczyć to jako odpowiedź, ale w poniższej odpowiedzi znalazła się również metoda, od której można zacząć, więc jestem skłonny ją zaakceptować. Czy mógłbyś ją rozszerzyć, aby ją zaakceptować?
Fiztban,
I Wesołych Świąt / Wesołych Świąt dla Ciebie!
Fiztban,
3
Nie wiem wiele o METAFONT (silnik czcionek stworzony przez autora TeXa, Donalda E. Knutha), ale jestem prawie pewien, że może to zrobić.
Jörg W Mittag,
Ciekawe, na pewno to sprawdzę!
Fiztban,