Non-required ligature with marks

How can I create a non-required ligature as this one [lam_lam_shadda_fatha_alefabove_heh-ar ] & doesn’t conflict with other marks ?

sub lam-ar.init lam-ar.medi shadda-ar fatha-ar alefabove-ar heh-ar.fina by lam_lam_shadda_fatha_alefabove_heh-ar;

the point that I want to reach to, is to get this ligature either I type the letters with the marks or not, but when I add the marks I don’t want them to be conflict ?

  1. Would it make sense to create lam_lam_heh-ar? Because the ligature feature ignores marks, the name should not contain any.
  2. Or: there is a precomposed character U+FDF2 ARABIC LIGATURE ALLAH ISOLATED FORM, for which you can name your glyph simply allah-ar.

Don’t forget to update your features in Font Info > Features. When the feature code is autogenerated, all Arabic ligatures should ignore mark attachment by default. Instead of a single top and bottom anchor, you will get numbered anchors (top_1, top_2 etc.) which you can drag into a position where they are not colliding. But I guess this is nothing new for you.

Hi mekkablue

I have a basic question related to this please,

I have created my glyph "allah-ar"
and wrote in the liga feature the following line
sub alef-ar lam-ar.init lam-ar.medi heh-ar.fina by allah-ar;

And yes as you said the marks are ignored in the ligature, how can I get it to work please.

I mean I need the ligature to be able to receive marks in the desired position (if inserted).


  • A

You need to add numbered anchors: top_1, top_2, etc., just press Cmd-U in the ligature and it should be added automatically, and all you need to do is move each anchor in the right place.

I don’t know if I got this right, but the attached shot solution is not working I still get the marks being ignored when testing.

You have four letters, so you need four copies of each anchor: top_1, top_2, top_3, top_4, repeat with bottom. Put the anchors with _1 at the first letter (on the right), _2 at the second letter, etc.

Currently, there is only top_1 under the last letter.

And Glyphs can automate the feature code for allah-ar.

1 Like

Works well,

Thanks a lot

  • A


I did another ligature llah-ar, and I added the following line in my liga script
sub lam-ar.init lam-ar.medi heh-ar.fina by llah-ar;

The ligature works when testing, but the mark (which I need only on the far left letter) didn’t work, any solutions


Making ligature for Arabic fonts is outdated if you asked me. As an alternative approach, I suggest you try this:
Create three glyphs with the same allah ligature. Name the first one" lam-ar.init.allah’ [for example], the second one “lam-ar.medi.allah” and the third one heh-ar.fina.allah.
Keep the first one full width for the composition as if it was the ligature glyph. For the second and the third one put width of the glyph to zero. but don’t remove the outline until you visually placed the anchors in the right place. You can then remove the second and the third outlines before export. The second and the third allah should superpose the first one when you view the three side by side.
Now instead of writing a ligature substitution lookup, write three contextual substitution lookups. (and close each one before starting the next):

sub lam-ar.init’ lam-ar.medi heh-ar.fina by lam-ar.init.allah;

and the next lookup will be:
sub lam-ar.init.allah lam-ar.medi’ by lam-ar.medi.allah;

and the last one:
sub lam-ar.medi.allah heh-ar.fina’ by heh-ar.fina.allah;

This way each character has its own space and you can make their anchor adjustments individually like any other glyph.

You may think I complicated the things. Three lookup lines instead of a single ligature line!
But think of it this way: suppose you have also a ligature for haj. (hah-ar.init, jeem-ar.fina). Don’t you need the same ligature for jaj, jah, khaj, jakh etc.? With contextual substitution you can put all initial forms in one class, all final forms in another, the ligature form respectively in two other classes and write only two lookups to substitute the classes.
For the first initial forms you keep the full width of “haj” ligature (without the dot for jeem). For the second final forms you only keep the dot and nothing else. with zero width. So any kind of initial jeem with any kind of final jeem will produce the same composition.


How are you testing? In which app is it not working? Are you using the Adobe Fonts folder?

I’m testing in InDesign, and yes I’m using the Adobe fonts folder as per the tutorial.


1 Like

Thanks for taking time explaining this solution, in principle it sounds a handy solution, but being honest I have to try this first and see how that works, also along with tashkeel anchors etc. I’ll let you know once I try it. thanks again man.

I don’t think it is a good idea to use zero width glyphs for ligatures. Why not just use them with the normal width letters.

the glyph llah-ar needs to be called lam_lam_heh-ar or set to be a Ligature (manually or with a custom glyph data entry).

Salam all,
Please note that the word Allah in the Quran has no “superscript elf” or “ألف خنجرية”.

Can you please tell me how to stop the auto-ligating in New Courier font (fixed width) without altering the word in the RichTextBox?
I need to colorize the letters individually in QuranCode software.
Thank you

Sorry but this is the forum for a font editor. We can help you make your own font. Hence I believe your question is off topic.

1 Like