'Glif' ve 'karakter' arasındaki pratik fark nedir?


26

Bu soruyu Tipografi sitesi önerisinde gördüm ve yanıtı bilmediğim için beni şaşırttı. Her zaman 'glif' ve 'karakter' e birbirinin yerine kullanılabilir olarak davrandım.


Unicode Karakter Kodlama Modeli sayfasında bir açıklama okuduktan sonra , benim anlayışım kabaca şudur:

  • Karakterler dillerdeki anlamlarıyla , gliflerle, görünümleriyle tanımlanır . Bu yüzden, estetik olarak birleştirme için birleştirme fi bir glif değil, iki karakterdir.

Öyleyse benim inancım (lütfen yanılıyorsam beni düzeltin) pratik farkın olacağı yönünde:

  • Metnin estetiğiyle ilgilenmeyen metin ayrıştırıcıları glifleri kendi karakterleri olarak okurlar. Yani:
    • Glif içeren metni kopyalayıp düz bir metin düzenleyiciye yapıştırırsanız, glifler kendi karakterlerine dönüştürülür (bir bitiş glifi olur fve i)
    • Metin ayrıştırmaya dayalı iyi yapılmış tüm otomatik sistemler (örneğin, arama motoru tarayıcıları, ekran okuyucular, yazım denetleyicileri), glifleri ilgili karakterleri olarak yorumlar.
    • Bir karakter birçok glif veya glif kümesine sahip olabilir. Bir glifin yalnızca bir karaktere sahip olabileceğini söylemek istiyorum, ancak bu açıkça her biri bir karaktere ve karakter kümesine karşılık gelen görünen 3 glif ve glif kümesine bağlı bir örnekte olduğu için doğru değil. Bunun nasıl işe yarayacağını tam olarak görmüyorum: elbette bu, bu gliflerin nasıl yorumlandığına, yorumlayıcıya göre farklılık gösterdiğine tutarsızlık ya da belirsizlik olacağı anlamına geliyor? (veya dile veya yazı tipine göre değişiyor mu?)
    • Glif tarayıcılar (örneğin Illustrator'daki gibi) bir yazı tipinin tam glif kümesini içerirken, karakter haritaları (örneğin, Windows karakter haritası) sadece bitiş harfleri gibi birden çok karakter olan glifleri değil (daha önce farketmediğim bir şey) karakterleri içerir.

Neredeyse orada gibiyim ama hat boyunca açıkça yanlış anlaşılan şey bir yere ettik: kopyalayarak ve düğüm atılmış davranışı yapıştırarak, ayrıca sadece "Bir kabartma birden karakterler" şey, ama değil oldukça beklediğim:

  • Ligatörü Illustrator'dan bu giriş kutusuna kopyalayın : fibeklendiği gibi (iki karakter) yapıştırır .
  • Bunun için HTML kodunda yapıştır ( fi) - bir kod bloğunda olmadığı zaman bitişik harf olarak görüntülenir (fi - bu yazı tipinde bir bitişik harf gibi görünmüyor, ancak göreceksiniz ki sadece yarısını seçmeyi deniyorsanız onun) ve fibeklendiği gibi bir kod bloğunda ( ).
  • İşlenen kod-blok-olmayan ligatı tekrar giriş kutusuna kopyalayıp yapıştırın: bitiş karakteri olarak yapıştırır ve bir kod bloğunda olup olmadığına bakılmaksızın, ligasyon olarak işler (fi ve ). Benzer şekilde bunu içeren kelimeler: fi t mis kazancına ( fit misfits) olarak macunlar fi t mis kazancına ( fit misfits). Belki de yapıştırıldığı yer kullanılan kodlamayı anlasın mı?

Bunu anlamam ne kadar yanlış? Birisi beni haklı çıkartabilir: glifler ve karakterler arasındaki farkın net bir tanımını belirtebilir mi (eğer mayın yanlışsa veya geliştirilebilirse) ve pratikte bunun anlamını benimkinden daha net / daha doğru örnekler verebilir mi?


2
Karakterleri birleştireceğiniz arapça gibi senaryolarınız olduğunda bu çok daha karmaşık hale gelir.
Monica’yı eski durumuna getirin - M. Schröder

1
@ MartinSchröder +1 Mükemmel bir cevabın açılış cümlesine benziyor ... :)
user56reinstatemonica8

Yanıtlar:


4

Glifler metnin nasıl işlendiğine, karakterlerin nasıl yorumlandığına ilişkindir. Kopyalayıp yapıştırdığınızda, kaynak uygulama genellikle birkaç biçim seçeneği sunar. Düz metin, f fini i'yi f ve i'ye ayrıştırır, HTML formatı bunu alıntı yaptığınız karaktere çevirebilir veya f ve i'de deşifre eder.

Genel olarak karakterler ve glifler arasındaki ilişki n: m'dir. Hintçe dillerinde bazı karakterler kelimenin farklı yerlerine yerleştirilmiş iki glife bölünür. Latince'de bu duruma en yakın olan é'yi iki glif (e ve ´) olarak gösterecekti. Arapça'da her karakter bir kelimenin içindeki konumuna bağlı olarak farklı gliflere sahiptir: ilk, orta, son veya yalıtılmış.

Karakterlerden gliflere çeviri, her uygulamaya ve desteklediği tipografik özelliklere özgüdür. Latince metin için bu çeviri basitti, ancak OpenType fontları bitişik harfler, yüz ifadeleri, alternatif formlar, küçük büyük harfler vb. Gibi ek özellikler getirdi.

Pratik nedenlerden dolayı, yalnızca bir uygulamanın metin oluşturma biçimini uyguladığınızda veya bir fontu tasarlarken veya bazı glifleri başkalarıyla değiştiren bir OpenType özelliğini (örneğin bitişik harfler) uygulamak istediğinizde, gliflerle ilgilenirsiniz. Aksi halde Unicode kod noktaları arkadaşınızdır.


Merhaba user322483, GDSE'ye hoş geldiniz ve cevabınız için teşekkürler. Herhangi bir sorunuz olursa, lütfen itibar merkeziniz yeterli olduğunda , yardım merkezine bakın veya Grafik Tasarım Sohbetinde bizden birine sorun (20). Katkıda bulunmaya devam edin ve sitenin tadını çıkarın!
Vincent

1
"Arapçada her karakterin bir kelimenin içindeki konumuna bağlı olarak farklı glifleri vardır: ilk, orta, son veya yalıtılmış." <--- Farklı karakterler olmaz mıydı. İngilizcede A ve a var, fakat bilgisayar konuşmasında A ve a farklı karakterler. her glif farklı bir kodla eşleştirilir. İbranice süreksiz ve son çekişmeli (bir kelimenin sonundaki harf gezintisi, farklı görünüyor) var ve bilgisayarcılığın farklı bir karakter olarak adlandırıldığından eminim.
barlop

14

Anlayışınızın yanlış olduğunu sanmıyorum, sadece istediklerini düşündüklerini yapıştırarak kullanıcıya yardım etmeye çalışan sistemleri görüyorsunuz. Bazı bitişik harfler ('fi', 'fl') dizgi sistemlerinin dışında oldukça yaygın olduğu için, yazılım kullanıcının muhtemelen o karaktere girmediğini, başka bir uygulamanın da yazılan karakterlerini dönüştürdüğünü kabul eder.

Kısacası: Karakter dilbilimsel birime karşılık gelir. Glif , büyük, küçük harf, küçük büyük harf, tarihi veya stilistik bir varyasyon olsun, o birimin tasarlanmış bir örneğini ifade eder.


Hesaplamada, A ve a farklı karakterlerdir. ASCII 128 karaktere sahiptir ve burada karakter karakteri A ve bir karakter olarak içerir.
barlop

Mühendisler, diğer endüstrilerdeki emsallerle uyumlu olmayan birçok kelime kullanırlar. Seninki iyi bir örnek.
plaincloth

"ilk" karakter "ve" glif "terimini kim buldu? grafik tasarımcıları veya bilgisayar mühendisleri? bilgisayarların grafik tasarımdan önce geldiğini düşünürdüm. Ancak grafik tasarımdan önce ve tartışılabilir bilgisayarlardan bazı şekillerde veya modern bilgisayarlarda öncülük eden bir baskı endüstrisi olabilir. Şu anda grafik tasarım olana en iyi şekilde cevap verebilecek insanlar baskı endüstrisi olsalar da, baskı endüstrisi yığın değişimi yok. Ancak Character'den kimin ve nasıl ödünç aldığını bilmek ilginç olurdu.
barlop

1
Tipografi, yazılım mühendisliğinden çok önce geldi . Araştırmayı üstlenmek ve kökenleri bulmak için lütfen buraya postayla gönderin. Benim tahminim, 17. yüzyılda bir zaman olacağı yönünde. Muhtemelen, 16. ortadaki ilk tipograflar kadar erken.
plaincloth

6

Burada karakterlerle glifler hakkında iyi bilgi veren birkaç cevap var, ancak kopyalama ve yapıştırma konusundaki kafa karışıklığınızın kaynağını gerçekten ele almıyorlar.

Her şeyden önce, anlayışınız temel olarak doğru:

Karakterler dillerdeki anlamlarıyla , gliflerle, görünümleriyle tanımlanır . Bu yüzden fi'yi estetik olarak birleştirmek için kullanılan bağ bir glif değil, iki karakterdir.

Karakter listesinin , Unicode Konsorsiyumu tarafından yayınlanan ve Unicode Konsorsiyumu tarafından yayınlanan ve Unicode Konsorsiyumu tarafından yayınlanan ve makine tarafından okunabilen bir formatta metin kodlama yetkisi bulunduğundan, tanımlandığını vurgulamakta fayda vardır. Yukarıdaki tanım, Unicode Konsorsiyumu üyelerinin, Unicode'a önerilen bazı ilavelerin bir karakter olup olmadığını ve bu nedenle dahil edilmeye değer olup olmadığını ya da bir glif olup olmadığını belirlemek için kullandıkları temel bir kılavuzdur ve font oluşturucular tarafından kullanılmalıdır.

Bundan bahsettim, çünkü yukarıda karşılaştığınız karmaşa , Unicode'da birkaç bağ karakterinin ( glif değil ) olması nedeniyle oldu . Örneğin U+FB01, ature ligatürün karakteri: http://unicode.org/charts/PDF/UFB00.pdf

Unicode'da ligatür karakterleri olması, Unicode standardında karakter olarak ne gibi şeyler bulunması gerektiği için yukarıdaki tanımlamanın ruhunda değildir, çünkü bitişik harflerin diğer iki karakterin kompozisyonundan bağımsız bir anlamı yoktur. Unicode halkı bunun doğal olarak farkındadır ve bitişik harfler üzerine Unicode SSS kadar itiraf ediyor:

Mevcut bitişik harfler, Unicode olmayan karakter kümeleriyle uyumluluk ve yuvarlak açma için temelde bulunur. Onların kullanımı tavsiye edilmez.

Bu karakterin varlığı, sonuçta kafa karışıklığınızın kaynağıdır.

Doğru uygulanmış yazılımda, metin kopyalamak her zaman glifleri değil, belirtilen karakterleri kopyalamalıdır ve tam olarak üç örneğinizde olan şey budur.

1) Birinci örnekte, yazdığınız fve itek ligatür hale Illustrator, içine glif . Oluşturulan glifi seçip kopyaladığınızda, Illustrator uygulaması f( U+0066) ve i( U+0069) karakterlerini panonuza doğru şekilde kopyaladı .

2) İkinci örnekte, bağ işaretli için HTML kodu yazdığınız karakteri ( &#64257giriş kutusuna) ve düzgün bağ işaretli var glif ligatür temsil karakteri (. Altta yatan beri karakter aslında bahsettiğim karanlık ve nispeten anlamsız ligatürü karakteridir yukarıda, bu glifin tek bir karakter kopyalayacağının seçilmesi U+FB01.

3) Üçüncü örnekte, her zaman bu karakter olarak yapıştıracak olan 2. bölümde verilen renderlenmiş bitiş karakterini kopyalıyorsunuz U+FB01. Temel karışıklığınız, özellikle kod bloklarının içinde ve dışında nasıl oluşturuldukları konusunda, HTML varlık kodları ve karakterleri arasındaki farkla ilgili görünüyor.

HTML varlık kodu &#64257;, 8 farklı karakterden oluşan bir dizedir. Web tarayıcınızın HTML oluşturucusu olanlar 8 karakter yerine U+0026 U+0023 U+0036 U+0032 U+0035 U+0037 U+0023sahip tek Unicode karakter U+FB01o zaman uygun hale. Ancak, <code>HTML'deki etiket, bu 8 karakteri olduğu gibi bırakarak bu davranışı devre dışı bırakır.

İşlenmiş HTML'yi kopyaladığınızda, işlenen karakterleri (işlenen gliflerden farklı olan) kopyalarsınız . Böylece, işlenen HTML varlığınızı U+FB01kopyaladığınızda , tek karakter panoya kopyalanır.

U+FB01Karakteri tekrar HTML'ye yapıştırdığınızda, yerine koyma işlemi yapılmasına gerek yoktur; bu, karakterin bir <code>bloğun içine düşüp düşmemesine bakılmaksızın bitiş çizgisi olarak gösterildiği anlamına gelir .


1

Karakterler metin dosyalarında saklanır, uygulamalar tarafından işlenir ve hareket ettirilir, oysa glifler görsel olarak temsil edilir.

Net bir resim elde etmek için, bir uygulama ekranda bir metin dizisi oluşturmaya çalışırken ne olduğunu görelim (biraz basitleştirilmiş bir şekilde):

  • Uygulama ilk önce metin dizesini okudu; diskte veya bellekte saklanan karakter dizisi.
  • Ardından, istenen font, metin dili ve benzeri diğer bazı özelliklerin yanı sıra bir metin düzeni motoruna gönderirdi:
    • Metin düzeni motoru temelde her karaktere karşılık gelen glyph'ten (ler) için sorar ve (için glifi değiştirilmesi gibi bazı kabartma ikame yapmak, yazı tipi dosyasını açar fve iligatür glif ile five (karakter aralığı gibi) yerleştirmek).
    • Sonunda, düzen motorunda bir dizi glif, birbirlerine göre konumları ve giriş karakterleriyle çıktı glifleri arasında eşleme vardır. Glif eşlemenin karakteri, sözcükteki ilk iki karakterin fileiki ilk glifle ( filigatür), 3. karakterin 2. glifle ve 4. karakterin 3. glifle eşleştiğini bilmesidir .
  • Bir grafik oluşturma kütüphanesi daha sonra bu glifleri yazı tipinden şekiller kullanarak “çizmek” için kullanılır.
  • Kullanıcı ekranda “glifleri” seçtiğinde, uygulama, giriş metninin hangi bölümünün kullanıcının seçtiği ile uyuşacağını bulmak ve bu metni panoya ne zaman gönderdiğini bulmak için düzen motoru tarafından sağlanan metin eşlemesine başvurur. kullanıcı kopyalar.
  • Aynı şekilde, kullanıcı imleci metnin ortasına yerleştirdiğinde ve yazmaya başladığında, eşleme giriş metninde yeni karakterlerin ekleneceği yeri belirler ve güncelleme metni işlemek ve yeniden çizilmek için düzen motoruna gönderilir.
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.