diff --git a/FONTLOG.txt b/FONTLOG.txt index 105c2974..14f519c7 100644 --- a/FONTLOG.txt +++ b/FONTLOG.txt @@ -29,6 +29,8 @@ ChangeLog Unreleased - Slightly expand and improve the character set +- Move and adjust form of some of the nuktas +- Provide language specific fonts 04 Jan 2019 (Dev NLCI) NLCI Tamil fonts version 0.400 - Keep the new nukta codepoint, but provide all nukta forms (including a new double ring) on the old codepoint as well. diff --git a/source/master.gdl b/source/master.gdl index d500ca73..ade8e7b3 100644 --- a/source/master.gdl +++ b/source/master.gdl @@ -63,7 +63,7 @@ bkurm { jkurm { languages = ("xuj"); - nuka = ring; + nuka = dotdbl; } irula { diff --git a/tests/CTTnukta.htxt b/tests/CTTnukta.htxt index 65331eb0..6e3e53ff 100644 --- a/tests/CTTnukta.htxt +++ b/tests/CTTnukta.htxt @@ -1,7 +1,11 @@ RenderingUnknown -single nukta +Single nukta (future) \u0b95\u0bc1\u0bae\u0bcd\u0baa\U0001133B\u0bc6\U0001133B\u0b9f\U0001133B\u0bc6\U0001133B\u0b95\U0001133B\u0bae\u0bcd\u0baa\u0bc6\U0001133B\u0ba4\u0bc6\U0001133B \u0b95\u0bc1\u0baf\u0bcd\u0bb0\u0bcd\u0b95\u0bc6\U0001133B\u0bc1\u0baf\u0bcd\u0bb0\u0bcd\u0b95\U0001133B\u0bc6\U0001133B\u0ba9\u0bbe\u0b9f\U0001133B\u0bc6\U0001133B \u0ba4\u0bc6\U0001133B\u0baa\U0001133B\u0bc6\U0001133B -double nukta +\u0ba4\U0001133B\u0bcd\u0b95\U0001133B\u0bbe\u0b95\u0bbf\U0001133B\u0b9e\u0bc1\U0001133B\u0b95\u0bc1\U0001133B\u0bcd\u0b95\u0bc1\U0001133B +\u0b9f\u0bbf\U0001133B \u0b9f\u0bc1\U0001133B \u0b9f\u0bc2\U0001133B \u0ba4\u0bc1\U0001133B \u0ba4\u0bc2\U0001133B\u0bae\u0bcd\u0baa\u0bc1\u0bcd\u0bc7\u0bb2\u0bb5\u0bbf +Double and single nuktas \u0b95\u0bc1\u0bae\u0bcd\u0baa\U0001133C\u0bc6\U0001133C\u0b9f\U0001133C\u0bc6\U0001133C\u0b95\U0001133C\u0bae\u0bcd\u0baa\u0bc6\U0001133C\u0ba4\u0bc6\U0001133C \u0b95\u0bc1\u0baf\u0bcd\u0bb0\u0bcd\u0b95\u0bc6\U0001133C\u0bc1\u0baf\u0bcd\u0bb0\u0bcd\u0b95\U0001133C\u0bc6\U0001133C\u0ba9\u0bbe\u0b9f\U0001133C\u0bc6\U0001133C \u0ba4\u0bc6\U0001133C\u0baa\U0001133C\u0bc6\U0001133C +\u0ba4\U0001133C\u0bcd\u0b95\U0001133C\u0bbe\u0b95\u0bbf\U0001133C\u0b9e\u0bc1\U0001133C\u0b95\u0bc1\U0001133C\u0bcd\u0b95\u0bc1\U0001133C +\u0b9f\u0bbf\U0001133C \u0b9f\u0bc1\U0001133C \u0b9f\u0bc2\U0001133C \u0ba4\u0bc1\U0001133C \u0ba4\u0bc2\U0001133C\u0bae\u0bcd\u0baa\u0bc1\u0bcd\u0bc7\u0bb2\u0bb5\u0bbf diff --git a/tests/IRUnukta.htxt b/tests/IRUnukta.htxt index 65331eb0..6e3e53ff 100644 --- a/tests/IRUnukta.htxt +++ b/tests/IRUnukta.htxt @@ -1,7 +1,11 @@ RenderingUnknown -single nukta +Single nukta (future) \u0b95\u0bc1\u0bae\u0bcd\u0baa\U0001133B\u0bc6\U0001133B\u0b9f\U0001133B\u0bc6\U0001133B\u0b95\U0001133B\u0bae\u0bcd\u0baa\u0bc6\U0001133B\u0ba4\u0bc6\U0001133B \u0b95\u0bc1\u0baf\u0bcd\u0bb0\u0bcd\u0b95\u0bc6\U0001133B\u0bc1\u0baf\u0bcd\u0bb0\u0bcd\u0b95\U0001133B\u0bc6\U0001133B\u0ba9\u0bbe\u0b9f\U0001133B\u0bc6\U0001133B \u0ba4\u0bc6\U0001133B\u0baa\U0001133B\u0bc6\U0001133B -double nukta +\u0ba4\U0001133B\u0bcd\u0b95\U0001133B\u0bbe\u0b95\u0bbf\U0001133B\u0b9e\u0bc1\U0001133B\u0b95\u0bc1\U0001133B\u0bcd\u0b95\u0bc1\U0001133B +\u0b9f\u0bbf\U0001133B \u0b9f\u0bc1\U0001133B \u0b9f\u0bc2\U0001133B \u0ba4\u0bc1\U0001133B \u0ba4\u0bc2\U0001133B\u0bae\u0bcd\u0baa\u0bc1\u0bcd\u0bc7\u0bb2\u0bb5\u0bbf +Double and single nuktas \u0b95\u0bc1\u0bae\u0bcd\u0baa\U0001133C\u0bc6\U0001133C\u0b9f\U0001133C\u0bc6\U0001133C\u0b95\U0001133C\u0bae\u0bcd\u0baa\u0bc6\U0001133C\u0ba4\u0bc6\U0001133C \u0b95\u0bc1\u0baf\u0bcd\u0bb0\u0bcd\u0b95\u0bc6\U0001133C\u0bc1\u0baf\u0bcd\u0bb0\u0bcd\u0b95\U0001133C\u0bc6\U0001133C\u0ba9\u0bbe\u0b9f\U0001133C\u0bc6\U0001133C \u0ba4\u0bc6\U0001133C\u0baa\U0001133C\u0bc6\U0001133C +\u0ba4\U0001133C\u0bcd\u0b95\U0001133C\u0bbe\u0b95\u0bbf\U0001133C\u0b9e\u0bc1\U0001133C\u0b95\u0bc1\U0001133C\u0bcd\u0b95\u0bc1\U0001133C +\u0b9f\u0bbf\U0001133C \u0b9f\u0bc1\U0001133C \u0b9f\u0bc2\U0001133C \u0ba4\u0bc1\U0001133C \u0ba4\u0bc2\U0001133C\u0bae\u0bcd\u0baa\u0bc1\u0bcd\u0bc7\u0bb2\u0bb5\u0bbf diff --git a/tests/XUBnukta.htxt b/tests/XUBnukta.htxt index 65331eb0..6e3e53ff 100644 --- a/tests/XUBnukta.htxt +++ b/tests/XUBnukta.htxt @@ -1,7 +1,11 @@ RenderingUnknown -single nukta +Single nukta (future) \u0b95\u0bc1\u0bae\u0bcd\u0baa\U0001133B\u0bc6\U0001133B\u0b9f\U0001133B\u0bc6\U0001133B\u0b95\U0001133B\u0bae\u0bcd\u0baa\u0bc6\U0001133B\u0ba4\u0bc6\U0001133B \u0b95\u0bc1\u0baf\u0bcd\u0bb0\u0bcd\u0b95\u0bc6\U0001133B\u0bc1\u0baf\u0bcd\u0bb0\u0bcd\u0b95\U0001133B\u0bc6\U0001133B\u0ba9\u0bbe\u0b9f\U0001133B\u0bc6\U0001133B \u0ba4\u0bc6\U0001133B\u0baa\U0001133B\u0bc6\U0001133B -double nukta +\u0ba4\U0001133B\u0bcd\u0b95\U0001133B\u0bbe\u0b95\u0bbf\U0001133B\u0b9e\u0bc1\U0001133B\u0b95\u0bc1\U0001133B\u0bcd\u0b95\u0bc1\U0001133B +\u0b9f\u0bbf\U0001133B \u0b9f\u0bc1\U0001133B \u0b9f\u0bc2\U0001133B \u0ba4\u0bc1\U0001133B \u0ba4\u0bc2\U0001133B\u0bae\u0bcd\u0baa\u0bc1\u0bcd\u0bc7\u0bb2\u0bb5\u0bbf +Double and single nuktas \u0b95\u0bc1\u0bae\u0bcd\u0baa\U0001133C\u0bc6\U0001133C\u0b9f\U0001133C\u0bc6\U0001133C\u0b95\U0001133C\u0bae\u0bcd\u0baa\u0bc6\U0001133C\u0ba4\u0bc6\U0001133C \u0b95\u0bc1\u0baf\u0bcd\u0bb0\u0bcd\u0b95\u0bc6\U0001133C\u0bc1\u0baf\u0bcd\u0bb0\u0bcd\u0b95\U0001133C\u0bc6\U0001133C\u0ba9\u0bbe\u0b9f\U0001133C\u0bc6\U0001133C \u0ba4\u0bc6\U0001133C\u0baa\U0001133C\u0bc6\U0001133C +\u0ba4\U0001133C\u0bcd\u0b95\U0001133C\u0bbe\u0b95\u0bbf\U0001133C\u0b9e\u0bc1\U0001133C\u0b95\u0bc1\U0001133C\u0bcd\u0b95\u0bc1\U0001133C +\u0b9f\u0bbf\U0001133C \u0b9f\u0bc1\U0001133C \u0b9f\u0bc2\U0001133C \u0ba4\u0bc1\U0001133C \u0ba4\u0bc2\U0001133C\u0bae\u0bcd\u0baa\u0bc1\u0bcd\u0bc7\u0bb2\u0bb5\u0bbf diff --git a/tools/anchors.py b/tools/anchors.py index 8f2f2587..af5c266f 100755 --- a/tools/anchors.py +++ b/tools/anchors.py @@ -7,10 +7,19 @@ # Open UFO ufo = sys.argv[1] font = OpenFont(ufo) -print(f'Add anchors for {ufo}') +print(f'Move anchors for {ufo}') # Modify UFO +## Move single ring closer to base character +ring = font['u1133C'] +for anchor in ring.anchors: + if anchor.name == '_N': + if font.info.familyName == 'ThiruValluvar': + anchor.y = -500 + else: + anchor.y = -244 + ## Move one nukta to the left tti = font['u0B9F_u0BBF'] for anchor in tti.anchors: diff --git a/tools/ffaddapstotaml b/tools/ffaddapstotaml index a746e12a..74e5cfff 100755 --- a/tools/ffaddapstotaml +++ b/tools/ffaddapstotaml @@ -18,9 +18,9 @@ vgw = (1 + dotmargin) * 0.5 * (vgr - vgl) # ThiruValluvar has a UPM of 2048, the others have a UPM of 1000. # Therefore, the location of the nukta AP is different. if f.familyname == 'ThiruValluvar': - ypos = -500. + ypos = -357 else: - ypos = -244. + ypos = -174 addAnchorClass(f, 'N') for n in ('u1133C.double', 'u1133C.ring', 'u1133C', 'u1133C.ringdbl') : diff --git a/tools/ffaddvaptotaml b/tools/ffaddvaptotaml index e8c6782d..8e315b82 100755 --- a/tools/ffaddvaptotaml +++ b/tools/ffaddvaptotaml @@ -10,9 +10,9 @@ addAnchorClass(f, 'V') # ThiruValluvar has a UPM of 2048, the others have a UPM of 1000. # Therefore, the distance from the virama glyph to the AP is different. if f.familyname == 'ThiruValluvar': - offset = 200 + offset = 143 else: - offset = 98 + offset = 70 # Vaigai has two stray contours on the virama glyph. # As a result, the bounding box values for this glyph are not useful. diff --git a/wscript b/wscript index 3f7e85dd..03df0a52 100644 --- a/wscript +++ b/wscript @@ -28,6 +28,13 @@ DESC_NAME='NLCI-' + script DEBPKG='fonts-nlci-' + script getufoinfo('source/ThiruValluvar-Regular.ufo') +langinfo = { + 'xub' : 'Betta Kurumba', + 'xuj' : 'Jennu Kurumba', + 'iru' : 'Irula', + 'ctt' : 'Chetti' +} + # set test parameters TESTSTRING=u'\u0c15' #ftmlTest('tools/FTMLcreateList.xsl') @@ -111,3 +118,18 @@ for f in faces: package = p, fret = fret(params = '') ) + + for langcode in langinfo.keys(): + langname = langinfo[langcode] + langfontfilename = tag + f + langname.replace(' ', '') + snf + font(target = process(langfontfilename + '.ttf', + cmd('ttfdeflang -d ' + langcode + ' ${DEP} ${TGT}'), + name(tag + ' ' + f + ' ' + langname, lang='en-US', subfamily=(sn)) + ), + source = fontfilename + '.ttf', + opentype = internal(), + graphite = internal(), + script = 'taml', + package = p, + fret = fret(params = '') + )