New to Typophile? Accounts are free, and easy to set up.
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.
| Attachment | Size |
|---|---|
| contextual substitution.jpg | 602.99 KB |
6 Jul 2009 — 8:38am
Which program are you using?
6 Jul 2009 — 8:42am
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
6 Jul 2009 — 1:15pm
Which program are you using?
I'm using Fontlab and MS VOLT. I prefer doing all the OT related work in VOLT.
الخط هندسة روحانية ظهرت بآلة جسمانية
6 Jul 2009 — 8:25pm
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
6 Jul 2009 — 8:56pm
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}