Chapter 3. Testing and Packaging your Font

Table of Contents

Testing your font
Part 1 - Testing Substitution
Part 2 - Testing Positioning
Part 3 - Actual Real World Testing (simulated)
Releasing Your Font

Once you have created all the GPOS tables and entered all the requisite substitution information, you will have to test your font, and once you are satisfied with the results of your test, you will have to package it and release it to the world.

Testing your font

Testing fonts can be a tricky affair, since there are at least four major rendering engines you need to be compatible with, and even then, you cannot be sure whether your font will work in all versions of a given rendering engine. In this section, I'll give you an idea of the bare minimum that you must do to ensure the quality of your font.

The test process can be divided into three different parts, and each part of the process must be repeated across the various rendering engines - namely

  • IBM's ICU (use OpenOffice.org to test this)

  • Pango (use Gedit to test this)

  • QT (use Kword to test this)

  • Microsoft's Uniscribe Engine (use notepad in Windows XP, or Internet Explorer 6 in Windows 98 to test this).

Tip

The best rendering engine (in terms of handling Indic Open Type fonts) that I have ever come across is the one used in the Yudit editor. During the devlopment process, I usually test my fonts with Yudit, and once initial development is complete, I move on to the other rendering systems for testing.

Part 1 - Testing Substitution

To test the substitution, you will have to make a list of all the conjuncts that are actually used in your script. Such a list is usually available in a dictionary or in a grammar book. After you make this list, see how this list is rendered with your fonts by different rendering engines.

Tip

Usually most of the errors are caused by typos and other similar minor goof ups. However, in some (rare) cases, (especially in case of reph and vattu) errors are caused due to the incorrect GSUB ordering. The ordering can be changed by accessing the Set GSUB/morx ordering dialog in the TTF Values tab of the Font Info.. window.

Part 2 - Testing Positioning

To test the positioning, take the base characters, as well as the conjuncts from the previous test, and add all possible marks to the characters and conjuncts (one mark per list). Then take a look at the result using different setups (in Gedit, Kword, etc).

Tip

Usually, I take the character list, add a particular mark (say ukaar) by hand, and then add the rest of the marks to the other lists by using the Find and Replace feature of the editor that I am using.

Part 3 - Actual Real World Testing (simulated)

In the final testing exercise, get some actual real world text from some random source (I usually copy paste from news sites), and see how it renders in different applications. Also, take print outs on paper - just to make sure.

Tip

During this phase, you might notice that in GNU/Linux applications, the glyphs do not line up properly in the x-axis. This happens usually due to the fact that the autohinter used in the Freetype project cannot handle Indic and CJK fonts properly. The work around for this issue is to add the following lines to /etc/fonts/local.conf:

<match target="font">
	<test name="family">
		<string>Name of Your Font</string>
	</test>
	<edit name="hinting">
		<bool>false</bool>
	</edit>
</match>