Czy powinienem dbać o kolizje diakrytyczne?

11

Kiedy projektuję krój pisma, jak mam traktować znaki diakrytyczne, które kolidowałyby z sąsiadującymi glifami - w tym innymi znakami diakrytycznymi?

W tym przykładzie widać, że występuje wiele kolizji:

Zderzające się znaki diakrytyczne

To jest skrajny przykład, który nigdy się nie zdarzy w normalnym tekście i zakładam, że kolizje akcentowe są raczej wyjątkiem niż normą, ale ponieważ nie mówię i nie znam większości języków, które używają znaków diakrytycznych, nie jestem pewnie.

Widzę kilka opcji radzenia sobie z tymi kolizjami:

  1. Dostosuj wskaźniki glifów, aby uwzględnić znaki diakrytyczne. Rozwiązałoby to problem kolizji, ale niepotrzebnie wpłynęłoby na wskaźniki nawet w (większości) przypadkach, gdy nie jest to potrzebne.

  2. Ręcznie kernuj problematyczne pary znaków. Ręczne kernowanie wszystkich możliwych kolizji będzie długim procesem, ponieważ - w większości przypadków - będą to w najlepszym wypadku przypadki skrajne.

  3. Twórz ligatury dla często występujących kolizji. To brzmi jak dobry pomysł na najczęstsze zdarzenia, ale nie mam pojęcia, które pary występują w ogóle w normalnym tekście, nie wspominając o tym często.

  4. Zapomnij o tym ... Jeśli te kolizje nie są powszechne w zwykłym tekście, być może strata czasu na ich dostosowanie.

Czy powinienem dbać o te kolizje? Jeśli tak, to jak mam sobie z nimi poradzić?

Czy istnieje lista często występujących par kolizji, do których mogę się odwoływać? Pomogłoby mi to w kerningu tylko takie pary, które faktycznie wystąpią.

Cai
źródło
Co najmniej w języku fińskim masz słowa, które mają podwójne wiwele obok siebie, takie jak na przykład pää (głowa) lub käyttöön (do użycia / do konsumpcji) W rzeczywistości są one dość powszechne, gdy używasz deklinacji (tak działa ten język jest językiem aglutynacyjnym)
joojaa
Dobre pytanie. Nigdy o tym nie myślałem. Wstydź się. U_U
Rafael
Są to wszystkie znaki wysokości x. Co o kolizji z wierzchołków f, t, di b? Coś podobnego: podczas dostosowywania czcionki znaków fonetycznych widziałem kombinację fi wiele znaków akcentowanych zderzonych („wspólna” ligatura fito dobrze znany przypadek). Stworzyłem alternatywę fz krótszą flagą i rozwiązałem ją za pomocą reguł OpenType, więc pojawiła się tylko wtedy, gdy było to konieczne.
usr2564301,
@RadLexus oczywiście, moim przykładem było pokazanie kolidujących ze sobą akcentów, nie jestem zainteresowany tymi przypadkami. „fi” jest powszechną ligaturą, tak, ale co z „fï”, „fî”, „fī”, „fì”?
Cai
1
(co ciekawe, wszystkie te przykłady kolidują w moim komentarzu)
Cai

Odpowiedzi:

5

Tak, powinieneś się tym przejmować. Istnieje kilka języków, w których dwa znaki diakrytyczne mogą znajdować się obok siebie lub znaki diakrytyczne po f. Na przykład Aspell uważa, że měšťáčtější i nejjidášštější są poprawnymi słowami czeskimi¹, a pfählen, fühlen i föhnen to słowa niemieckie.

Istnieją dwa inne warianty, które są zwykle stosowane:

  1. Używaj specjalnych klas kerningu, a nawet tabel - nie musisz kernować wszystkich tych par ręcznie, zamiast tego inteligentnie grupujesz wszystkie swoje postacie. Na przykład dla znaków diakrytycznych umieszczonych nad literą można spojrzeć na następujące grupy:

    1. glify bez wstępników, np. a, c, e, g;

    2. glify z nienadwieszonymi wznoszącymi się lub diakrytycznymi, np. b, d, i, ä, ñ.

    3. glify z wiszącymi wznoszącymi się lub diakrytami, np. f, ľ, ï.

    Teraz musisz wziąć pod uwagę tylko następujące grupy przypadków, dla których możesz użyć różnych tabel kerningu:

    • 1–1, 1–2, 2–1 i 2–2 - Możesz tutaj zastosować standardowe kerning: wskaźniki dla co, cö, ćo i ćö są identyczne (zakładając, że znaki diakrytyczne nie wystają w stosunku do twojego określonego krój pisma).

    • 3–1 i 1–3 są również dość proste: ïo powinien mieć takie same wskaźniki jak io.

    • Tylko 3–2, 2–3 i 3–3 wymagają uwagi, ale zwykle można umieścić różne glify w tej samej klasie kerningu. Na przykład î może jądro jak ǐ, a ľ może jądro analogicznie do f. Co więcej, ponieważ znaki diakrytyczne lub wstępujące dominują w kerningu, możesz teraz grupować glify, które inaczej wymagałyby innego kerningu. Na przykład, jeśli o i õ były w innej klasie kerningu niż n i ñ dla kerningów w 1–1, 1–2 i 2–1, mogą być teraz w tej samej klasie, np. Ponieważ kerns fõ są takie same jak fñ.

    W ten sposób możesz odpowiednio uwzględnić wszystkie przypadki bez wpływu na swoje regularne miary, biorąc pod uwagę każdą istniejącą ortografię i konieczność użycia zbyt drobnoziarnistych klas kerningu. Aby zobaczyć to w akcji, możesz wziąć przy stole do kerningu Unifraktur Maguntia (nad którym pracowałem).

  2. Użyj formularzy kontekstowych - jest to alternatywa dla ligatur, jeśli kerning spowodowałby niepożądanie dużą przerwę. Na przykład Linux Libertine ma alternatywne wąskie f, które jest używane, jeśli następuje litera ze znakiem diakrytycznym (zauważ, że kerning jest nieco inny):

    Alternatywa f w Linux Libertine


¹ Nie mam pojęcia, co oznaczają te słowa, dlatego mam nadzieję, że dla komedii są to rażące przekleństwa.

Wrzlprmft
źródło
Bez problemu mogę dostać większość glifów do istniejących klas kerningowych (lub nowych klas wspólnych), ale są zdecydowanie przypadki, które wymagają specyficznego traktowania - szczególnie w kroju, nad którym teraz pracuję, który jest dość wąski / skondensowany, więc ma uczciwe ilość wiszących znaków diakrytycznych
Cai
Rzuciłem też okiem na kerning w UniFraktur ... Imponujący. Rozbudowany co najmniej.
Cai