Jaka ' jest praktyczna różnica między ' glifem ' a ' znak '?

Widziałem to pytanie w propozycji witryny typograficznej i drażniło mnie, że nie „Nie znam odpowiedzi. Zawsze traktowałem„ glif ”i„ znak ”jako wymienne.


Po przeczytaniu wyjaśnienia na temat Unicode Model kodowania znaków , rozumiem mniej więcej tak:

  • Znaki są definiowane przez ich znaczenie w języku, glify, przez ich wygląd . Tak więc ligatura do estetycznego łączenia fi to jeden glif, ale dwa znaki.

Tak więc sądzę (popraw mnie, jeśli ja) mylę się), że praktyczna różnica byłaby taka:

  • Parsery tekstu, które nie są zainteresowane estetyką tekstu, odczytują glify jako odpowiadające im znaki. A więc:
    • Jeśli chcesz skopiować i wkleić tekst zawierający glify do zwykłego edytora tekstu, glify zostaną przekonwertowane na odpowiadające im znaki (a glif ligatury stałby się f i i )
    • Każdy dobrze wykonany automatyczny system oparty na analizie tekstu (np. roboty wyszukiwarek, czytniki ekranu, moduły sprawdzania pisowni) zinterpretowałby glify jako odpowiadające im znaki.
    • Jeden znak może mieć wiele glify lub zestawy glifów. Chcę powiedzieć, że jeden glif może mieć tylko jeden znak, ale najwyraźniej nie jest to właściwe, ponieważ istnieje przykład na połączonym artykule 3 glifów i zestawów glifów, które wydają się odpowiadać jednemu znakowi i zestawowi znaków. Nie bardzo rozumiem, jak to mogłoby działać: z pewnością oznacza to niespójność lub niejednoznaczność w sposobie interpretowania tych glifów, różniących się od interpretatora? (Lub czy różni się to w zależności od języka lub czcionki?)
    • Podczas gdy przeglądarki glifów (np. Ta w programie Illustrator) zawierają pełny zestaw glifów czcionki, mapy znaków (np. Mapa znaków Windows) zawierają tylko znaki, a nie glify składające się z wielu znaków, takich jak ligatury (coś, czego wcześniej nie zauważyłem)

Czuję, że prawie jestem na miejscu, ale wyraźnie źle zrozumiałem coś gdzieś w tym wierszu: nie tylko kwestię „Jeden glif wiele znaków”, ale także kopiowanie i wklejanie z ligaturami nie jest „nie całkiem tym, czego się spodziewałem:

  • Skopiuj ligaturę z programu Illustrator do tego pola wprowadzania: wkleja jako fi (dwa znaki) zgodnie z oczekiwaniami .
  • Wklej dla niego kod HTML () – wyświetla jako ligaturę, gdy nie znajduje się w bloku kodu (fi – co w tej czcionce nie wygląda jak ligatura, ale będziesz” zobacz, jeśli spróbujesz zaznaczyć tylko połowę), a kod znajdujący się w bloku kodu (fi), zgodnie z oczekiwaniami.
  • Skopiuj i wklej renderowana ligatura nie będąca blokiem kodu z powrotem do pola wejściowego: wkleja się jako znak ligatury i renderuje jako ligatura niezależnie od tego, czy znajduje się w bloku kodu, czy nie (fi i ). Podobnie słowa zawierające go: fi t mis fi ts (fit misfits) wkleja jako fi t mis fi ts (fit misfits). Może to zależy od tego, czy miejsce, w którym jest wklejany, rozumie użyte kodowanie?

Jak bardzo źle to rozumiem? Czy ktoś może mnie naprawić: podając jasne definicja różnicy między glifami a znakami (jeśli moje jest błędne lub można je poprawić) i podać jaśniejsze / dokładniejsze niż moje przykłady tego, co oznacza w praktyce ?

Komentarze

  • Staje się to o wiele bardziej skomplikowane, gdy masz skrypty takie jak arabskie, w których łączysz znaki.
  • @MartinSchr ö der +1 Brzmi jak pierwsze zdanie doskonałej odpowiedzi … 🙂

Odpowiedź

Glify odnoszą się do sposobu renderowania tekstu, a znaki do sposobu jego interpretacji. Podczas kopiowania wklejania &, aplikacja źródłowa zwykle udostępnia kilka formatów. Zwykły tekst zdekomponuje fi ligaturę na fi i, format HTML może przetłumaczyć ją na cytowaną jednostkę typu char lub również zdekomponować ją w fi i.

Ogólnie relacja między znakami i glifami to n: m. W językach indyjskich niektóre znaki są podzielone na dwa glify, które są umieszczone w różnych miejscach słowa. W języku łacińskim najbliższe tej sytuacji byłoby renderowanie é jako dwóch glifów (e i ´).W języku arabskim każdy znak ma różne glify w zależności od jego pozycji w słowie: początkowy, środkowy, końcowy lub izolowany.

Tłumaczenie znaków na glify jest specyficzne dla każdej aplikacji i obsługiwanych przez nią funkcji typograficznych. W przypadku tekstu łacińskiego to tłumaczenie było proste, ale czcionki OpenType wprowadziły dodatkowe funkcje, takie jak ligatury, znaki kaligraficzne, formy alternatywne, kapitaliki itp.

Ze względów praktycznych glifami zajmujesz się tylko podczas implementowania sposobu, w jaki aplikacja renderuje tekst, kiedy projektujesz czcionkę lub gdy chcesz zastosować funkcję OpenType, która zastępuje niektóre glify innymi (np. ligaturami). W przeciwnym razie punkty kodowe Unicode są Twoimi przyjaciółmi.

Komentarze

  • Witaj użytkowniku322483, witaj w GDSE i dziękuję za odpowiedź. Jeśli masz jakieś pytania, odwiedź centrum pomocy lub skontaktuj się z jednym z nas w czacie dotyczącym projektowania graficznego gdy twoja reputacja będzie wystarczająca (20). Wspieraj dalej i ciesz się witryną!
  • Piszesz ” W języku arabskim każdy znak ma różne glify w zależności od jego pozycji w słowie: początkowy, środkowy, końcowy lub izolowany . ” < — Nie ' t to byłyby różne znaki. Angielski ma A i a, ale w informacjach mówionych A i a to różne znaki. każdy glif jest mapowany na inny kod. Hebrajski ma chaf i final chaf (litera chaf na końcu słowa wygląda inaczej) oraz i ' m pewnie, że ' s określane jako inny znak w informatyce.

Odpowiedź

Nie sądzę, że twoje rozumienie jest błędne, ty ” po prostu widzę systemy, które próbują pomóc użytkownikowi, wklejając to, co według niego chcą. Ponieważ niektóre ligatury („fi”, „fl”) są dość powszechne poza systemami składu, oprogramowanie rozpoznaje, że użytkownik prawdopodobnie nie wprowadził tego glifu, a inna aplikacja przekształciła wpisane znaki.

W skrócie : Znak odnosi się do jednostki językowej. Glif odnosi się do zaprojektowanej instancji tej jednostki, niezależnie od tego, czy będzie to wielka, mała, mała, historyczna czy stylistyczna wersja.

Komentarze

  • W informatyce A i a to różne znaki. ASCII ma 128 znaków, a termin„ znak ”zawiera A i a jako odrębne znaki.
  • Inżynierowie używają wielu słów, które nie t jest zgodne z precedensami w innych branżach. Twój jest dobrym przykładem.
  • który wymyślił termin ” znak ” i ” glyph ” f po pierwsze? graficy czy inżynierowie komputerowi? i ' d myślałem, że komputery pojawiły się przed projektem graficznym. Ale może istnieć przemysł poligraficzny, który poprzedzał projektowanie graficzne i pod pewnymi względami poprzedzał komputery lub wyprzedzał współczesne komputery. Wydaje mi się, że osobami, które najlepiej odpowiadałyby za to, co obecnie jest projektowaniem graficznym, jest przemysł poligraficzny, ale ' nie ma wymiany stosów w branży poligraficznej. Ale ' byłoby interesujące wiedzieć, kto od kogo pożyczył i w jaki sposób termin Znak.
  • Typografia pojawiła się dawno wcześniej Inżynieria oprogramowania. Napisz tutaj, jeśli podejmiesz badania i znajdziesz ich pochodzenie. Domyślam się, że będzie to gdzieś w XVII wieku. Prawdopodobnie już od pierwszych typografów w połowie XVI wieku.

Odpowiedź

Jest tutaj kilka odpowiedzi które dostarczają dobrych informacji o glifach i znakach, ale tak naprawdę nie odnoszą się do źródła twojego pomieszania z kopiowaniem i wklejaniem.

Po pierwsze, twoje rozumienie jest zasadniczo poprawne:

Znaki są definiowane przez ich znaczenie w języku, glify, przez ich wygląd . Tak więc ligatura do estetycznego łączenia fi to jeden glif, ale dwa znaki.

Warto podkreślić, że lista znaków jest zdefiniowana przez kod Unicode standard, który jest publikowany przez Konsorcjum Unicode, ze względu na fakt, że są one uprawnione do kodowania tekstu w formacie nadającym się do odczytu maszynowego. Powyższa definicja jest zasadniczo podstawową wytyczną stosowaną przez członków Konsorcjum Unicode w celu ustalenia, czy niektóre z proponowanych addit ion to Unicode to znak i dlatego godny włączenia lub glif i powinien być obsługiwany przez renderery czcionek.

Wspominam o tym, ponieważ zamieszanie z powyższego wynikało, że istnieje kilka znaków ligatur (a nie glifów ) w Unicode.Na przykład U+FB01 to znak fi ligatury: http://unicode.org/charts/PDF/UFB00.pdf

Posiadanie znaków ligatur w Unicode nie jest w rzeczywistości zgodne z duchem powyższej definicji dla tego, jakie rodzaje rzeczy powinny być zawarte w standardzie Unicode jako znaki, ponieważ ligatury tak naprawdę nie mają znaczenia niezależnego od skład dwóch innych postaci. Ludzie korzystający z Unicode są tego naturalnie świadomi, a FAQ Unicode na temat ligatur przyznaje to samo:

Istniejące ligatury istnieją zasadniczo ze względu na kompatybilność i odwrotne działanie z zestawami znaków innych niż Unicode. Odradza się ich używanie.

Istnienie tej postaci jest ostatecznie źródłem twojego zamieszania.

W prawidłowo zaimplementowanym oprogramowaniu kopiowanie tekst powinien zawsze kopiować podane znaki , a nie glify , i „dokładnie to” dzieje się w Twoich trzech przykładach.

1) W pierwszym przykładzie wpisałeś f i i do programu Illustrator, który renderował pojedynczą ligaturę glif . Po wybraniu i skopiowaniu tego renderowanego glifu program Illustrator poprawnie skopiował f (U+0066) i i (U+0069) znaków do schowka.

2) W drugim przykładzie wpisałeś kod HTML dla znaku ligatury (&#64257) w polu wprowadzania i poprawnie uzyskał glif ligatury reprezentujący znak ligatury (. Ponieważ bazowy znak jest w rzeczywistości niejasnym i stosunkowo bezcelowym znakiem ligatury, o którym wspomniałem powyżej, wybranie ten glif skopiuje pojedynczy znak U+FB01.

3) W trzecim przykładzie „ponownie kopiujesz renderowany znak ligatury znak U+FB01, który został wyrenderowany w części 2, który zawsze będzie wklejany jako ten znak. Wydaje się, że głównym nieporozumieniem jest różnica między kodami encji HTML a znakami, szczególnie w odniesieniu do sposobu ich renderowania w blokach kodu i poza nimi.

Kod jednostki HTML &#64257; to ciąg 8 różnych znaków. Mechanizm renderujący HTML przeglądarki zastępuje te 8 znaków U+0026 U+0023 U+0036 U+0032 U+0035 U+0037 U+0023 z pojedynczym znakiem Unicode U+FB01, który następnie odpowiednio renderuje. Jednak tag <code> w HTML wyłącza to zachowanie, pozostawiając te 8 znaków bez zmian.

Kiedy kopiujesz wyrenderowany HTML, kopiujesz wyrenderowany znaki (które różnią się od renderowanych glifów ). Dlatego podczas kopiowania renderowanej jednostki HTML pojedynczy znak U+FB01 jest kopiowany do schowka.

Po wklejeniu U+FB01 z powrotem do kodu HTML, nie ma potrzeby zastępowania, co oznacza, że znak jest renderowany jako ligatura niezależnie od tego, czy mieści się w <code>.

Odpowiedź

Znaki to znaki przechowywane w plikach tekstowych, przetwarzane przez aplikacje i poruszane, podczas gdy glify są ich wizualną reprezentacją.

Aby uzyskać wyraźny obraz, zobaczmy, co się stanie, gdy aplikacja spróbuje wyrenderować ciąg tekstu na ekranie (w nieco uproszczony sposób):

  • Aplikacja najpierw odczyta ciąg tekstowy, że jest to ciąg znaków przechowywany na dysku lub w pamięci.
  • Następnie wysłałby go do silnika układu tekstu, między innymi inne właściwości, takie jak żądana czcionka, język tekstu i tak dalej:
    • T Mechanizm układu tekstu zasadniczo otwiera plik czcionki, pyta go o glify odpowiadające każdemu znakowi i dokonuje podstawienia glifów (np. zastąpienie glifu dla f i i z glifem ligatury fi) i pozycjonowaniem (jak kerning).
    • Na końcu silnik układu ma sekwencję glify, ich pozycje względem siebie oraz odwzorowanie między znakami wejściowymi a glifami wyjściowymi. Odwzorowanie znaku na glif jest tak, że wie, że pierwsze dwa znaki w słowie file odpowiadają dwóm pierwszym glifom (ligatura fi ), trzeci znak do drugiego glifu i czwarty znak do trzeciego glifu.
  • Biblioteka renderowania grafiki jest następnie używana do „rysowania” tych glifów na ekranie za pomocą kształty z czcionki.
  • Gdy użytkownik wybierze „glify” na ekranie, aplikacja zapozna się z mapowaniem glifu na tekst zapewnianym przez silnik układu, aby ustalić, która część tekstu wejściowego odpowiada temu, użytkownik wybiera i wysyła ten tekst do schowka, gdy użytkownik go kopiuje.
  • To samo dzieje się, gdy użytkownik umieści kursor w środku tekstu i zacznie pisać, mapowanie określa, gdzie w tekście wejściowym wstawić nowe znaki, a tekst aktualizacyjny jest wysyłany do mechanizmu układu do przetwarzać i przerysowywać i tak dalej.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *