Pregunta ¿Cómo se asigna un carácter Unicode a un glifo en una fuente?


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?

Nunca entendí la parte del proceso cuando un archivo decodificado necesita ser mapeado a la fuente (o fuentes, por alguna tecnología moderna de sustitución de fuentes).

Por ejemplo, cuando un editor de texto ha descodificado un archivo de su codificación de caracteres, y supongamos que hay una alfa griega (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 qué sucede en el caso de un raro carácter Unicode como el corazón (U + 2665), que no está en la fuente predeterminada? ¿Cómo sabe la aplicación que la fuente no contiene ese carácter?)

¿Una fuente contiene meta información sobre qué símbolos tiene?

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

Gracias por cualquier punteros o referencias.


32
2017-08-27 09:39


origen


Respuestas:


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

Para abreviar, el sistema operativo usa la tabla "cmap" para convertir caracteres en índices de glifo, sustituyendo un glifo por defecto por cualquiera que no tenga una 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.

La documentación del desarrollador de Apple tiene una sección muy buena 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 de caracteres: https://developer.apple.com/fonts/TrueType-Reference-Manual/RM06/Chap6cmap.html

También recomiendo una aplicación llamada BabelMap, que te 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.


30
2018-03-29 00:27