I am designing an Arabic opentype font. I use marks for placing Harakat, I have a problem when placing character U+06D6 (small sad with lam ligature) over U+06E4 (arabic small high madda). It is rendered incorrectly and SMALL-SAD-WITH-LAM is placed on an unknown place holder (the circle) instead of sitting on Madda, please check attached shot.

Incorrect mark placement

1 Answer 1


There are several places where things can go wrong here:

  • Did you create an OpenType feature that performs this placement?
  • Does whatever program you use for rendering support the OpenType feature you used to implement this?
  • Are you using the characters in the right, Unicode-compliant order?
  • I know next to nothing about Arabic, but it seems to me that the desired output should be a combination of three characters:

    • U+0628 Arabic letter beh
    • U+06E4 Arabic small high madda
    • U+06D6 Arabic small high ligature sad with lam with alef maksura

    In the above order (from right to left), i.e. بۤۖ, they render without placeholders on my machine and it looks okay (as far as I can tell).

  • Yes it's rendered correctly in browser but not in apps like notepad. :|
    – AVEbrahimi
    Mar 16, 2017 at 4:27
  • 1
    @AVEbrahimi: Wasn’t Notepad that zero-function text editor that Microsoft hasn’t touched since 1990? Why would you expect it to support OpenType? Anyway, it seems like you narrowed down your problem. If it works in some programs, it’s probably not your font, but the OpenType support.
    – Wrzlprmft
    Mar 16, 2017 at 6:22
  • Sidenote: You can get some makeshift solution for non-OpenType by making your combining characters have zero space and the actual glyph positioned wide before (against the direction of writing) the zero of the x axis. However that means the combining character will always be in the same relative position to the base character. But as this can be overridden with OpenType, you only see this makeshift solution when you actually need it.
    – Wrzlprmft
    Mar 16, 2017 at 6:24

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.