tipo texto personalizadas para letra fuentes font family estilos ejemplos fonts true-type-fonts

fonts - texto - fuentes personalizadas css



Formato de fuente True Type: Posición del lápiz, ancho de avance y Kerning (1)

Espero que esto pueda ayudar a las personas en el futuro. Lo que encontré:

  • hhea contiene información para toda la fuente
  • aunque esta información no es realmente aplicable. Necesita leer los datos de la tabla html que contiene datos para cada glifo en la fuente (rumbo del lado izquierdo y ancho de avance). En general, esta tabla contiene tantas entradas que la fuente contiene glifo. Cada entrada especifica el glifo lado izquierdo y ancho de avance.

No encontré ninguna información sobre la posición del lápiz, pero supongo que el valor xmin del glifo es con respecto al origen del cuadrado EM. Entonces, para encontrar la posición del lápiz (en x), debe hacer algo como:

pos_pos_x = glyph->leftSideBearing - glyph->min.x

Una vez que se dibuja el glifo, debes moverte por glyph->advanceWidth y repetir ese proceso para glyph dibujado. No sé si esto es 100% exacto, pero al menos esto es lo que he invertido hasta ahora.

Estoy trabajando con la fuente y uso el formato de archivo TTF (True Type Font) por ahora. Entiendo que el glifo tiene una posición de punto de lápiz y un parámetro de advance width que especifica la distancia por la que debemos movernos hacia la derecha (suponer de izquierda a derecha la fuente aquí y horizontal) antes de dibujar el siguiente glifo. Mis preguntas:

  • ¿Dónde encuentro los datos para el ancho avanzado en el archivo FFT? ¿Está eso en la mesa de hhea ? ¿Es ese advanceWidthMax ?
  • No puedo encontrar dónde se definiría la posición del lápiz en el archivo? ¿Podría indicarme la tabla donde se almacenaría esto? (¿o debería calcular eso a partir del glifo xmin, ymin, línea de base y los datos del rumbo izquierdo? y luego utilizar potencialmente el kerning para pequeños ajustes adicionales).

  • Cuál es el ancho avanzado global para la fuente?

  • ¿Hay una posición de lápiz para cada glifo?

  • Entiendo que para ajustar la posición entre glifos, debe usar los datos de interletraje que especifican un desfase entre glifos con respecto al advanced width . ¿Es eso correcto?

EDITAR

Encontré una respuesta parcial a mis preguntas:

  • hhea contiene información para toda la fuente
  • aunque esta información no es realmente aplicable. Necesita leer los datos de la tabla htmx que contiene datos para cada glifo en la fuente (rumbo del lado izquierdo y ancho de avance).

Todavía estoy interesado en la posición del lápiz) y cómo usar correctamente los datos de interletraje.