Add dots (nuqta) to glyphs in VOLT. Need Help.

moiz217's picture

Hello,

Somewhere on Typophile I read about adding dots (nuqta) to base glyph in VOLT.
This means instead of making glyphs for each combination of base glyph with dots in FontLab, you use VOLT to compose glyphs on the fly using a single base glyph.

This has something to do with CCMP feature.

I request anyone who has used this feature for the mentioned purpose to kindly share their experience.

Thanks and regards.

John Hudson's picture

You still need precomposed versions of the default encoded Unicode characters, but then you can decompose these in VOLT and use GPOS mark positioning for the dots. This can be done either in the ccmp feature, or within the individual shaping features: isol, init, medi and fina. So, for example, one can decompose

ccmp
uni0628 -> B.isol dotbelow

There are some software support issues with this approach -- if a user in Word turns off display of marks, or chooses to display the marks in a different colour, this will incorrectly affect the dots -- but it is the most practical approach for many traditional styles of Arabic in which dot position needs to be contextually adjusted.

moiz217's picture

Thanks John for the reply.

What if I only make the default encoded Unicode characters in Fontlab with nuqtas added to them, and dont do anything (ccmp or any type of decomposition) to these glyphs in VOLT, and compose rest of glyphs and nuqtas in VOLT..

Is that a possible workflow?

Thanks and regards.

Bahman Eslami's picture

Short answer is no it's not gonna work!
why? because glyph will not be decomposed to the base character and Noqta, so I guess when you start typing using this approach, you will not see any Nuqta in the program.

moiz217's picture

Thanks bahman for the reply.

From this discussion this far, I think the workflow goes something like this:

  • Create all default encoded Unicode characters in Fontlab with nuqtas added to them.
  • Decompose them in VOLT using CCMP feature.
  • Add nuqtas to them again in VOLT using GPOS mark positioning.
  • For all the other glyphs, only create a base glyph in FontLab, and add nuqtas in VOLT using CCMP feature.

Please correct me if I'm making any mistake in the above list.

Another question: I'll use mark positioning to add Nuqtas. Then again I'll use Mark positioning to add Diacritics. Wouldn't that be a problem?

Thanks and regards.

John Hudson's picture

I'll use mark positioning to add Nuqtas. Then again I'll use Mark positioning to add Diacritics. Wouldn't that be a problem?

No, because you will use different named anchors for dots and for vowel marks (you may end up with more than one anchor for different numbers of dots, too). The other thing you need to cater for in this method is positioning of vowel signs relative to dots when preceded by some letters but not by others. In other words, sometimes you will want mark-to-mark positioning for the vowel signs and sometimes mark-to-base. And that is contextual.

There's no denying that this approach introduces a lot of complexities, and I only recommend it for styles in which you need to be able to move the dots around.

Badr Oraby's picture

I'll use mark positioning to add Nuqtas. Then again I'll use Mark positioning to add Diacritics. Wouldn't that be a problem?

Note 1: The operating system - like Windows - will deal with the Noqta as if it were a diacritic mark, if requested by coloring composition it will color Noqta with it.

Note 2: You should test positions of Noqta to the letters and to diacritics with any GPOS you do, Noqta will be affected by it.

Note 3: You will make a lot of GPOS tables - like John hinted - and it will be so complexity, so trying.

We can benefit the experience of our friend Khaled Hosny, He has developed his font - Amiri - by this way and he faced some problems.

best wishes
Badr

moiz217's picture

Thanks John and Badr for the valuable guidance.

The font I'm working on for about 3 years is based on a reasonably complex naskh script.
Movable nuqtas is on of the top 3 requirements of the design. (to avoid collision of nuqtas in words like النبيين، تتقون، تقتتل، تقول), currently I've made seperate glyphs for some common collisions and used CALT on them. The current approach is not at all working, as it only covers specific collisions. This led me to find some other solution.

I found these very useful guide on Khtt.net.
Part 1
Part 2

Amirifont.org is also very useful reference.
Khaled Hosny talking about THE PROBLEM : Khaled's Blog
Thanks Badr.

Thanks and regards.

Syndicate content Syndicate content