Fonts development

From IndLinux

Jump to: navigation, search

On this page are things that have to be improved in Indic fonts. For the moment, only main scripts are dealt with.

Contents

Resources

Scientific and de facto standards

Unicode Consortium has defined character sets for Bengali, Devanagari, Gujarati, Gurmukhi, Kannada, Malayalam, Oriya, Tamil and Telugu. Usage of these is explained in the South Asian Scripts - I chapter of Unicode 5.2.0 standard.

Indic scripts are supported by OpenType fonts. A good general introduction on fonts making in general and OpenType in particular can be found in FontForge program's documentation.

However Indic scripts are too complex to be rendered only using font definitions without making such fonts being extremely difficult. Rendering has to be done thanks to a cooperation between font and shaping engine. Current most used implementation is described on Microsoft's web site for Bengali, Devanagari, Gujarati, Gurmukhi, Kannada, Malayalam, Oriya, Tamil and Telugu scripts.

Software and mailing lists

The main (only?) free program to build OpenType fonts on GNU/Linux is FontForge. Some tests can be done with the pango-view program.

The Lohit Fonts Project is currently active and interesting discussions can be found or started on its mailing list.

Things to verify or fix

Akhand followed by Halant at the end of a word

When a conjunct built by an akhand feature followed by a virama ends a word, the full akhand glyph followed by a visible virama should be displayed. But current implementations show only the half form of the akhand.

The following example was made with Lohit font at size 30pt.

Unicode sequence Current rendering Expected rendering
<U+0915,U+094D,U+0937,U+094D> Lohit ksha half.png Lohit ksha virama.png
<U+091C,U+094D,U+091E,U+094D> Lohit jna half.png Lohit jna virama.png

Correspondance between Unicode character and glyphs

Some fonts don't map glyphs to right Unicode characters. This sometimes cause big troubles in rendering.

Vertical alignment of parts of glyphs that need to

Some fonts have glyphs parts should be aligned from glyph to glyph, but are not, which is especially ugly for top vertical line of Devanagari, Gurmukhi or Bengali.

Hinting

Some fonts need hints or true type instructions to be rendered in a more readable way at small sizes.

Here is an example of a sample text rendered without hinting and with the Gimp's autohinting at different sizes. It's using Lohit font.

Size Without hinting With hinting
12pt Indix lohit no autohinting.12pt.png Indix lohit autohinting.12pt.png
13pt Indix lohit no autohinting.13pt.png Indix lohit autohinting.13pt.png
14pt Indix lohit no autohinting.14pt.png Indix lohit autohinting.14pt.png

Localized forms

Some Indic scripts have glyphs variants for different languages. These have to be defined through localized forms features in fonts.

Here is an example of language specific glyph. Lohit font with "locl" feature enabling Marathi shape of 'ल' was used with pango-view to write the word "कमल" once in Hindi, once in Marathi:

  • Unicode sequence: <U+0915,U+092E,U+0932>
  • Rendering with Hindi language selected: Lohit kamal Hindi.png
  • Rendering with Marathi language selected: Lohit kamal Marathi.png
Personal tools
communication
Development