Designing and producing fonts for N’Ko

This page will explain parts of the design process that I used to develop a Unicode font for N’ko, and give instructions so that others can do so by following the same “recipe”. I use the Mac OS for my development work, and so I will describe the process I use on that platform. In future when I have learned how to make fonts work on other platforms, I will put that information here as well. First, though, I will give information on how to install the font on different platforms. Some items which are not yet available are struck through. This is a work in progress.

Install and use an N’Ko font

Installing an N’Ko font on the Mac OS

You can install the font on Mac OS 10.4, although there are rendering problems with it.

Download the font “Conakry” and unzip the .ttf file. (The file is inside the folder “ConakryFont”, which is compressed in .zip format.)

Installing the font is easy. Either drag the font to ~/Library/Fonts or double-click on the font and let FontBook do the installing.

Archive or delete the .zip file as you wish.

Installing an N’Ko font on Ubuntu Linux

If necessary, download and install Ubuntu Linux. I used version 7.04 Desktop Edition. (If you are using Parallels on the Mac OS you may need these instructions.)

Download the font “Conakry” and unzip the .ttf file onto the Desktop. (The file is inside the folder “ConakryFont”, which is compressed in .zip format.)

Go to Places > Home Folder to open the File Browser.

Go to Go > Location...

In the “Location:” box, type “fonts:///” and press Return.

Drag the unzipped .ttf file into the Fonts directory. (It will copy there; the original will be left on your Desktop.)

Archive or delete the .zip file and .ttf file on the Desktop as you wish.

Install and use an N’Ko keyboard layout

Installing an N’Ko keyboard layout on the Mac OS

Two keyboard layouts are included: N’Ko Standard which is an ergonomic keyboard layout, and N’Ko QWERTY which is optimized for English-language typists. In future an N’Ko AZERTY keyboard layout which is optimized for French-language typists may be made available.

Download the Mac OS N’Ko keyboard layout package. (The files are inside the folder “Nko-Mac-Keylayouts”, which is compressed in .zip format.)

Install the keyboard layouts by dragging them (the .keylayout and the .icns files, not their enclosing folder) to ~/Library/Keyboard Layouts.

To use a keyboard layout, select the one you want from System Preferences > International > Input Menu.

Installing an N’Ko keyboard layout on Ubuntu Linux

Keyman source files work on Linux, using the “kmfl” tool. First you must install this tool. To do this:

Go to System > Administration > Synaptic Package Manager.

Select Settings > Repositories.

Click on “Third Party Software”.

Click “Add...”.

Type: deb http://packages.sil.org/ubuntu feisty main

Click “OK”, then click “Close”.

Click the “Reload” button.

Scroll down and select ”scim-kmfl-imengine”.

Click “Apply” to install the “kmfl” tool. (You may have to log out and log in again after this step.)

Recipe for making an N’Ko font

Character set and glyph repertoire (all platforms)

The first thing that has to be done before you start an N’Ko font is to decide on the characters (the letters, digits, punctuation, and other symbols) that your font will support. I’ve done this for you! I recommend that fonts support Latin as well as N’Ko letters. At a minimum, all the letters in the Windows ANSI code table, all the letters in the Macintosh Roman character set, and a few additional letters used in African languages should be included in addition to N’Ko letters. A PDF file contaning the recommended glyph set and glyph-names for N'Ko Unicode fonts is available. The current version is dated 2006-03-31. If your font contains all of the glyphs listed here, and if it uses the glyph names I recommend, the instructions below should work for you.

For N’Ko letters, your font has to have not only glyphs for the basic letters themselves, but it also has to have glyphs for their shaping forms to make sure that the letters join to each other properly. You also have to make sure that the diacritics go in the right place. They should be centred properly over (or under) the letter so it doesn't look odd.

There are two ways to get the diacritics to go in the right place. I use the “precomposed glyph” method. The other way is to tell the font to put them in the right place by using “attachment points”. I prefer the reliability of pre-composed glyphs (and the “attachment points” method may not work easily on all platforms), so I have used the “precomposed glyph” method.

Applications for font design

Mac OS: I use the application Fontographer to draw my glyphs, and generate my TrueType fonts in “.ttf” format from that. Then I open the “.ttf” file with the application FontLab to process them so that they are “Unicode ready”. Then I generate a fresh “.ttf” file from FontLab.

Linux: If you are using the Linux platform you may wish to use FontForge to draw your glyphs. It is probably easier to install this from within Linux. Go to System > Administration > Synaptic and type “fontforge” and it should install automatically.

Windows: If you are using the Windows platform you may wish to use FontLab.

Glyph names

Each glyph must have a unique name, and the names which I am using in my font should be used in your fonts too because they conform to recommended standards for glyph names. If your font uses the names that I recommend here, you can use the same configuration files I use to fuse shaping behaviour into your font. That way you do not have to configure those files yourself.

Some of the Latin glyph names have “natural language” names (the digit 4’s glyph name is “four”, for example). The recommended N’Ko glyph names are all based on the Unicode character codes for them. The basic letters have the simplest names: U+07CA NKO LETTER A is just “uni07CA”. The recommended glyph name for the medial form of NKO LETTER A has a glyph name “uni07CA.medi”.

Changing old-style Fontographer glyph names to new-style glyph names

Fontographer has some naming limitations which have to be handled. If you use Fontographer to draw the character names for the joining N’Ko glyphs should be changed before you can use them in FontLab. It is not a very big change. The medial form of NKO LETTER A has a glyph name “uni07CAmedi” in Fontographer and this should be changed to “uni07CA.medi” with a dot before the suffix. Unfortunately, Fontographer doesn’t let names have a “.” in them right now, so I have to change them outside of Fontographer. In order to do that, I have Apple's font tools installed.

After generating the .ttf from FontLab, I put the font (in this case, “Conakry.ttf”) into my Fontdeveloper folder in my Documents folder. Then I open the application Terminal, set the working directory to “Fontdeveloper”. For me, this involves the following commands, because the path to my shaping file (the “.mif” file discussed below) is ~/Documents/Fontdeveloper:

cd Documents
cd Fontdeveloper

Then I issue the ftxDumperFuser command

ftxdumperfuser -t post -o nko-post_dump.xml Conakry.ttf

(For an explanation of the commands see here.) The result is a file called “nko-post_dump.xml”. I open this file in a text editor, and do three case-sensitive search-and-replaces: change “init” to “.init”, change “medi” to “.medi”, and change “fina” to “.fina”. Then I search manually for “inf.inity” (∞) and change it back to “infinity”. Now I have to fuse those names back into the file. I issue the ftxDumperFuser command

ftxdumperfuser -t post -d nko-post_dump.xml Conakry.ttf

Now the font has character names in it which comply with recommended standards.

Adding Apple AAT shaping behaviour to the font

The next thing I have to do is to fuse the shaping behaviour and the diacritic placement rules into the font. I have configured a “.mif” file to do this already, based on the glyph names that I have previously defined. Using Terminal again, I issue the ftxEnhancer command

ftxenhancer -m conakry.mif Conakry.ttf

The “.mif” file contains the information needed to associate the base-letters and diacritical marks with the pre-composed glyphs as well as the information needed to make the glyphs combine contextually depending on whether they stand alone, or whether they are in initial, medial, or final position. You don't have to configure this file yourself if your font has the right glyphs and glyph-names in it. Just use the file conakry.mif. (The file is inside the folder “ConakryMIF”, which is compressed in .zip format.)

After you have run the ftxEnhancer, your font should be ready for use. There is a known bug in OS 10.4 that prevents N'Ko fonts from working in most environments other than file- and folder-names. I will be uploading my own font in due course (the public licence needs to be sorted out) as well as two N'Ko keyboards that work under OS X. Watch this space!

Adding SIL Graphite shaping behaviour to the font under Windows XP

You have to be use Windows because compiling under Ubuntu Linux is not yet supported (though it may be soon).

Get Graphite Compiler. Extract its contents and put them into C: > Program Files > SIL > graphite (directly, not as a subdirectory within “graphite”). You may have to dreate the “SIL” and “graphite” folders.

Now you are ready to run the Compiler over the font to fuse the information in the GDL into the font.

The next thing you have to do is to fuse the shaping behaviour and the diacritic placement rules into the font. Sharon Correll of SIL has configured a “.gdl” file to do this already, based on the glyph names that I have previously defined. The “.gdl” file contains the information needed to associate the base-letters and diacritical marks with the pre-composed glyphs as well as the information needed to make the glyphs combine contextually depending on whether they stand alone, or whether they are in initial, medial, or final position. You don't have to configure this file yourself if your font has the right glyphs and glyph-names in it. Just use the file conakry.gdl. (The file is inside the folder “ConakryGDL”, which is compressed in .zip format.)

Download the font “Conakry” and unzip the .ttf file. (The file is inside the folder “ConakryFont”, which is compressed in .zip format.)

Put the font and the “conakry.gdl” and “nko.gdh” files into C:\Program Files\SIL\graphite.

Go to Start > Run… and type cmd to open the Command Prompt. Now when I do this my command prompt opens up to C:\Documents and Settings\Username and from here I have to navigate to my “graphite” folder. A quick way of doing this is to type cd..\.. first, then cd Program Files, then cd SIL and finally cd graphite.

Type the following command to add Graphite shaping behaviour into the font.

makegdl nko.gdh Conakry.ttf

Type the following command to add Graphite shaping behaviour into the font.

Get and install the WorldPad application (27 MB). This will unpack into a folder called “WP_2_4”; open this and run "setup.exe". Click the radio button next to “SIL FieldWorks WorldPad 2.4” and follow the Wizard instructions to install.