Need Help with contextual susbstitution

moiz217's picture

Hello,

I'm developing an Arabic font.

I want to achieve a substitution like the one shown in the attached image.

I want "be" to change to "be.alt" when it is before "noon", then I want to change the "noon" to change to "noon.alt" when it comes after "be.alt".

I know that this has something to do with Contextual Substitution.

My question is how to write the lookups, and in which order the lookups should be placed?

Thanks and regards.

AttachmentSize
contextual substitution.jpg602.99 KB
guifa's picture

Which program are you using?

mk2's picture

I've never designed an Arabic font, but as far as I know you can use Arabic OpenType feature tags like 'isol', 'fina', 'medi', 'init', etc to help your substitution.

Hope this links help:
http://29letters.wordpress.com/2007/05/15/generating-arabic-fonts/
http://typophile.com/node/16288

moiz217's picture

Which program are you using?

I'm using Fontlab and MS VOLT. I prefer doing all the OT related work in VOLT.

الخط هندسة روحانية ظهرت بآلة جسمانية

Atif's picture

Dear معز

These Microsoft tutorials will be a good starting point.
Developing OpenType Fonts for Arabic Script (1 of 3): Introduction
http://www.microsoft.com/typography/OpenType%20Dev/arabic/intro.mspx

and

Creating and supporting OpenType fonts for the Arabic script
http://www.microsoft.com/typography/otfntdev/arabicot/default.htm

You can also download some freely available (with open VOLT project) fonts from
http://www.crulp.org/software/localization.htm

Best regards,
Atif

John Hudson's picture

You will need two separate lookups for this, and you will need to apply them in sequence. The normal layout feature to use for such lookups with be Contextual Alternates 'calt'.

Lookup 1, using VOLT syntax, will be like this

be -> be.alt

with the context string

| noon

Lookup 2 will be like this

noon -> noon.alt

with the context string

be.alt |

Note that you can foolproof the first lookup by putting both noon forms in the context like this:

| {noon, noon.alt}

Syndicate content Syndicate content