Falsche Markierungsplatzierung in OpenType-Schriftart

Ich entwerfe eine arabische OpenType-Schriftart. Ich verwende Markierungen zum Platzieren von Harakat. Ich habe ein Problem beim Platzieren des Zeichens U + 06D6 (kleines trauriges mit Lam-Ligatur) über U + 06E4 (arabisches kleines hohes Madda). Es wird falsch gerendert und SMALL-SAD-WITH-LAM wird auf einem unbekannten Platzhalter (dem Kreis) platziert, anstatt auf Madda zu sitzen, bitte überprüfen Sie die beigefügte Aufnahme.

Falsche Markierungsplatzierung

Antworten (1)

Hier gibt es mehrere Stellen, an denen etwas schiefgehen kann:

  • Haben Sie eine OpenType-Funktion erstellt, die diese Platzierung durchführt?
  • Unterstützt das Programm, das Sie zum Rendern verwenden, die OpenType-Funktion, mit der Sie dies implementiert haben?
  • Verwenden Sie die Zeichen in der richtigen, Unicode-konformen Reihenfolge?
  • Ich weiß so gut wie nichts über Arabisch, aber es scheint mir, dass die gewünschte Ausgabe eine Kombination aus drei Zeichen sein sollte:

    • U+0628 Arabischer Buchstabe beh
    • U+06E4 Arabische kleine hohe Madda
    • U+06D6 Arabische kleine hohe Ligatur Sad mit Lam mit Alef Maksura


    In der obigen Reihenfolge (von rechts nach links), dh بۤۖ, werden sie auf meinem Computer ohne Platzhalter gerendert und es sieht gut aus (soweit ich das beurteilen kann).

Ja, es wird im Browser korrekt gerendert, aber nicht in Apps wie Notepad. :|
@AVEbrahimi: War Notepad nicht dieser funktionslose Texteditor, den Microsoft seit 1990 nicht mehr angefasst hat? Warum sollten Sie erwarten, dass es OpenType unterstützt? Jedenfalls scheinst du dein Problem eingegrenzt zu haben. Wenn es in einigen Programmen funktioniert, liegt es wahrscheinlich nicht an Ihrer Schriftart, sondern an der OpenType-Unterstützung.
Nebenbemerkung: Sie können eine provisorische Lösung für Nicht-OpenType erhalten, indem Sie dafür sorgen, dass Ihre Kombinationszeichen keinen Platz haben und die tatsächliche Glyphe weit vor (gegen die Schreibrichtung) der Null der x - Achse positioniert wird. Das bedeutet jedoch, dass sich das Kombinationszeichen immer in der gleichen relativen Position zum Basiszeichen befindet. Da dies aber mit OpenType übersteuert werden kann, sieht man diese Behelfslösung nur, wenn man sie wirklich braucht.