2010-08-27 15 views
31

Me pregunto, que cada char en Unicode tiene un punto de código; ¿Cuál es el término análogo para un personaje en una fuente?¿Cómo se asigna un carácter Unicode a un glifo en una fuente?

nunca he entendido la parte del proceso cuando un archivo decodificado tiene que ser asignada a fuente (o fuentes, por alguna tecnología moderna sustitución de fuentes).

Por ejemplo, cuando un editor de texto ha decodificado un archivo desde su codificación de caracteres, y supongamos que hay griega alfa α (U + 03B1). ¿Cuál es el proceso exacto para que esta aplicación elija un glifo en particular en una fuente? La mayoría de la aplicación tiene una fuente preferida. Digamos que es Courier. (Y lo que sucede en el caso de un caracter Unicode rara likethe corazón ♥ (U + 2665), que no está en la fuente por defecto? ¿De qué manera la aplicación sabe la fuente no contiene que Char?)

¿Un tipo de letra ¿contiene meta información sobre qué símbolos tiene?

Si 2 fuentes Ambos tienen el símbolo alfa, ¿comparten necesariamente los mismos “punto de código”? ¿O depende del tipo de fuente, como Type1, Type3, TrueType, OpenType? ...

Gracias por cualquier punteros o referencias.

Respuesta

28

Las fuentes TrueType constan de una serie de secciones, lo que es más importante para esta pregunta una tabla de "glifos" y una tabla ("cmap") para asignar caracteres a esos glifos.

Para resumir, el sistema operativo utiliza la tabla "CMAP" para convertir caracteres en los índices de glifo, la sustitución de un glifo predeterminado para cualquier que no tienen ninguna entrada coincidente. Lamentablemente, hay varias versiones de la especificación de archivos de fuentes (sin mencionar diferentes tipos de fuentes) y diferentes codificaciones de caracteres de las mismas asignaciones en esas tablas, por lo que el proceso real de hacer la asignación y hacerlo de manera eficiente para que el dibujo de texto sea rápido , termina siendo extremadamente complejo.

un "punto de código" es completamente independiente de caracteres, codificaciones y fuentes. Un punto de código particular es universal, pero hay muchas codificaciones para él (UTF-8, UTF-16, etc.) y se correlacionará con diferentes índices de glifo en diferentes fuentes.

documentación para desarrolladores de Apple tiene una buena sección sobre los detalles de las fuentes TrueType:

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

Específicamente:

tabla de glifos: https://developer.apple.com/fonts/TrueType-Reference-Manual/RM06/Chap6glyf.html

Mapa Carácter: https://developer.apple.com/fonts/TrueType-Reference-Manual/RM06/Chap6cmap.html

También recomiendo una aplicación llamada BabelMap, que le brinda mucha información interesante sobre las fuentes. Mire específicamente Tools/Unicode Summary, Fonts/Font Analysis Utility, y Fonts/Font Information, donde puede extraer toda la tabla de asignación de glifos al portapapeles.

+0

Gracias. ¡Buena respuesta! – SeniorLee

+0

son puntos de código estandarizados para caracteres en idiomas determinados? como hacer una reunión de comité algún día en el país X y decidir, usemos el punto de código a, b, c, d ... para nuestros personajes cosas cosas cosas ...? y luego se envía a algunos ISO? –

+0

@ v.oddou Sí, exactamente, http://unicode.org es el comité, y pueden ver la forma en que se presentan los diferentes juegos de caracteres para diferentes idiomas aquí: https://en.wikipedia.org/wiki/ Plane_% 28Unicode% 29 y la relación ISO aquí: https://en.wikipedia.org/wiki/Universal_Coded_Character_Set –

Cuestiones relacionadas