Khotot/Tutorial

من ويكي عربآيز
نسخة 23:53، 27 يوليو 2007 للمستخدم Hosny (ناقش | مساهمات) (spell cheching mainly)
اذهب إلى: تصفح، ابحث

< Khotot

Here we'll summarize the process of developing Arabeyes TrueType fonts.

Requirements

  • FontForge: FontForge is our main font editing and development software, it is a free software. You will need version 20070723 at least. [1]
  • ...

Get font files

We maintain a set of SFD files (the internal database format that FF[2] uses).

You can access the files using the web interface; http://cvs.arabeyes.org/viewcvs/art/khotot/sfd/ , or get your local cvs copy:

cvs -d:pserver:anoncvs@cvs.arabeyes.org:/home/arabeyes/cvs login

The password is 'anoncvs' (just like the login name).

 
cvs -z3 -d:pserver:anoncvs@cvs.arabeyes.org:/home/arabeyes/cvs co art/khotot

NOTE: this is about 30MB download.

Diacritic Marks (Harakat)

One of the most annoying problems is the lack of proper Arabic diacritics support in free fonts (and even most non-free fonts). For a given font, it must provide some features to support Arabic diacritics properly:

  1. The very first feature is to make diacritic marks lay over base glyphs, this is achieved by making diacritic glyphs zero width glyphs.
  2. The ability to set the diacritic mark relative to each glyph, as compared with poorly designed fonts where all diacritic marks lay at the same level regardless to the underlying base glyph. This can be achieved by using anchor points.
  3. The ability to place Diacrtics properly over ligatures[3].
  4. The ability to place Diacritic marks correctly in relation to each other, what so called stacked diacritic marks, like Shadda whith Fatha over it.

Editing the font

FF's Execute dialog

Setting diacritic marks to Zero width

Open the font with FF, from font view select diacritic glyphs (from U+064B to U+0652). Go to "File -> Execute Script" Dialog, check "FF" check box, they type "SetWidth(0)".

Anchor points

Anchor points are points that is used to tell font rendering engine where to put to glyphs in relation to each other [4]. For diacritic positioning we need 3 classes of anchor points:

  • Mark to Base: mark in relation to base glyph, say Dammah over Alef.
  • Mark to Ligature: mark in relation to ligature, say Fathah over Lam Alef.
  • Mark to Mark: mark in relation to another mark, Fathah over Sahaddah for example.

You need to add lookuptables and subtables in order to set anchor point classes.


  1. FontForge can be found in its web page, fontforge.sourceforge.net.
  2. FontForge
  3. A ligature is a combination of two characters into one glyph, the only mandatory ligature in Arabic is Lam Alef
  4. FontForge Manual - Overview of Anchors.