Collaboratively edited documentation for Indic font developers

One of the integral building blocks for providing multilingual support for digital content are fonts. In current times, OpenType fonts are the choice. With the increasing need for supporting languages beyond the Latin script, the TrueType font specification was extended to include elements for the more elaborate writing systems that exist. This effort was jointly undertaken in the 1990s by Microsoft and Adobe. The outcome of this effort was the OpenType Specification – a successor to the TrueType font specification.

JanaSanskritSans_ddhrya
The Devanagari ddhrya-ligature, as displayed in the
JanaSanskritSans font.

Fonts for Indic languages had traditionally been created for the printing industry. The TrueType specification provided the baseline for the digital fonts that were largely used in desktop publishing. These fonts however suffered from inconsistencies arising from technical shortcomings like non-uniform character codes. These shortcomings made the fonts highly unreliable for digital content and their use across platforms. The problems with character codes were largely alleviated with the gradual standardization through modification and adoption of Unicode character codes. The OpenType Specification additionally extended the styling and behavior for the typography.

The availability of the specification eased the process of creating Indic language fonts with consistent typographic behaviour as per the script’s requirement. However, disconnects between the styling and technical implementation hampered the font creation process. Several well-stylized fonts were upgraded to the new specification through complicated adjustments, which at times compromised on their aesthetic quality. On the other hand, the technical adoption of the specification details was a comparatively new know-how for the font designers. To strike a balance, an initiative was undertaken by the a group of font developers and designers to document the knowledge acquired from the hands own experience for the benefit of upcoming developers and designers in this field.

glyph-fontforge-meera
Glyphs inside Meera font

The outcome of the project will be an elaborate, illustrated guideline for font designers. A chapter will be dedicated to each of the Indic scripts – Bengali, Devanagari, Gujarati, Kannada, Malayalam, Odia, Punjabi, Tamil and Telugu. The guidelines will outline the technical representation of the canonical aspects of these complex scripts. This is especially important when designing for complex scripts where the shape or positioning of a character depends on its relation to other characters.

This project is open for participation and contributors can commit directly on the project repository.

Using Inkscape for DTP in Indic Scripts

A good page layout package for GNU/Linux with Indic language and unicode support is one of the missing item in the list of software packages for Indic computing. Scribus gives hope but it is still not ready to serve the purpose. So what could be the solution? Should we wait or find out ‘workarounds’?
No, There is a solution. Till scribus is ready with indic support Inkscape will help us. Inkscape is not a DTP software, but it can do it if required. Using its text objects and other text/image editing features we can design pages in Unicode itself. And with Pango rendering.
Using inkscape is not difficult and it comes with good tutorials in SVG format and those tutorial pages are also an illustration of how to do page layout. You can save your work in SVG, PNG ,PDF etc..


I just tried to design two pages in Malayalam and result was satisfactory.

Thanks to Anivar for pointing out this possibility of Inkscape.

Hacking the GLMatrix screensaver

I am sure that many of you are fans of “The Matrix” series. And many of you might be using the Matrix Screensavers in your system.
But did you ever think like this: “Why cant that glowing green glyphs that rains in black screen be Indic ?”
Well, Not a bad Idea. Right?
Ok, Shall we try to hack the glmatrix screen saver? Here you go!

1. Download the xscreensaver sourcecode from http://www.jwz.org/xscreensaver/download.html

2. Configure and make it(just to ensure that you have required libraries in your machine)

3. Goto hacks/images folder of that source code. You will see matrix3.xpm file there. Backup it , it is valuable:)

4. I am going to use Hindi glyphs(You can use the glyphs from your mother tongue).Now we need to create one xpm image file with same dimension and size of the original one. Write one html page with table and arrange the alphabets there. Note the table should be a 512*598 pixels 13 rows, 16 columns.

5. Refer the following Hindi table. Take a screenshot of the html and get the table alone. You may use the source code of the below table for your language.

! @ # $ % ^ & * ( ) _ + , / .
कु नु रु चु पु
र‍ कू
धा
क्ष @ ( ) _ + , / .
* ! @ # $ ​​​​~ ÷ ¾ , ¼ ½
क्ष पो नु
रू भू जुु गुु सु मु नि षि वी
क्ष ळ‍
& ज्ञ श्र


6. Open GIMP and create a new image with image with 512*598 pixel size. paste the table screenshot on the blank image. You can save it as matrix3.xpm file.

7. From my experiments I found that the image should be the mirror copy of the the table image.So flip the image horizontally to get the mirror image and save

8. You can see that the size of the image around 601 KB. But the actual image should be around 301 KB file. Go to Layers-> Colours->posterize. And give the number of colours as 91 (some value around 90). Save it.

9. Now you have the matrix glyph image ready.

10. goto hacks/glx folder. Apply the below patch to glmatrix.c

1079c1079
< XSCREENSAVER_MODULE_2 ("GLMatrix", glmatrix, matrix) --- > XSCREENSAVER_MODULE_2 (“Hindi Matrix”, glmatrix, matrix)

11. Recompile it! Done? No, wait. We need to add this as a screensaver to Gnome-screensaver
12. Create one Hindi Matrix.desktop file in usr/share/applications/screensavers folder. Here is my file

[Desktop Entry]
Encoding=UTF-8
Name=Hindi Matrix
Comment=Draws 3D dropping characters similar to what is seen in the title sequence of “The Matrix”, written by Jamie Zawinski. This is a Hindi glyph version written by Santhosh Thottingal.
TryExec=himatrix
Exec=himatrix -root -speed 5.0 -density 50
StartupNotify=false
Terminal=false
Type=Application
Categories=Screensaver
X-Ubuntu-Gettext-Domain=xscreensaver

13. Copy the glmatrix binary to usr/lib/xscreensaver/himatrix.

14. Now go to System-> preferences -> Screensave. Your screensaver should be listed there. See my screenshot

You can download Hindi and Malayalam matrix deb package from here

Happy Hacking!!!