On Thu, 17 May 2018 09:49:55 +0300
dinar qurbanov via Unicode <firstname.lastname@example.org> wrote:
> how to make custom combining diacritical marks for arabic letters?
> should only font drivers and programs support it, or should also
> unicode support it, for example, have special area for them?
> as i know, private use area can be used to make combining diacritical
> marks for latin script without problems.
> but when i tried, several years ago, to make that for arabic script,
> with fontforge, i had to use right to left override mark, and manually
> insert beginning, middle, ending forms of arabic letters, and even
> then, my custom marks were not located very properly above letters.
I'm offering suggestions, but I don't that they will work.
The one thing that may help you is that these marks cannot appear in
plain text. There are a number of things you need to do:
1) Persuade the renderer to treat your character as being a run in a
single script. You might be able to do this by:
a) Not having any lookups for the Arabic script.
b) Using RLM to persuade the renderer that you have a right-to-left run.
It is just possible that his may fail with OpenType fonts but work
with Graphite or AAT fonts. If it works, you will then have to
implement all the Arabic shaping yourself.
2) If OpenType fonts will treat the data as a single script run, you
will need to ensure that there is an OpenType substitution feature that
the renderer will support. Fortunately, many modern text applications
will allow you to force the ccmp feature to be enabled - I have used
such feature forcing with OpenType in LibreOffice and also in HTML,
which renders accordingly in all the modern browsers I have tested - MS
Edge on Windows 10, Firefox and, on iPhones, Safari. While the ccmp
feature is enabled for the PUA in Firefox, it is disabled in MS Edge on
3) I believe AAT will soon be available for products using the HarfBuzz
layout engine, so it is likely to become available on Firefox and
LibreOffice. If AAT looks like a solution, you may need to research the
attitudes of Chrome and OpenOffice, for I believe they have chosen not
to support Graphite.
A totally different solution would be to recompile your application so
that it believes that your diacritics are in the Arabic script.