Thursday, September 18, 2014

Lohit Tami 2.91.0 now available for testing

Done with the release of Lohit Tamil 2.91.0 with the improvements planned under Lohit2 project.

Following are highlights:
  1. Rewritten all Open type tables with supporting taml and tml2 tags.
  2. Renamed all the glyphs by following AGL syntax.
  3. Open type tables are available in .fea file and this time it is compiled with AFDKO.
  4. Reusing glyphs by "COPY REFERENCE"
  5. Added GRID FITTING table and auto-hinting by fontforge. (Need to use ttfautohint but we need Latin support to do that)
  6. Tested with Harfbuzz NG and Uniscribe (W8)  (Need to test on WinXp yet)
  7. Auto test module available with test files. (Please help me to add more test cases.)

This release now support characters required for minority orthographies. For more details visit bugzilla

Stopped using deprecated ligature for SRII. See bugzilla for more information.

Wednesday, September 17, 2014

Compiling Lohit fonts feature file with Adobe Font Development Kit

This first came to notice with issue "OTM error #13". Everything was working perfectly with fontforge, creating feature file and importing feature file back :)

But certainly above issue open up number of issues with this process. Font designers were not able to import .fea file due to this issue.

Thanks to Dave and Frank for pointing to issue and directing me towards Adobe Font Development Kit (AFDKO). Adobe is the one created specification for .fea file and provided nice tools to compile it.  Most of the information already available AT 

 This blog is specifically to update how i am using AFDKO in Lohit project.

1. Write open type tables for Lohit fonts in Fontforge.
2. Export .fea file
3. Generate .ttf by importing .fea file to it using following commands.
4. makeotf -f Lohit-Tamil.ttf -ff Lohit-Tamil.fea

Makeotf is python wrapper over makeotfexe. makeotfexe can not process .ttf generated from fontforge. 
In first step makeotf convert .ttf provided to unix Type1 font.

It fails with error but it generates unix Type1 font required for makeotfexe.

What errors :)

  makeotf command pass following arguments to makeotfexe

  "makeotfexe "-f" "Lohit-Tamil.ttf.tmp" "-o" "Lohit-Tamil.ttf.temp_cff" -ff "Lohit-Tamil.fea" -ga -gf "Lohit-Tamil.ttf.temp.GOADB" -mf "FontMenuNameDB" -shw"

In above argument  "-ga -gf "Lohit-Tamil.ttf.temp.GOADB"  are not required but somehow automatically gets added by makeotf.

* We should replace -ga with -nga for not using GlyphOrderAndAliasDB. GlyphOrderAndAliasDB file is provided for ease of writing feature file.

* User can write feature file with user friendly names and use GlyphOrderAndAliasDB for adding name required as per standard.

* If one not using  GlyphOrderAndAliasDB, he should remove "-ga -gf "Lohit-Tamil.ttf.temp.GOADB"  and put -nga instead.

But makeotf done one good job of converting source font 'Lohit-Tamil.ttf' to temporary Unix Type1 font file 'Lohit-Tamil.ttf.tmp'

You will requires FontMenuDB file. Its content should be as per fonts. Font Lohit
[psatpute@dhcp201-194 bengali]$ cat FontMenuNameDB
    f=Lohit Devanagari
    l=Lohit Devanagari

5. run makeotfexe removing problem cuasing arguments.
 makeotfexe "-f" "Lohit-Tamil.ttf.tmp" "-o" "Lohit.ttf" -ff "Lohit-Tamil.fea" -nga -mf "FontMenuNameDB" -shw

And here get you Lohit.ttf build by adding .fea file with AFDKO.

Hope so it will help to some others as well.

I specifically found this very useful for finding issues in Lohit-Devanagari.fea files.

Tuesday, September 16, 2014

Lohit Tamil in Unicode charts

This is news to me as well :)

 Just came to know from comment that Lohit Tamil is used in Unicode charts from 7.0 onwards.  I did quick comparison with old Tamil chart and 7.0 and yes that is Lohit !!

Kudos to Shriramana for making this happen with proposal. I remember we were talking about this last year and due to OFL license of Lohit it is easy to use it in Unicode charts without any permission.

This add more responsibility to make sure Lohit Tamil follows and keep glyphs consistent in future version. I am sure with strong community we can achieve it.

 I have been always proposing Unicode for using opensource fonts in there charts. Unicode definitely spending some money to make fonts for these charts, so why not to release these charts under opensource license?

 Presently charts only serve the purpose of reference and even after release of particular version even for single character users need to wait for other fonts to sync with latest Unicode version. If Unicode release latest version of charts with fonts as well, one can just quickly install those fonts. These fonts can be used in all OS due to liberal license, many things can happen...

  Second part that is faced specifically in complex script, is reference for rendering rules. Yeah, this can add additional overhead to Unicode but i strongly feel it can help further to have standardization in complex script rendering.

  Anyway we are already trying for this with Lohit2 project, hopefully  other script fonts project will also start this kind of initiative and in long term font designers will be free from worry of rules for complex script rendering.

  Again glad to see this is happening !!

Thursday, September 11, 2014

"Devanagari script behaviour for Hindi" standardization meeting AT Delhi on 10th Sep2014

    DIT is working on this project with CDAC and other stakeholder almost from 2+ years. I am one of the committee member of this working group and making sure it will actually benefit target audience.
We have invested earlier time on what should be the structure of this document and what things must be included in this documents.
    Also we had excellent debate with language scholars on what is valid combination in Hindi language and what is not. How particular combination should get displayed. We made one significant decision saying we will not say anything is invalid, since there is possibility of inclusion of words from other language to Hindi and end use must be able to type it.
    Number of things happened over the time from 1.3.1 version to latest 1.4.4 and finally we are very closer to have final release of this document.

    Highlights of this Draft:
    1. Target audience is ICT stakeholders.
    2. Platform owner interested in supporting particular language in his product will get complete information from locale, sorting, backspace, delete, rendering etc from single document. One can also say this document is simply including standards around Hindi language at one place. Those are Unicode, CLDR and language related standards.
    3. For Hindi draft reference is used from book "देवनागरी लिपि तथा हिंदी वर्तनी का मानकीकरण"  Central Hindi Directorate"

    Yesterday we quickly gone through draft to make sure conjuncts are represented properly in document. Hindi mostly uses half form of base characters unlike complete conjuncts get form in Marathi language.

    Draft is still open [1] for comments and feedback. Once Hindi will get finalized same process will be repeated for other language and all these Draft will get authenticated from BIS as a standards.  For other languages DIT will first prepare draft and in later stage talk with state governments for Feedback. Next one will be Marathi since most of the things are already ready for Marathi languages.

    I hope this will help to community over the time.