Ubicación incorrecta de la marca en la fuente OpenType

Estoy diseñando una fuente árabe de tipo abierto. Uso marcas para colocar Harakat, tengo un problema al colocar el carácter U+06D6 (pequeño triste con ligadura lam) sobre U+06E4 (árabe pequeño alto madda). Se representa incorrectamente y SMALL-SAD-WITH-LAM se coloca en un marcador de posición desconocido (el círculo) en lugar de sentarse en Madda, verifique la captura adjunta.

Colocación incorrecta de la marca

Respuestas (1)

Hay varios lugares donde las cosas pueden salir mal aquí:

  • ¿Creó una función OpenType que realiza esta ubicación?
  • ¿El programa que usa para renderizar es compatible con la función OpenType que usó para implementar esto?
  • ¿Está utilizando los caracteres en el orden correcto compatible con Unicode?
  • No sé casi nada sobre árabe, pero me parece que el resultado deseado debería ser una combinación de tres caracteres:

    • U+0628 Letra árabe beh
    • U + 06E4 árabe pequeño alto madda
    • U+06D6 Ligadura árabe pequeña alta triste con lam con alef maksura


    En el orden anterior (de derecha a izquierda), es decir, بۤۖ, se procesan sin marcadores de posición en mi máquina y se ve bien (por lo que sé).

Sí, se representa correctamente en el navegador, pero no en aplicaciones como el bloc de notas. :|
@AVEbrahimi: ¿No era el Bloc de notas ese editor de texto de función cero que Microsoft no había tocado desde 1990? ¿Por qué esperaría que fuera compatible con OpenType? De todos modos, parece que has reducido tu problema. Si funciona en algunos programas, probablemente no sea su fuente, sino la compatibilidad con OpenType.
Nota al margen: puede obtener una solución improvisada para no OpenType al hacer que sus caracteres combinados tengan espacio cero y el glifo real se ubique ancho antes (en contra de la dirección de escritura) el cero del eje x . Sin embargo, eso significa que el carácter combinado siempre estará en la misma posición relativa al carácter base. Pero como esto se puede anular con OpenType, solo verá esta solución improvisada cuando realmente la necesite.