2010-08-27 11 views
31

Mi chiedo, che ogni carattere in Unicode abbia un punto di codice; qual è il termine analogo per un personaggio in un font?Come viene mappato un carattere Unicode in un glifo in un font?

Non ho mai capito la parte del processo quando un file decodificato deve essere mappato al carattere (o font, da qualche moderna tecnologia sostituzione dei font).

Ad esempio, quando un editor di testo ha decodificato un file dalla codifica dei caratteri, e supponiamo c'è greca alfa α (U + 03B1). Qual è il processo esatto in cui questa app sceglie un particolare glifo in un font? La maggior parte delle app ha un font preferito. Diciamo che è Courier. (E cosa succede nel caso di un raro carattere Unicode al cuore ♥ (U + 2665), che non è nel carattere predefinito? Come fa l'app a sapere che il carattere non contiene quel carattere?)

Fa un carattere contiene meta informazioni su quali simboli ha?

Se 2 font entrambi hanno l'alfa simbolo, fanno necessariamente condividono lo stesso “punto di codice”? O dipende dal tipo di carattere come Type1, Type3, TrueType, OpenType? ...

Grazie per qualsiasi puntatori o riferimenti.

risposta

28

I caratteri TrueType sono costituiti da un numero di sezioni, soprattutto per questa domanda una tabella di "glifi" e una tabella ("cmap") per mappare i caratteri a tali glifi.

Per farla breve, il sistema operativo utilizza la tabella "cmap" per convertire i caratteri in indici dei glifi, sostituendo un glifo predefinita per qualsiasi che non hanno voce corrispondente. Sfortunatamente ci sono più versioni delle specifiche del file dei font (per non parlare di tipi diversi di caratteri) e diverse codifiche dei caratteri degli stessi mapping in quelle tabelle, quindi il processo effettivo di fare il mapping e farlo in modo efficiente in modo che il disegno del testo sia veloce , finisce per essere estremamente complesso.

A "Code Point" è completamente indipendente di personaggi, codifiche e caratteri. Un punto di codice particolare è universale, ma ci sono molte codifiche per esso (UTF-8, UTF-16, ecc.) E si associerà a diversi glifi in caratteri diversi.

documentazione per sviluppatori di Apple ha una buona sezione sui dettagli di font TrueType:

http://developer.apple.com/fonts/ttrefman/

In particolare:

tavolo Glifo: https://developer.apple.com/fonts/TrueType-Reference-Manual/RM06/Chap6glyf.html

Mappa Atmosfera: https://developer.apple.com/fonts/TrueType-Reference-Manual/RM06/Chap6cmap.html

Raccomando anche un'applicazione chiamata BabelMap, che offre molte informazioni interessanti sui caratteri. In particolare, consultare Strumenti/Riepilogo Unicode, Utility di analisi font/font e Font/Font Information, in cui è possibile estrarre l'intera tabella di mappatura degli glifi negli Appunti.

+0

Grazie. Buona risposta! – SeniorLee

+0

sono punti di codice standardizzati per caratteri in determinate lingue? come fare qualche incontro di commissione qualche giorno nel paese X e decidere, usiamo il codice punto a, b, c, d ... per i nostri personaggi roba del genere ...? e quindi è sottoposto ad alcuni ISO? –

+0

@ v.oddou Sì, esattamente, http://unicode.org è il comitato e puoi vedere il modo in cui i vari set di caratteri per le diverse lingue sono disposti qui: https://en.wikipedia.org/wiki/ Plane_% 28Unicode% 29 e la relazione ISO qui: https://en.wikipedia.org/wiki/Universal_Coded_Character_Set –

Problemi correlati