Care este ' diferența practică dintre un ' glif ' și un ' caracter '?

Am văzut această întrebare în propunerea site-ului de tipografie și mi-a spus că nu „Nu știu răspunsul. Am tratat întotdeauna„ gliful ”și„ caracterul ”ca fiind interschimbabile.


După ce am citit o explicație pe Unicode Pagina modelului de codificare a caracterelor , înțelegerea mea este aproximativ:

  • Caracterele sunt definite prin semnificația lor în limbaj, glifuri, prin aspectul . Deci, legătura pentru combinarea estetică fi este un glif, dar două caractere.

Deci, credința mea este (vă rog să mă corectați dacă am ” m greșesc) că diferența practică ar fi:

  • Analizatorii de text care nu sunt interesați de estetica textului vor citi glifele ca caracterele lor respective. Deci:
    • Dacă ar fi să copiați și să lipiți textul care conține glife într-un editor de text simplu, glifele ar fi convertite în caracterele lor respective (un gliful ligaturii ar deveni f și i )
    • Orice sistem automatizat bine realizat bazat pe analiza textului (de ex. crawlerele motoarelor de căutare, cititoarele de ecran, verificatoarele ortografice) ar interpreta glifele ca fiind caracterele lor respective.
    • Un caracter poate avea multe glifele sau seturile de glifuri. Vreau să spun că un glif poate avea un singur caracter, dar acest lucru nu este clar, deoarece există un exemplu despre articolul legat de 3 glifuri și seturi de glifuri care par să corespundă fiecărui caracter și set de caractere. Nu prea văd cum ar putea funcționa acest lucru: cu siguranță asta înseamnă că va exista inconsistență sau ambiguitate în modul în care acești glifi sunt interpretați, variind în funcție de interpret? (Sau variază în funcție de limbă sau de font?)
    • În timp ce browserele de glifuri (de exemplu, cel din Illustrator) conțin setul complet de glifuri ale unui font, hărțile de caractere (de exemplu, harta de caractere Windows) conțin numai caractere, nu glifele care sunt mai multe caractere, cum ar fi ligaturi (ceva ce nu am observat înainte)

Simt că sunt aproape acolo, dar am înțeles greșit ceva undeva de-a lungul liniei: nu doar chestiunea „Un glif cu mai multe caractere”, dar, de asemenea, copierea și lipirea comportamentului cu ligaturi nu sunt „t destul ceea ce mă așteptam:

  • Copiați ligatura de la Illustrator la această casetă de intrare: lipiți ca fi (două caractere) așa cum era de așteptat .
  • Inserați codul HTML pentru acesta () – se afișează ca ligatură atunci când nu se află într-un bloc de cod (fi – care în acest font nu seamănă prea mult cu o ligatură, dar veți fi see este unul dacă încercați să selectați doar jumătate din acesta), iar codul când vă aflați într-un bloc de cod (fi), așa cum era de așteptat.
  • Copiați și lipiți ligatura redată fără bloc de cod înapoi în caseta de intrare: se lipeste ca caracter de ligatură și se redă ca ligătură, indiferent dacă este sau nu într-un bloc de cod (fi și ). La fel cuvinte care îl conțin: fi t mis fi ts (fit misfits) se lipesc ca greșește greșeli (fit misfits). Poate că depinde dacă locul în care este lipit înțelege codarea utilizată?

Cât de greșită este înțelegerea mea despre acest lucru? Poate cineva să mă înțeleagă: afirmând un clar definire a diferenței dintre glife și caractere (dacă al meu este greșit sau poate fi îmbunătățit) și dați exemple mai clare / mai exacte decât ale mele despre ceea ce înseamnă în practică ?

Comentarii

  • Devine mult mai complicat atunci când aveți scripturi precum araba în care aveți caractere combinate.
  • @MartinSchr ö der +1 Sună ca propoziția de deschidere a unui răspuns excelent … 🙂

Răspuns

Glifele se referă la modul în care este redat textul, caracterele la modul în care este interpretat. Când copiați & lipiți, aplicația sursă oferă, de obicei, mai multe formate. Textul simplu va descompune ligatura fi în f și i, formatul HTML îl poate traduce la entitatea de caractere pe care ați citat-o sau, de asemenea, îl poate descompune în f și i.

În general, relația dintre caractere și glife este n: m. În limbile indic, unele caractere se împart în două glifuri care sunt plasate în locuri diferite ale cuvântului. În latină, cea mai apropiată de acea situație ar fi redarea é ca două glifuri (e și ´).În arabă, fiecare caracter are glifuri diferite în funcție de poziția sa într-un cuvânt: inițial, mijlociu, final sau izolat.

Traducerea de la caractere la glifuri este specifică fiecărei aplicații și caracteristicilor tipografice pe care le acceptă. Pentru textul în limba latină, această traducere a fost simplă, dar fonturile OpenType au introdus caracteristici suplimentare, cum ar fi ligaturi, swashes, forme alternative, majuscule etc.

Din motive practice, vă preocupați doar de glifuri atunci când implementați modul în care o aplicație redă text sau când proiectați un font sau când doriți să aplicați o caracteristică OpenType care înlocuiește unele glifuri cu altele (de exemplu, ligaturi). În caz contrar, punctele de cod Unicode sunt prietenul dvs.

Comentarii

  • Bună utilizator 322483, bine ați venit la GDSE și vă mulțumim pentru răspuns. Dacă aveți întrebări, consultați centrul de ajutor sau trimiteți un ping unuia dintre noi în Chat de design grafic odată ce reputația dvs. este suficientă (20). Continuați să contribuiți și bucurați-vă de site!
  • Scrieți ” În arabă, fiecare caracter are glifuri diferite în funcție de poziția sa într-un cuvânt: inițial, mijlociu, final sau izolat . ” < — ‘ nu ar fi caractere diferite. Engleza are A și a, dar în conversațiile de calcul, A și a sunt caractere diferite. fiecare glif este mapat la un cod diferit. Ebraica are chaf și final chaf (litera chaf la sfârșitul unui cuvânt, arată diferit) și eu ‘ sunt sigur că ‘ s numit ca un caracter diferit în calcul.

Răspuns

Nu cred că înțelegerea ta este incorectă tu ” Vedeți doar sisteme care încearcă să ajute utilizatorul lipind ceea ce crede că dorește. Deoarece unele legături („fi”, „fl”) sunt destul de frecvente în afara sistemelor de tipărire, software-ul recunoaște că utilizatorul probabil nu a introdus acel glif, mai degrabă o altă aplicație și-a transformat caracterele tastate.

Pe scurt : Caracterul se referă la o unitate lingvistică. Glif se referă la o instanță proiectată a acelei unități, fie că este vorba de majuscule, minuscule, cu majuscule, istorice sau variante stilistice.

Comentarii

  • În calcul, A și a sunt caractere diferite. ASCII are 128 de caractere, iar termenul de caracter include A și a ca caractere distincte.
  • Inginerii folosesc o mulțime de cuvinte care nu nu se aliniază cu precedentele din alte industrii. Al tău este un bun exemplu.
  • care a venit cu termenul ” caracter ” și ” glif ” f primul? graficieni sau ingineri de calculatoare? ‘ cred că computerele au venit înainte de proiectarea grafică. Dar poate exista o industrie tipografică care a precedat proiectarea grafică și care a argumentat a precedat computerele în anumite moduri sau a precedat computerele moderne. Cred că, deși oamenii care ar putea răspunde cel mai bine pentru ceea ce este acum designul grafic, este industria tipografică, dar ‘ nu are nicio schimbare în industria tipografică. Dar ‘ ar fi interesant să știm cine a împrumutat de la cine și în ce fel este termenul de caracter.
  • Tipografia a venit mult înainte Inginerie software. Vă rugăm să postați aici dacă întreprindeți cercetarea și găsiți originile. Presupun că este cândva în secolul al XVII-lea. Posibil încă din primii tipografi de la mijlocul anului 16.

Răspuns

Există câteva răspunsuri aici care oferă informații bune despre glifuri vs caractere, dar ele nu abordează cu adevărat sursa confuziei dvs. în ceea ce privește copierea și lipirea.

În primul rând, înțelegerea dvs. este fundamental corectă:

Caracterele sunt definite prin semnificația lor în limbaj, glifuri, prin aspectul lor. Deci, legătura pentru combinarea estetică fi este un glif, dar două caractere.

Merită subliniat faptul că lista de caractere este definită de Unicode standard, care este publicat de Consorțiul Unicode, datorită faptului că „sunt autoritatea codificării textului într-un format care poate fi citit automat. adaugă-l ion la Unicode este un caracter și, prin urmare, demn de a fi inclus, sau un glif și ar trebui să fie gestionat de fonturi.

Menționez acest lucru deoarece confuzia pe care l-ați experimentat mai sus s-a datorat faptului că există mai multe caractere ligate (nu glifuri ) în Unicode.De exemplu, U+FB01 este caracterul pentru fi gatură: http://unicode.org/charts/PDF/UFB00.pdf

Având caractere de legătură în Unicode nu este într-adevăr în spiritul definiției de mai sus pentru ce fel de lucruri ar trebui incluse în standardul Unicode ca caractere, deoarece ligaturile nu au într-adevăr o semnificație independentă de compoziția altor două personaje. Oamenii Unicode sunt conștienți în mod natural de acest lucru, iar Întrebările frecvente Unicode privind ligaturile recunosc la fel de mult:

Ligaturile existente există practic pentru compatibilitate și declanșare rotundă cu seturi de caractere non-Unicode. Utilizarea lor este descurajată.

Existența acestui personaj este în cele din urmă sursa confuziei dvs.

În software-ul implementat corect, copierea textul trebuie să copieze întotdeauna caracterele care au fost specificate, nu glifele și „exact ceea ce se întâmplă” în cele trei exemple ale dvs.

1) În primul exemplu, ați introdus f și i în Illustrator, care a redat o singură ligatură glif . Când ați selectat și copiat acel glif redat, Illustrator a copiat corect f (U+0066) și i (U+0069) caractere în clipboard.

2) În al doilea exemplu, ați introdus codul HTML pentru ligatura caracter (&#64257) în caseta de intrare și a primit corect ligatura glif reprezentând ligatura caracter (. Deoarece caracterul subiacent este de fapt caracterul de ligatură obscur și relativ inutil pe care l-am menționat mai sus, selectând acel glif va copia un singur caracter U+FB01.

3) În al treilea exemplu, copiați ligatura redată caracter U+FB01 care a fost redat în partea 2, care va fi întotdeauna lipit ca acel caracter. Confuzia dvs. principală pare să fie în ceea ce privește diferența dintre codurile entității HTML și caractere, în special în ceea ce privește modul în care sunt redate. în și în afara blocurilor de coduri.

Codul entității HTML &#64257; este un șir de 8 caractere distincte. Renderul HTML al browserului dvs. web înlocuiește cele 8 caractere U+0026 U+0023 U+0036 U+0032 U+0035 U+0037 U+0023 cu caracterul unic unic Unicode U+FB01, pe care apoi îl redă în mod corespunzător. Cu toate acestea, eticheta <code> din HTML dezactivează acest comportament, lăsând cele 8 caractere așa cum sunt.

Când copiați HTML redat, copiați randatul caractere (care sunt diferite de glifele redate ). Astfel, când copiați entitatea HTML redată, caracterul unic U+FB01 este copiat în clipboard.

Când lipiți U+FB01 caracter înapoi în HTML, nu este necesară nicio substituție, ceea ce înseamnă că caracterul este redat ca o ligatură, indiferent dacă se încadrează sau nu într-un <code>.

Răspuns

Caracterele sunt stocate în fișiere text, procesate de aplicații și mișcat, în timp ce glifele reprezintă reprezentarea lor vizuală.

Pentru a avea o imagine clară, să vedem ce se întâmplă atunci când o aplicație încearcă să redea un șir de text pe ecran (într-un mod puțin simplificat):

  • Aplicația a citit mai întâi șirul de text, că acesta este șirul de caractere stocate pe disc sau în memorie.
  • Apoi l-ar trimite către un motor de aspect text, printre unele alte proprietăți, cum ar fi fontul dorit, limba textului și așa mai departe:
    • T motorul de dispunere a textului deschide practic fișierul fontului, îi cere gliful (glifele) corespunzător fiecărui caracter și face o substituție a glifului (cum ar fi înlocuirea glifului pentru f și i cu gliful ligaturii fi) și poziționare (cum ar fi kerning).
    • La sfârșit, motorul de layout are o secvență de glifele, pozițiile lor una față de cealaltă și o mapare între caracterele de intrare și glifele de ieșire. Cartea caracterului către glif este astfel încât să știe că primele două caractere din cuvântul file corespund două primului glif (legătura fi ), al 3-lea caracter la al 2-lea glif și al 4-lea caracter la al 3-lea glif.
  • O bibliotecă de redare grafică este apoi utilizată pentru a „desena” acele glifuri pe ecran folosind forme din font.
  • Când utilizatorul selectează „glifuri” pe ecran, aplicația ar consulta apoi glifarea la maparea textului furnizată de motorul de aspect pentru a găsi ce parte a textului de intrare corespunde cu ceea ce utilizatorul selectează și trimite textul în clipboard atunci când utilizatorul îl copiază.
  • Același lucru se întâmplă atunci când utilizatorul introduce cursorul în mijlocul textului și începe să tasteze, maparea determină unde în textul de intrare să introducă noile caractere, iar textul de actualizare este trimis la motorul de aspect pentru proces și redesenat și așa mai departe.

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *