Apple Advanced Typography Justification

Hi all,

I’m interested in creating an Arabic font that utilizes the implements some of the AAT Kashida justification features. An example of such a font is Baghdad if you’re on a Mac https://gfycat.com/HarmlessThisDore

Is this possible with Glyphs? If not, what tools can I use to program kashida justification into the font?

Thanks!

This is not (yet) possible in Glyphs. You need to use the apple font tools to add that later. If you figure it out, I can try to add support to it.

Thanks, will look into it.

Traditionally, the kind of Kashida that @aiaf is looking for is a combination of morx and just tables. In the old format that requires to write a MIF and a JIF file, but instead you could write a unique ATIF file (with a more clean syntax). In Glyphs you can write directly the MIF in the morx “feature”.

In order to use Apple Tool Suite, first of all I suggest not to update to El Capitan if you have not installed Apple Font Tool Suite yet, this is because for security reasons none user can write in the /bin or any other system folder. You can find a work around here.

I recommend to read the 60 pages tutorial and the ATIF documentation first in order to understand how State Machine and AAT works.

I am here if you need support.

@GeorgSeifert, create a AAT documentation is one of my priority in my todo list.

Best,

Nicolás

Thanks @Nicolas.

I’ve played around with OSX Font Tools yesterday. Unfortunately, anything that has to do with JIF is broken or at least not working for me.

ftxanalyzer fails to extract JIF data from the few fonts I’ve tried (MIF data is fine, however).

I’ve also written a simple ATIF file, converted it into JIF using ftxenhancer, but thereafter the tool fails to enhance the TTF font with provided JIF file.

These tools haven’t been updated in close to 5 years, and the support for JIF as per the documentation was experimental then.

If there’s a way I could incorporate the JIF or ATIF file as an OpenType morx feature as you said, I could try that, but I need to see an example of the boilerplate code necessary to achieve this.

Hi @aiaf,

Has you try the following?
$ ftxenhancer --atif <atif file> <font file>

Attached is a sample of an ATIF only declaring the AAT that is going to write the just table. I commented in it, so it is self explanatory if you have read the ATIF tutorial in Apple Font Tools package.

JustificationTable.atif.zip (3.0 KB)

Glyph names are only examples taking the GlyphsApp name scheme. In a real ATIF you should change those names for the names that are stored in the post table. You can do that with a GlyphsApp service that convert nice-names to production names.

If you are generating a CFF-OTF font, don’t forget to assign the instance custom parameter “Post Table Type” with a value “2”.

Best,

Nicolás

Thanks @Nicolas. That looks fantastic, I’ll give it a whirl and see if anything comes out of it.

Is the “Kashida justification” supported right now in Glyphs? I have seen some of the recent Arabic fonts that use a long Kashida as an Axis as well! Or they are just a normal ligatures ?

The Apple AAT “just” table is automatically supported. You can add code as explained in the post by Nicolas in a prefix called “kerx”. But I just saw that there was a bug in the processing of that parameter. I fixed it, so it should work after the next update.

1 Like