Skip to content

Commit

Permalink
Adjust pulli and language specific nuktas
Browse files Browse the repository at this point in the history
When the Tamil glyphs were no longer scaled,
the spacing of the nuktas and pulli was overlooked,
causing the nuktas to touch the base character.

While touching turned out to be desired for one language,
it was not desired for the other languages. So now,
most of the languages have spacing like before the
changing of the scaling of the glyphs.

To simplify using the language specific nuktas,
specific fonts were created for each language.
  • Loading branch information
devosb committed Jan 19, 2019
1 parent d7adfd4 commit bf2723d
Show file tree
Hide file tree
Showing 9 changed files with 57 additions and 12 deletions.
2 changes: 2 additions & 0 deletions FONTLOG.txt
Original file line number Diff line number Diff line change
Expand Up @@ -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.
Expand Down
2 changes: 1 addition & 1 deletion source/master.gdl
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@ bkurm {

jkurm {
languages = ("xuj");
nuka = ring;
nuka = dotdbl;
}

irula {
Expand Down
8 changes: 6 additions & 2 deletions tests/CTTnukta.htxt
Original file line number Diff line number Diff line change
@@ -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
8 changes: 6 additions & 2 deletions tests/IRUnukta.htxt
Original file line number Diff line number Diff line change
@@ -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
8 changes: 6 additions & 2 deletions tests/XUBnukta.htxt
Original file line number Diff line number Diff line change
@@ -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
11 changes: 10 additions & 1 deletion tools/anchors.py
Original file line number Diff line number Diff line change
Expand Up @@ -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:
Expand Down
4 changes: 2 additions & 2 deletions tools/ffaddapstotaml
Original file line number Diff line number Diff line change
Expand Up @@ -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') :
Expand Down
4 changes: 2 additions & 2 deletions tools/ffaddvaptotaml
Original file line number Diff line number Diff line change
Expand Up @@ -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.
Expand Down
22 changes: 22 additions & 0 deletions wscript
Original file line number Diff line number Diff line change
Expand Up @@ -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')
Expand Down Expand Up @@ -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 = '')
)

0 comments on commit bf2723d

Please sign in to comment.