summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRasmus Andersson <rasmus@notion.se>2017-08-24 10:43:12 +0300
committerRasmus Andersson <rasmus@notion.se>2017-08-24 10:43:12 +0300
commit3835e299be96e952ccea38b37f7e4288705d35c5 (patch)
tree435fa11b00db54ad5c0919c40995f176a1b590af
parent87ef797b2515590fc7670724bdc0939de576672f (diff)
downloadinter-3835e299be96e952ccea38b37f7e4288705d35c5.tar.xz
Adds tabular numbers. Closes #10
-rw-r--r--docs/lab/index.html11
-rwxr-xr-xmisc/gen-tnum.py75
-rw-r--r--src/Interface-Bold.ufo/glyphs/DZcaron_.glif2
-rw-r--r--src/Interface-Bold.ufo/glyphs/contents.plist24
-rw-r--r--src/Interface-Bold.ufo/glyphs/eight.tnum.glif7
-rw-r--r--src/Interface-Bold.ufo/glyphs/five.tnum.glif7
-rw-r--r--src/Interface-Bold.ufo/glyphs/four.glif12
-rw-r--r--src/Interface-Bold.ufo/glyphs/four.tnum.glif7
-rw-r--r--src/Interface-Bold.ufo/glyphs/nine.tnum.glif7
-rw-r--r--src/Interface-Bold.ufo/glyphs/one.tnum.glif7
-rw-r--r--src/Interface-Bold.ufo/glyphs/seven.tnum.glif7
-rw-r--r--src/Interface-Bold.ufo/glyphs/six.tnum.glif7
-rw-r--r--src/Interface-Bold.ufo/glyphs/three.tnum.glif7
-rw-r--r--src/Interface-Bold.ufo/glyphs/two.tnum.glif7
-rw-r--r--src/Interface-Bold.ufo/glyphs/zero.tnum.glif7
-rw-r--r--src/Interface-Bold.ufo/groups.plist4
-rw-r--r--src/Interface-Bold.ufo/lib.plist46
-rw-r--r--src/Interface-Regular.ufo/features.fea78
-rw-r--r--src/Interface-Regular.ufo/glyphs/DZcaron_.glif2
-rw-r--r--src/Interface-Regular.ufo/glyphs/contents.plist24
-rw-r--r--src/Interface-Regular.ufo/glyphs/eight.tnum.glif7
-rw-r--r--src/Interface-Regular.ufo/glyphs/five.tnum.glif7
-rw-r--r--src/Interface-Regular.ufo/glyphs/four.tnum.glif7
-rw-r--r--src/Interface-Regular.ufo/glyphs/nine.tnum.glif7
-rw-r--r--src/Interface-Regular.ufo/glyphs/one.tnum.glif7
-rw-r--r--src/Interface-Regular.ufo/glyphs/seven.tnum.glif7
-rw-r--r--src/Interface-Regular.ufo/glyphs/six.tnum.glif7
-rw-r--r--src/Interface-Regular.ufo/glyphs/three.tnum.glif7
-rw-r--r--src/Interface-Regular.ufo/glyphs/two.tnum.glif7
-rw-r--r--src/Interface-Regular.ufo/glyphs/zero.tnum.glif7
-rw-r--r--src/Interface-Regular.ufo/groups.plist4
-rw-r--r--src/Interface-Regular.ufo/lib.plist29
-rw-r--r--src/diacritics.txt8
-rw-r--r--src/glyphorder.txt11
34 files changed, 342 insertions, 128 deletions
diff --git a/docs/lab/index.html b/docs/lab/index.html
index 438c3e513..2510ed985 100644
--- a/docs/lab/index.html
+++ b/docs/lab/index.html
@@ -85,6 +85,17 @@ FFFFFF 000000 FF00 4296DE
3200 9000 198.3 5300
-0 -1 -2 -3 -4 -5 -6 -7 -8 -9 +0 +1 +2 +3 +4 +5 +6 +7 +8 +9
+000000000000|
+111111111111|
+222222222222|
+333333333333|
+444444444444|
+555555555555|
+666666666666|
+777777777777|
+888888888888|
+999999999999|
+
00102030405060708090
10112131415161718191
20212232425262728292
diff --git a/misc/gen-tnum.py b/misc/gen-tnum.py
new file mode 100755
index 000000000..627a38354
--- /dev/null
+++ b/misc/gen-tnum.py
@@ -0,0 +1,75 @@
+#!/usr/bin/env python
+# encoding: utf8
+from __future__ import print_function
+import os, sys
+from argparse import ArgumentParser
+from robofab.objects.objectsRF import OpenFont
+from math import ceil, floor
+
+dryRun = False
+numNames = [
+ 'zero','one','two','three','four','five','six','seven','eight','nine'
+]
+
+
+def main():
+ argparser = ArgumentParser(
+ description='Generate tabular number glyphs from regular number glyphs')
+
+ argparser.add_argument(
+ '-dry', dest='dryRun', action='store_const', const=True, default=False,
+ help='Do not modify anything, but instead just print what would happen.')
+
+ argparser.add_argument(
+ 'fontPaths', metavar='<ufofile>', type=str, nargs='+', help='UFO fonts')
+
+ args = argparser.parse_args()
+ dryRun = args.dryRun
+
+ # Strip trailing slashes from font paths and iterate
+ for fontPath in [s.rstrip('/ ') for s in args.fontPaths]:
+ fontName = os.path.basename(fontPath)
+ font = OpenFont(fontPath)
+
+ # Find widest glyph
+ width = 0
+ for name in numNames:
+ g = font[name]
+ width = max(width, g.width)
+
+ print('[%s] tnums width:' % fontName, width)
+
+ # Create tnum glyphs
+ for name in numNames:
+ g = font[name]
+
+ tnum = font.newGlyph(name + '.tnum')
+ tnum.width = width
+ print('[%s] gen' % fontName, tnum.name)
+
+ # calculate component x-offset
+ xoffs = 0
+ if g.width != width:
+ # center shape, ignoring existing margins
+ # xMin, yMin, xMax, yMax = g.box
+ # graphicWidth = xMax - xMin
+ # leftMargin = round((width - graphicWidth) / 2)
+ # xoffs = leftMargin - g.leftMargin
+
+ # adjust margins
+ widthDelta = width - g.width
+ leftMargin = g.leftMargin + int(floor(widthDelta / 2))
+ rightMargin = g.rightMargin + int(ceil(widthDelta / 2))
+ xoffs = leftMargin - g.leftMargin
+
+ tnum.appendComponent(name, (xoffs, 0))
+
+ if dryRun:
+ print('[%s] save [dry run]' % fontName)
+ else:
+ print('[%s] save' % fontName)
+ font.save()
+
+
+if __name__ == '__main__':
+ main()
diff --git a/src/Interface-Bold.ufo/glyphs/DZcaron_.glif b/src/Interface-Bold.ufo/glyphs/DZcaron_.glif
index e2e8b6c5d..bec6c67e4 100644
--- a/src/Interface-Bold.ufo/glyphs/DZcaron_.glif
+++ b/src/Interface-Bold.ufo/glyphs/DZcaron_.glif
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<glyph name="Dzcaron" format="1">
+<glyph name="Dzcaron_" format="1">
<advance width="3328"/>
<unicode hex="01C5"/>
<outline>
diff --git a/src/Interface-Bold.ufo/glyphs/contents.plist b/src/Interface-Bold.ufo/glyphs/contents.plist
index 926fb0533..6732b4f47 100644
--- a/src/Interface-Bold.ufo/glyphs/contents.plist
+++ b/src/Interface-Bold.ufo/glyphs/contents.plist
@@ -36,8 +36,6 @@
<string>D_.glif</string>
<key>D.cn</key>
<string>D_.cn.glif</string>
- <key>DZcaron</key>
- <string>DZcaron_.glif</string>
<key>Dbar1</key>
<string>Dbar1_.glif</string>
<key>Delta</key>
@@ -48,7 +46,7 @@
<string>Digamma_.glif</string>
<key>Dtopbar</key>
<string>Dtopbar_.glif</string>
- <key>Dzcaron</key>
+ <key>Dzcaron_</key>
<string>Dzcaron_.glif</string>
<key>Dzeabkhasiancyrillic</key>
<string>Dzeabkhasiancyrillic_.glif</string>
@@ -754,6 +752,8 @@
<string>eight.frac.glif</string>
<key>eight.sup</key>
<string>eight.sup.glif</string>
+ <key>eight.tnum</key>
+ <string>eight.tnum.glif</string>
<key>eightroman</key>
<string>eightroman.glif</string>
<key>eightsub</key>
@@ -874,6 +874,8 @@
<string>five.frac.glif</string>
<key>five.sup</key>
<string>five.sup.glif</string>
+ <key>five.tnum</key>
+ <string>five.tnum.glif</string>
<key>fiveeighths</key>
<string>fiveeighths.glif</string>
<key>fiveroman</key>
@@ -890,6 +892,8 @@
<string>four.frac.glif</string>
<key>four.sup</key>
<string>four.sup.glif</string>
+ <key>four.tnum</key>
+ <string>four.tnum.glif</string>
<key>fourroman</key>
<string>fourroman.glif</string>
<key>foursub</key>
@@ -1204,6 +1208,8 @@
<string>nine.frac.glif</string>
<key>nine.sup</key>
<string>nine.sup.glif</string>
+ <key>nine.tnum</key>
+ <string>nine.tnum.glif</string>
<key>nineinferior</key>
<string>nineinferior.glif</string>
<key>nineroman</key>
@@ -1258,6 +1264,8 @@
<string>one.glif</string>
<key>one.sup</key>
<string>one.sup.glif</string>
+ <key>one.tnum</key>
+ <string>one.tnum.glif</string>
<key>onedotleader</key>
<string>onedotleader.glif</string>
<key>oneeighth</key>
@@ -1550,6 +1558,8 @@
<string>seven.frac.glif</string>
<key>seven.sup</key>
<string>seven.sup.glif</string>
+ <key>seven.tnum</key>
+ <string>seven.tnum.glif</string>
<key>seveneighths</key>
<string>seveneighths.glif</string>
<key>sevenroman</key>
@@ -1574,6 +1584,8 @@
<string>six.frac.glif</string>
<key>six.sup</key>
<string>six.sup.glif</string>
+ <key>six.tnum</key>
+ <string>six.tnum.glif</string>
<key>sixinferior</key>
<string>sixinferior.glif</string>
<key>sixroman</key>
@@ -1658,6 +1670,8 @@
<string>three.glif</string>
<key>three.sup</key>
<string>three.sup.glif</string>
+ <key>three.tnum</key>
+ <string>three.tnum.glif</string>
<key>threeeighths</key>
<string>threeeighths.glif</string>
<key>threequarters</key>
@@ -1748,6 +1762,8 @@
<string>two.glif</string>
<key>two.sup</key>
<string>two.sup.glif</string>
+ <key>two.tnum</key>
+ <string>two.tnum.glif</string>
<key>twodotleader</key>
<string>twodotleader.glif</string>
<key>tworoman</key>
@@ -4332,6 +4348,8 @@
<string>zero.frac.glif</string>
<key>zero.sup</key>
<string>zero.sup.glif</string>
+ <key>zero.tnum</key>
+ <string>zero.tnum.glif</string>
<key>zerosub</key>
<string>zerosub.glif</string>
<key>zerosuperior</key>
diff --git a/src/Interface-Bold.ufo/glyphs/eight.tnum.glif b/src/Interface-Bold.ufo/glyphs/eight.tnum.glif
new file mode 100644
index 000000000..4681c80af
--- /dev/null
+++ b/src/Interface-Bold.ufo/glyphs/eight.tnum.glif
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="eight.tnum" format="1">
+ <advance width="1792"/>
+ <outline>
+ <component base="eight"/>
+ </outline>
+</glyph>
diff --git a/src/Interface-Bold.ufo/glyphs/five.tnum.glif b/src/Interface-Bold.ufo/glyphs/five.tnum.glif
new file mode 100644
index 000000000..ed8c46247
--- /dev/null
+++ b/src/Interface-Bold.ufo/glyphs/five.tnum.glif
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="five.tnum" format="1">
+ <advance width="1792"/>
+ <outline>
+ <component base="five" xOffset="64"/>
+ </outline>
+</glyph>
diff --git a/src/Interface-Bold.ufo/glyphs/four.glif b/src/Interface-Bold.ufo/glyphs/four.glif
index c10858821..b588e51b9 100644
--- a/src/Interface-Bold.ufo/glyphs/four.glif
+++ b/src/Interface-Bold.ufo/glyphs/four.glif
@@ -5,18 +5,18 @@
<outline>
<contour>
<point x="1664" y="784" type="line"/>
- <point x="512" y="784" type="line"/>
- <point x="868" y="1352" type="line"/>
- <point x="1248" y="2004" type="line"/>
- <point x="896" y="2004" type="line"/>
+ <point x="544" y="784" type="line"/>
+ <point x="900" y="1352" type="line"/>
+ <point x="1280" y="2004" type="line"/>
+ <point x="900" y="2004" type="line"/>
<point x="84" y="708" type="line"/>
<point x="84" y="400" type="line"/>
<point x="1664" y="400" type="line"/>
</contour>
<contour>
<point x="1360" y="2004" type="line"/>
- <point x="896" y="2004" type="line"/>
- <point x="896" y="0" type="line"/>
+ <point x="948" y="2004" type="line"/>
+ <point x="948" y="0" type="line"/>
<point x="1360" y="0" type="line"/>
</contour>
</outline>
diff --git a/src/Interface-Bold.ufo/glyphs/four.tnum.glif b/src/Interface-Bold.ufo/glyphs/four.tnum.glif
new file mode 100644
index 000000000..121fea889
--- /dev/null
+++ b/src/Interface-Bold.ufo/glyphs/four.tnum.glif
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="four.tnum" format="1">
+ <advance width="1792"/>
+ <outline>
+ <component base="four"/>
+ </outline>
+</glyph>
diff --git a/src/Interface-Bold.ufo/glyphs/nine.tnum.glif b/src/Interface-Bold.ufo/glyphs/nine.tnum.glif
new file mode 100644
index 000000000..c279ce6ea
--- /dev/null
+++ b/src/Interface-Bold.ufo/glyphs/nine.tnum.glif
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="nine.tnum" format="1">
+ <advance width="1792"/>
+ <outline>
+ <component base="nine"/>
+ </outline>
+</glyph>
diff --git a/src/Interface-Bold.ufo/glyphs/one.tnum.glif b/src/Interface-Bold.ufo/glyphs/one.tnum.glif
new file mode 100644
index 000000000..9251e9faf
--- /dev/null
+++ b/src/Interface-Bold.ufo/glyphs/one.tnum.glif
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="one.tnum" format="1">
+ <advance width="1792"/>
+ <outline>
+ <component base="one" xOffset="-4"/>
+ </outline>
+</glyph>
diff --git a/src/Interface-Bold.ufo/glyphs/seven.tnum.glif b/src/Interface-Bold.ufo/glyphs/seven.tnum.glif
new file mode 100644
index 000000000..46555212e
--- /dev/null
+++ b/src/Interface-Bold.ufo/glyphs/seven.tnum.glif
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="seven.tnum" format="1">
+ <advance width="1792"/>
+ <outline>
+ <component base="seven" xOffset="64"/>
+ </outline>
+</glyph>
diff --git a/src/Interface-Bold.ufo/glyphs/six.tnum.glif b/src/Interface-Bold.ufo/glyphs/six.tnum.glif
new file mode 100644
index 000000000..3bd2e56cc
--- /dev/null
+++ b/src/Interface-Bold.ufo/glyphs/six.tnum.glif
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="six.tnum" format="1">
+ <advance width="1792"/>
+ <outline>
+ <component base="six" xOffset="64.0"/>
+ </outline>
+</glyph>
diff --git a/src/Interface-Bold.ufo/glyphs/three.tnum.glif b/src/Interface-Bold.ufo/glyphs/three.tnum.glif
new file mode 100644
index 000000000..cb9e38372
--- /dev/null
+++ b/src/Interface-Bold.ufo/glyphs/three.tnum.glif
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="three.tnum" format="1">
+ <advance width="1792"/>
+ <outline>
+ <component base="three" xOffset="64"/>
+ </outline>
+</glyph>
diff --git a/src/Interface-Bold.ufo/glyphs/two.tnum.glif b/src/Interface-Bold.ufo/glyphs/two.tnum.glif
new file mode 100644
index 000000000..07b57e4d4
--- /dev/null
+++ b/src/Interface-Bold.ufo/glyphs/two.tnum.glif
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="two.tnum" format="1">
+ <advance width="1792"/>
+ <outline>
+ <component base="two" xOffset="64"/>
+ </outline>
+</glyph>
diff --git a/src/Interface-Bold.ufo/glyphs/zero.tnum.glif b/src/Interface-Bold.ufo/glyphs/zero.tnum.glif
new file mode 100644
index 000000000..de2571e49
--- /dev/null
+++ b/src/Interface-Bold.ufo/glyphs/zero.tnum.glif
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="zero.tnum" format="1">
+ <advance width="1792"/>
+ <outline>
+ <component base="zero" xOffset="64"/>
+ </outline>
+</glyph>
diff --git a/src/Interface-Bold.ufo/groups.plist b/src/Interface-Bold.ufo/groups.plist
index 3117c4f12..7590f10a9 100644
--- a/src/Interface-Bold.ufo/groups.plist
+++ b/src/Interface-Bold.ufo/groups.plist
@@ -608,7 +608,7 @@
</array>
<key>@KERN_LEFT_u01C5</key>
<array>
- <string>Dzcaron</string>
+ <string>Dzcaron_</string>
<string>dzcaron</string>
<string>z</string>
<string>zacute</string>
@@ -687,7 +687,7 @@
<string>F</string>
<string>N</string>
<string>R</string>
- <string>Dzcaron</string>
+ <string>Dzcaron_</string>
<string>Itildebelow</string>
<string>E</string>
<string>Thorn</string>
diff --git a/src/Interface-Bold.ufo/lib.plist b/src/Interface-Bold.ufo/lib.plist
index 3c8188345..56ceef0c8 100644
--- a/src/Interface-Bold.ufo/lib.plist
+++ b/src/Interface-Bold.ufo/lib.plist
@@ -444,7 +444,7 @@
<string>dzeabkhasiancyrillic</string>
<string>izhitsacyrillic</string>
<string>dz</string>
- <string>Dzcaron</string>
+ <string>Dzcaron_</string>
<string>dzcaron</string>
<string>germandbls</string>
<string>dotlessi</string>
@@ -487,6 +487,16 @@
<string>seven</string>
<string>eight</string>
<string>nine</string>
+ <string>zero.tnum</string>
+ <string>one.tnum</string>
+ <string>two.tnum</string>
+ <string>three.tnum</string>
+ <string>four.tnum</string>
+ <string>five.tnum</string>
+ <string>six.tnum</string>
+ <string>seven.tnum</string>
+ <string>eight.tnum</string>
+ <string>nine.tnum</string>
<string>ampersand</string>
<string>exclam</string>
<string>exclamdown</string>
@@ -1311,7 +1321,6 @@
<string>uni02E8_uni02E7_uni02E9</string>
<string>uni02E8_uni02E7_uni02E8</string>
<string>shindagesh</string>
- <string>N.unic</string>
<string>uni034B</string>
<string>uni034C</string>
<string>uni034A</string>
@@ -1354,12 +1363,10 @@
<string>Fturn</string>
<string>uni023F</string>
<string>p.cn</string>
- <string>f_f</string>
<string>uni023E</string>
<string>uni023B</string>
<string>uni023C</string>
<string>uni023A</string>
- <string>f_l</string>
<string>uniA685</string>
<string>uniA686</string>
<string>uniA687</string>
@@ -1384,7 +1391,6 @@
<string>breveacutecomb</string>
<string>uni2C69</string>
<string>uni2C66</string>
- <string>U.unic</string>
<string>mhook</string>
<string>uni2C67</string>
<string>uni0500</string>
@@ -1400,7 +1406,6 @@
<string>rturn</string>
<string>referencemark</string>
<string>Ghook</string>
- <string>A.unic</string>
<string>overscorenosp</string>
<string>breveinvsubnosp_uni1ABD</string>
<string>commaaboverightcomb</string>
@@ -1653,7 +1658,6 @@
<string>uniE001</string>
<string>uniAB49</string>
<string>Nhook</string>
- <string>fi</string>
<string>tildemacroncomb.lc</string>
<string>response</string>
<string>iota1</string>
@@ -1954,7 +1958,6 @@
<string>uniA76B</string>
<string>eshshortrev</string>
<string>b.cn</string>
- <string>M.unic</string>
<string>uni1D7C</string>
<string>uni1D7B</string>
<string>uni1D7A</string>
@@ -2048,7 +2051,6 @@
<string>iotasubnosp</string>
<string>dieresisgravecomb</string>
<string>tildemacroncomb</string>
- <string>E.unic</string>
<string>uni0221</string>
<string>gamma1</string>
<string>uniA7AB</string>
@@ -2169,9 +2171,7 @@
<string>elevenroman</string>
<string>lambdabar</string>
<string>uniA677</string>
- <string>f_f_i</string>
<string>uniA671</string>
- <string>f_f_l</string>
<string>uniA767.cn</string>
<string>rfishhook</string>
<string>uniA7A7</string>
@@ -2395,7 +2395,6 @@
<string>uniE003</string>
<string>placeofinterestsign</string>
<string>.notdef</string>
- <string>Dzcaron</string>
</array>
<key>type</key>
<string>glyphList</string>
@@ -2637,7 +2636,7 @@
<string>dzeabkhasiancyrillic</string>
<string>izhitsacyrillic</string>
<string>dz</string>
- <string>Dzcaron</string>
+ <string>Dzcaron_</string>
<string>dzcaron</string>
<string>germandbls</string>
<string>dotlessi</string>
@@ -2680,6 +2679,16 @@
<string>seven</string>
<string>eight</string>
<string>nine</string>
+ <string>zero.tnum</string>
+ <string>one.tnum</string>
+ <string>two.tnum</string>
+ <string>three.tnum</string>
+ <string>four.tnum</string>
+ <string>five.tnum</string>
+ <string>six.tnum</string>
+ <string>seven.tnum</string>
+ <string>eight.tnum</string>
+ <string>nine.tnum</string>
<string>ampersand</string>
<string>exclam</string>
<string>exclamdown</string>
@@ -3504,7 +3513,6 @@
<string>uni02E8_uni02E7_uni02E9</string>
<string>uni02E8_uni02E7_uni02E8</string>
<string>shindagesh</string>
- <string>N.unic</string>
<string>uni034B</string>
<string>uni034C</string>
<string>uni034A</string>
@@ -3547,12 +3555,10 @@
<string>Fturn</string>
<string>uni023F</string>
<string>p.cn</string>
- <string>f_f</string>
<string>uni023E</string>
<string>uni023B</string>
<string>uni023C</string>
<string>uni023A</string>
- <string>f_l</string>
<string>uniA685</string>
<string>uniA686</string>
<string>uniA687</string>
@@ -3577,7 +3583,6 @@
<string>breveacutecomb</string>
<string>uni2C69</string>
<string>uni2C66</string>
- <string>U.unic</string>
<string>mhook</string>
<string>uni2C67</string>
<string>uni0500</string>
@@ -3593,7 +3598,6 @@
<string>rturn</string>
<string>referencemark</string>
<string>Ghook</string>
- <string>A.unic</string>
<string>overscorenosp</string>
<string>breveinvsubnosp_uni1ABD</string>
<string>commaaboverightcomb</string>
@@ -3846,7 +3850,6 @@
<string>uniE001</string>
<string>uniAB49</string>
<string>Nhook</string>
- <string>fi</string>
<string>tildemacroncomb.lc</string>
<string>response</string>
<string>iota1</string>
@@ -4147,7 +4150,6 @@
<string>uniA76B</string>
<string>eshshortrev</string>
<string>b.cn</string>
- <string>M.unic</string>
<string>uni1D7C</string>
<string>uni1D7B</string>
<string>uni1D7A</string>
@@ -4241,7 +4243,6 @@
<string>iotasubnosp</string>
<string>dieresisgravecomb</string>
<string>tildemacroncomb</string>
- <string>E.unic</string>
<string>uni0221</string>
<string>gamma1</string>
<string>uniA7AB</string>
@@ -4362,9 +4363,7 @@
<string>elevenroman</string>
<string>lambdabar</string>
<string>uniA677</string>
- <string>f_f_i</string>
<string>uniA671</string>
- <string>f_f_l</string>
<string>uniA767.cn</string>
<string>rfishhook</string>
<string>uniA7A7</string>
@@ -4588,7 +4587,6 @@
<string>uniE003</string>
<string>placeofinterestsign</string>
<string>.notdef</string>
- <string>Dzcaron</string>
</array>
</dict>
</plist>
diff --git a/src/Interface-Regular.ufo/features.fea b/src/Interface-Regular.ufo/features.fea
index 6a0c1db42..5a40593cc 100644
--- a/src/Interface-Regular.ufo/features.fea
+++ b/src/Interface-Regular.ufo/features.fea
@@ -12,6 +12,10 @@ languagesystem grek dflt;
# classes
+@PNUM = [zero one two three four five six seven eight nine];
+
+@TNUM = [zero.tnum one.tnum two.tnum three.tnum four.tnum five.tnum six.tnum seven.tnum eight.tnum nine.tnum];
+
@UC_ROMAN = [ A - Z AE AEacute Aacute Abreve Acircumflex Adieresis Agrave Alpha Alphatonos Amacron Aogonek Aogonek.NAV Aring Aringacute Atilde Beta Cacute Ccaron Ccedilla Ccircumflex Dcaron Dcroat Delta Eacute Ebreve Ecaron Ecircumflex Edieresis Edotaccent Egrave Emacron Eng Eogonek Eogonek.NAV Epsilon Epsilontonos Eta Etatonos Eth Gamma Gbreve Gcircumflex Gcommaaccent Germandbls Hbar Hcircumflex IJ Iacute Ibreve Icircumflex Idieresis Igrave Imacron Iogonek Iota Iotadieresis Iotatonos Itilde Jcircumflex Kappa Kcommaaccent Lacute Lambda Lcaron Lcommaaccent Ldot Lslash Nacute Ncaron Ncommaaccent Ntilde Nu OE Oacute Obreve Ocircumflex Odieresis Ograve Ohungarumlaut Omacron Omega Omegatonos Omicron Omicrontonos Oogonek Oogonek.NAV Oslash Oslashacute Otilde Phi Pi Psi Racute Rcaron Rcommaaccent Rho Sacute Scaron Scedilla Scircumflex Sigma Tau Tbar Tcaron Theta Thorn Uacute Ubreve Ucircumflex Udieresis Ugrave Uhungarumlaut Umacron Uogonek Upsilon Upsilondieresis Upsilontonos Uring Utilde Wacute Wcircumflex Wdieresis Wgrave Xi Yacute Ycircumflex Ydieresis Ygrave Zacute Zcaron Zdotaccent Zeta ampersand Cdotaccent Gdotaccent Tcommaaccent Scommaaccent uni021A uni037F ];
@LC_ROMAN = [ a - z ae aeacute aacute abreve acircumflex adieresis agrave alpha alphatonos amacron aogonek aogonek.NAV aring aringacute atilde beta cacute ccaron ccedilla ccircumflex dcaron dcroat delta eacute ebreve ecaron ecircumflex edieresis edotaccent egrave emacron eng eogonek eogonek.NAV epsilon epsilontonos eta etatonos eth gamma gbreve gcircumflex gcommaaccent germandbls hbar hcircumflex ij iacute ibreve icircumflex idieresis igrave imacron iogonek iota iotadieresis iotatonos itilde jcircumflex kappa kcommaaccent lacute lambda lcaron lcommaaccent ldot lslash nacute ncaron ncommaaccent ntilde nu oe oacute obreve ocircumflex odieresis ograve ohungarumlaut omacron omega omegatonos omicron omicrontonos oogonek oogonek.NAV oslash oslashacute otilde phi pi psi racute rcaron rcommaaccent rho sacute scaron scedilla scircumflex sigma tau tbar tcaron theta thorn uacute ubreve ucircumflex udieresis ugrave uhungarumlaut umacron uogonek upsilon upsilondieresis upsilontonos uring utilde wacute wcircumflex wdieresis wgrave xi yacute ycircumflex ydieresis ygrave zacute zcaron zdotaccent zeta ampersand cdotaccent gdotaccent tcommaaccent scommaaccent uni021B yotgreek ];
@@ -28,76 +32,6 @@ languagesystem grek dflt;
@ccmp_acc = [ gravecomb acutecomb tildecomb brevetildecomb brevehookcomb breveacutecomb circumflextildecomb circumflexhookcomb circumflexgravecomb circumflexacutecomb brevegravecomb macroncomb commaaboverightcomb dieresismacroncomb dieresisacutecomb dieresiscaroncomb dieresisgravecomb dotmacroncomb tildeacutecomb macrongravecomb macronacutecomb macrondieresiscomb acutedotcomb carondotcomb tildemacroncomb tildedieresiscomb circumflexnosp overscorenosp brevenosp dotnosp dieresisnosp hook ringnosp acutedblnosp caroncmb linevertnosp linevertdblnosp dblgravecmb candrabindunosp breveinvnosp commaturnsupnosp commaabovecmb commasuprevnosp commaaboverightcmb anglesupnosp hornnosp xsupnosp tildevertsupnosp overscoredblnosp graveleftnosp acuterightnosp perispomenigreekcmb koroniscmb diaeresistonosnosp uni0346 uni034A uni034B uni034C uni0350 uni0351 uni0352 uni0357 uni0358 uni035B tildecomb_uni1ABB tildecomb_uni1ABC macroncomb_uni1ABB dieresisnosp_uni1ABB uni030C_uni1ABB uni1AB0 uni1AB1 uni1AB2 uni1AB3 uni1AB4 uni1DC0 uni1DC1 uni1DC3 uni1DC4 uni1DC5 uni1DC6 uni1DC7 uni1DC8 uni1DC9 uni1DCB uni1DCC uni1DCD uni1DCE uni1DD1 uni1DD2 uni1DD3 uni1DD4 uni1DD5 uni1DD6 uni1DD7 uni1DD8 uni1DD9 uni1DDA uni1DDB uni1DDC uni1DDD uni1DDE uni1DDF uni1DE0 uni1DE1 uni1DE2 uni1DE3 uni1DE4 uni1DE5 uni1DE6 uni1DE7 uni1DE8 uni1DE9 uni1DEA uni1DEB uni1DEC uni1DED uni1DEE uni1DEF uni1DF0 uni1DF1 uni1DF2 uni1DF3 uni1DF4 uni1DF5 uni1DFE uni0363 uni0364 uni0365 uni0366 uni0367 uni0368 uni0369 uni036A uni036B uni036C uni036D uni036E uni036F titlocyrilliccmb palatalizationcyrilliccmb dasiapneumatacyrilliccmb psilipneumatacyrilliccmb uni0487 uni20F0 uniA66F uniA674 uniA675 uniA676 uniA677 uniA678 uniA679 uniA67A uniA67B uniA67C uniA67D uniA69F uni2DE0 uni2DE1 uni2DE2 uni2DE3 uni2DE4 uni2DE5 uni2DE6 uni2DE7 uni2DE8 uni2DE9 uni2DEA uni2DEB uni2DEC uni2DED uni2DEE uni2DEF uni2DF0 uni2DF1 uni2DF2 uni2DF3 uni2DF4 uni2DF5 uni2DF6 uni2DF7 uni2DF8 uni2DF9 uni2DFA uni2DFB uni2DFC uni2DFD uni2DFE uni2DFF uni1ABB uni1ABC uni20DC uniFE20 uniFE21 uniFE22 uniFE23 uniFE24 uniFE25 uniFE26 ];
-# kerning classes
-
-@_A_L = [ A Aacute Abrevedotbelow Abreve Abrevecyrillic Abreveacute Abrevegrave Abrevehookabove Abrevetilde Acircumflexdotbelow Acircumflex Acircumflexacute Acircumflexgrave Acircumflexhookabove Acircumflextilde Adieresis Adieresiscyrillic Adotbelow Agrave Ahookabove Amacron Aogonek Aring Aringacute Atilde Alphatonos Aringbelow afii10017 Lambda Alpha Delta Yuslittlecyrillic uniA732 Adieresismacron Adotmacron Adblgrave Ainvertedbreve uni1F08 uni1F09 uni1F0A uni1F0B uni1F0C uni1F0D uni1F0E uni1F0F uni1F88 uni1F89 uni1F8A uni1F8B uni1F8C uni1F8D uni1F8E uni1F8F uni1FB8 uni1FB9 uni1FBA uni1FBB uni1FBC uniA658 Acaron uniA656 uni0226 uni0245 ];
-@_A_R = [ A Aacute Abrevedotbelow Abreve Abrevecyrillic Abreveacute Abrevegrave Abrevehookabove Abrevetilde Acircumflexdotbelow Acircumflex Acircumflexacute Acircumflexgrave Acircumflexhookabove Acircumflextilde Adieresis Adieresiscyrillic Adotbelow Agrave Ahookabove Amacron Aogonek Aring Aringacute Atilde Alphatonos Aringbelow afii10017 Lambda Alpha Delta Yuslittlecyrillic uniA732 uniA734 uniA738 uniA73A uniA73C Adieresismacron Adotmacron Adblgrave Ainvertedbreve uni1FB8 uni1FB9 uni1FBC uniA658 Acaron uni0226 uni0245 ];
-@_B_L = [ B Beta afii10019 uniA796 Bdotaccent Bdotbelow Blinebelow uni0243 ];
-@_H_R = [ H B D E F I K L M N P R Beta afii10019 Eacute Ebreve Iebrevecyrillic Ecaron Ecircumflexdotbelow Ecircumflex Ecircumflexacute Ecircumflexgrave Ecircumflexhookabove Ecircumflextilde Edieresis afii10023 Edotaccent Edotbelow Egrave Thorn uni0400 Ehookabove Emacron Eogonek Etilde Epsilontonos Epsilon Lacute Lcommaaccent Lcaron Ldot Kappa afii10061 Kcommaaccent Kadescendercyrillic Iota afii10055 palochkacyrillic uni04CF Eta afii10031 Iacute Ibreve Icircumflex Idieresis Iotadieresis afii10056 Idotaccent Idotbelow Igrave Ihookabove Imacron Iogonek Itilde Iotatonos Hcircumflex uni04C9 Endescendercyrillic Etatonos Macute uni04CD Mu afii10030 Nacute Ncaron Ncommaaccent Ntilde Nu Rho afii10034 Gamma afii10052 Ghestrokecyrillic uni04F6 afii10020 uni0516 uni0522 uni2C6E uni2C64 afii10045 afii10046 afii10040 afii10042 afii10043 uni2C69 uniA652 uniA653 uniA656 uniA68E uniA696 uniA782 uniA784 Iota1 LJ Lj NJ Nj Icaron Kcaron DZ Dz uni01F8 Edblgrave Einvertedbreve Idblgrave Iinvertedbreve Rdblgrave Rinvertedbreve uni021E uni0228 uni03F7 uni03FA uni0524 uni0526 Bdotaccent Bdotbelow Blinebelow Ddotbelow Dlinebelow Dcedilla Dcircumflexbelow Emacrongrave Emacronacute Ecircumflexbelow Etildebelow Ecedillabreve Fdotaccent Hdotaccent Hdotbelow Hdieresis Hbrevebelow Itildebelow Idieresisacute Kacute Kdotbelow Klinebelow Ldotbelow Ldotbelowmacron Llinebelow Lcircumflexbelow Mdotaccent Mdotbelow Ndotaccent Ndotbelow Nlinebelow Ncircumflexbelow Pacute Pdotaccent Rdotaccent Rdotbelow Rdotbelowmacron Rlinebelow uni1FCC uni2C67 uniA790 Btopbar Dzcaron uniA726 uniA666 uni0376 ];
-@_H_L = [ H Hcircumflex uni04C9 Endescendercyrillic Etatonos Eta afii10031 Iacute Ibreve Icircumflex Idieresis Iotadieresis afii10056 Idotaccent Idotbelow Igrave Ihookabove Imacron Iogonek Itilde Iotatonos I Iota afii10055 palochkacyrillic uni04CF Macute uni04CD M Mu afii10030 Nacute Ncaron Ncommaaccent Ntilde N Nu afii10145 afii10026 afii10029 afii10040 afii10042 uni0528 uni2C6E afii10045 afii10043 afii10041 uniA660 Iota1 Icaron uni01F8 Idblgrave Iinvertedbreve uni021E uni03FA uni0524 Hdotaccent Hdotbelow Hdieresis Hbrevebelow Itildebelow Idieresisacute Mdotaccent Mdotbelow Ndotaccent Ndotbelow Nlinebelow Ncircumflexbelow uni1F28 uni1F29 uni1F2A uni1F2B uni1F2C uni1F2D uni1F2E uni1F2F uni1F98 uni1F99 uni1F9A uni1F9B uni1F9C uni1F9D uni1F9E uni1F9F uni1FCA uni1FCB uni1FCC uni2C67 uniA790 Dtopbar Eturn mcapturn Nhook OI uniA7AA uni0376 ];
-@_O_R = [ O C Cacute Ccaron Ccedilla Ccircumflex Esdescendercyrillic Cdotaccent afii10035 OE G Gbreve Gcircumflex Gcommaaccent Gdotaccent Oacute Obreve Ocircumflexdotbelow Ocircumflex Ocircumflexacute Ocircumflexgrave Ocircumflexhookabove Ocircumflextilde Odieresis Odieresiscyrillic Odotbelow Ograve Ohookabove Ohungarumlaut Omacron Otilde Omicrontonos Omicron Q Theta afii10032 Ukcyrillic Ohorn Ohornacute Ohorndotbelow Ohorngrave Ohornhookabove Ohorntilde Oslash Oslashacute afii10053 Omegacyrillic afii10147 Obarredcyrillic Obarreddieresiscyrillic Omegaroundcyrillic Omegatitlocyrillic Otcyrillic Koppacyrillic Haabkhasiancyrillic uni050C Chook Ghook Obar uni024A OI uni03D8 Stigma uni03FE uni2C6D uniA64C uniA654 uniA668 uniA66A uniA66C uniA698 uniA69A uniA74C uniA74E uniA756 uniA758 uniA7AC Ocaron Oogonek Oogonekmacron Odblgrave Oinvertedbreve uni022A uni022C uni022E uni0230 uni051A Ccedillaacute Gmacron Otildeacute Otildedieresis Omacrongrave Omacronacute ];
-@_O_L = [ O D Dcaron Dcroat Eth Oacute Obreve Ocircumflexdotbelow Ocircumflex Ocircumflexacute Ocircumflexgrave Ocircumflexhookabove Ocircumflextilde uni1F4D Odieresis Odieresiscyrillic Odotbelow Ograve Ohookabove Ohungarumlaut Omacron Otilde Omicrontonos Omicron Theta afii10032 Oopen Dbar1 Dhook Schwa Obar uni03D8 uni03FD uni03FF Schwacyrillic uni2C70 uniA64C uniA668 uniA66A uniA66C uniA698 uniA69A uniA734 uniA73E uniA74E Ocaron Oogonek Oogonekmacron Odblgrave Oinvertedbreve uni022A uni022C uni022E uni0230 Ddotaccent Ddotbelow Dlinebelow Dcedilla Dcircumflexbelow Otildeacute Otildedieresis Omacrongrave Omacronacute uni1F48 uni1F49 uni1F4A uni1F4B uni1F4C uni1FF8 uni1FF9 ];
-@_C_L = [ C Cacute Ccaron Ccedilla Ccircumflex Esdescendercyrillic Cdotaccent afii10035 uni03FE uniA792 uni03F9 Ccedillaacute ];
-@_E_L = [ E Eacute Ebreve Iebrevecyrillic Ecaron Ecircumflexdotbelow Ecircumflex Ecircumflexacute Ecircumflexgrave Ecircumflexhookabove Ecircumflextilde Edieresis afii10023 Edotaccent Edotbelow Egrave uni0400 Ehookabove Emacron Eogonek Etilde Epsilontonos Epsilon afii10022 uni0518 Edblgrave Einvertedbreve uni0228 Emacrongrave Emacronacute Ecircumflexbelow Etildebelow Ecedillabreve uni1F18 uni1F19 uni1F1A uni1F1B uni1F1C uni1F1D uni1FC8 uni1FC9 ];
-@_T_L = [ T Tcaron Tcommaaccent uni021A Tbar Tedescendercyrillic Tau afii10036 Trthook uniA664 uniA666 uniA68C uniA690 Tdotaccent Tdotbelow Tlinebelow Tcircumflexbelow ];
-@_Gamma_L = [ Gamma afii10052 Ghestrokecyrillic uni04F6 afii10020 afii10050 ];
-@_uni0433_L = [ gecyrillic uni04FB gjecyrillic uni04F7 gheupturncyrillic uniA665 uniA667 uniA68D uniA691 ];
-@_T_R = [ T Tcommaaccent uni021A Tcaron afii10051 afii10060 afii10036 Kabashkircyrillic Tedescendercyrillic Tetsecyrillic Trthook uniA68C uniA690 Tdotaccent Tdotbelow Tlinebelow Tcircumflexbelow uniA68A ];
-@_J_R = [ J Jcircumflex afii10057 uni037F ];
-@_K_L = [ K afii10061 Kcommaaccent Kadescendercyrillic Kappa Kaverticalstrokecyrillic Kabashkircyrillic Khook uni03CF uni051E uni052A uni2C69 uniA740 uniA742 uniA744 Kacute Kdotbelow Klinebelow ];
-@_L_L = [ L Lacute Lcommaaccent Lcaron Ldot uni023D uni1EFA Ldotbelow Ldotbelowmacron Llinebelow Lcircumflexbelow ];
-@_P_L = [ P Rho afii10034 Phook uni2C63 uniA750 uniA752 uniA754 Pacute Pdotaccent uni1FEC ];
-@_S_L = [ S Sacute Scircumflex Scedilla Scaron Scommaaccent uni2C7E Sdotaccent Sdotbelow Sacutedotaccent Scarondotaccent Sdotbelowdotaccent ];
-@_S_R = [ S Sacute Scircumflex Scedilla Scaron Scommaaccent uni2C7E Sdotaccent Sdotbelow Sacutedotaccent Scarondotaccent Sdotbelowdotaccent ];
-@_U_L = [ U J Jcircumflex afii10057 Uacute Ubreve Ucircumflex Udieresis Udotbelow Ugrave Uhookabove Uhungarumlaut Umacron Uogonek Uring Utilde Ucaron Udieresismacron Udieresisacute Udieresiscaron Udieresisgrave Udieresisbelow Utildebelow Ucircumflexbelow Utildeacute Umacrondieresis uniA736 ];
-@_U_R = [ U Uacute Ubreve Ucircumflex Udieresis Udotbelow Ugrave Uhookabove Uhungarumlaut Umacron Uogonek Uring Utilde Ucaron Udieresismacron Udieresisacute Udieresiscaron Udieresisgrave Udieresisbelow Utildebelow Ucircumflexbelow Utildeacute Umacrondieresis ];
-@_V_L = [ V afii10148 Izhitsadblgravecyrillic Vtilde Vdotbelow uniA738 uniA73A uniA75E ];
-@_V_R = [ V afii10148 Izhitsadblgravecyrillic Vtilde Vdotbelow uniA75E ];
-@_X_L = [ X afii10039 uni04FC Hadescendercyrillic afii10024 Zhebrevecyrillic Zhedieresiscyrillic Zhedescendercyrillic uni0514 uni0516 Xdotaccent Xdieresis ];
-@_X_R = [ X afii10039 uni04FC Hadescendercyrillic afii10024 Zhebrevecyrillic Zhedieresiscyrillic Zhedescendercyrillic Xdotaccent Xdieresis ];
-@_Y_L = [ Y Yacute Ycircumflex Ustraightstrokecyrillic Upsilondieresis Ydieresis Ydotbelow Ygrave Yhookabove Ytilde Upsilontonos Upsilon Ustraightcyrillic uni024E Ydotaccent uni1FE8 uni1FE9 uni1FEA uni1FEB ];
-@_Y_R = [ Y Yacute Ycircumflex Ustraightstrokecyrillic Upsilondieresis Ydieresis Ydotbelow Ygrave Yhookabove Ytilde Upsilontonos Upsilon Ustraightcyrillic uni024E Ydotaccent uni1FE8 uni1FE9 ];
-@_W_L = [ W Wacute Wcircumflex Wdieresis Wgrave Wdotaccent Wdotbelow uni051C ];
-@_W_R = [ W Wacute Wcircumflex Wdieresis Wgrave Wdotaccent Wdotbelow uni2C72 uni051C ];
-@_Z_L = [ Z Zacute Zdotaccent Zcaron Zeta Zcircumflex Zdotbelow Zlinebelow uniA640 uniA642 uni2C6B DZ ];
-@_Z_R = [ Z Zacute Zdotaccent Zcaron Zeta Zcircumflex Zdotbelow Zlinebelow uniA640 uniA642 uni2C6B ];
-@_uni0423_L = [ afii10037 afii10062 Umacroncyrillic Udieresiscyrillic Uhungarumlautcyrillic ];
-@_uni0423_R = [ afii10037 afii10062 Umacroncyrillic Udieresiscyrillic Uhungarumlautcyrillic ];
-@_a_L = [ a aacute abreve acircumflex adieresis agrave amacron aogonek aring aringacute atilde afii10065 abrevecyrillic adieresiscyrillic aringbelow adotbelow ahookabove acircumflexacute acircumflexgrave acircumflexhookabove acircumflextilde acircumflexdotbelow abreveacute abrevegrave abrevehookabove abrevetilde abrevedotbelow uniA657 adieresismacron adotmacron adblgrave uni0227 acaron ainvertedbreve uni2C65 ];
-@_a_R = [ a aacute abreve acircumflex adieresis agrave amacron aogonek aring aringacute atilde afii10065 abrevecyrillic adieresiscyrillic aringbelow adotbelow ahookabove acircumflexacute acircumflexgrave acircumflexhookabove acircumflextilde acircumflexdotbelow abreveacute abrevegrave abrevehookabove abrevetilde abrevedotbelow uniA737 uniA739 uniA73B uniA73D adieresismacron adotmacron aemacron adblgrave uni0227 uniA733 uniA735 acaron ainvertedbreve arighthalfring uni2C65 ];
-@_c_L = [ c cacute ccaron ccedilla ccircumflex cdotaccent escyrillic esdescendercyrillic sigmalunatesymbolgreek ccedillaacute uni037C ];
-@_c_R = [ c ccedilla cacute ccircumflex cdotaccent ccaron esdescendercyrillic oe d dcaron uni0501 e egrave eacute ecircumflex edieresis schwacyrillic emacron ebreve edotaccent eogonek ecaron sigma1 iecyrillic iocyrillic uni0450 iebrevecyrillic schwadieresiscyrillic edotbelow ehookabove etilde ecircumflexacute ecircumflexgrave ecircumflexhookabove ecircumflextilde ecircumflexdotbelow g gcircumflex gbreve gdotaccent gcommaaccent q alpha alphatonos sigma efcyrillic escyrillic ecyrillic omegatitlocyrillic haabkhasiancyrillic uni0502 uni0503 obarredcyrillic ohorn ohornacute ohorngrave ohornhookabove ohorndotbelow ukcyrillic koppacyrillic uni050D chook stigma uni03F5 uni2C78 uniA794 edblgrave einvertedbreve sigmalunatesymbolgreek ccedillaacute ddotaccent ddotbelow dlinebelow dcedilla dcircumflexbelow emacrongrave emacronacute ecircumflexbelow etildebelow ecedillabreve gmacron uni1F00 uni1F01 uni1F02 uni1F03 uni1F04 uni1F05 uni1F06 uni1F07 uni1F80 uni1F81 uni1F82 uni1F83 uni1F84 uni1F85 uni1F86 uni1F87 uni1FB0 uni1FB1 uni1FB2 uni1FB3 uni1FB4 uni1FB6 uni1FB7 uniA771 uniAB36 uniA757 uniA759 dzcaron gbar uni0221 uni024B uni051B gcaron eturn dz uni037C ];
-@_b_L = [ b p ercyrillic rho thorn ereversedcyrillic uni04ED uni048F efcyrillic bbar btopbar tonesix uni0238 uni0239 rho1 uni03F6 uni03FC uniA751 uniA753 uniA755 uniA765 uniA767 uniA797 uni03F8 bdotaccent bdotbelow blinebelow pacute pdotaccent uni1FE4 uni1FE5 uni037B uni037D ];
-@_e_L = [ e egrave eacute ecircumflex edieresis schwacyrillic emacron ebreve edotaccent eogonek ecaron iecyrillic iocyrillic uni0450 iebrevecyrillic schwadieresiscyrillic edotbelow ehookabove etilde ecircumflexacute ecircumflexgrave ecircumflexhookabove ecircumflextilde ecircumflexdotbelow uni0519 aemacron emacrongrave emacronacute ecircumflexbelow etildebelow ecedillabreve ];
-@_l_R = [ l h k khook hcedilla uni2C6A uniA695 uniA743 kcaron uni021F uni0527 hdotaccent hdotbelow hdieresis hbrevebelow kacute kdotbelow klinebelow llinebelow lcircumflexbelow hlinebelow lj uni2C68 uniA727 ];
-@_n_R = [ n nacute shacyrillic tsecyrillic ercyrillic enghecyrillic endescendercyrillic imacroncyrillic kadescendercyrillic idieresiscyrillic uni04FB enhookcyrillic encyrillic pecyrillic kacyrillic emcyrillic ntilde kjecyrillic shchacyrillic njecyrillic uni045D etatonos gjecyrillic uni048B iicyrillic iishortcyrillic ncaron uni04CE yerudieresiscyrillic uni04CA gecyrillic napostrophe m macute p eta ncommaaccent iucyrillic uni04F7 softsigncyrillic uni0235 uni0377 uni0523 uni051F uniA667 uniA773 uniA774 uniAB3A uniAB3B uniAB3C uniAB51 nlegrightlong nj uni01F9 mdotaccent mdotbelow ndotaccent ndotbelow nlinebelow ncircumflexbelow uniA68F uniA657 uniA697 ];
-@_n_L = [ n napostrophe nacute h m macute ntilde eta ncommaaccent hcircumflex ncaron shhacyrillic etatonos uniA783 uni01F9 mdotaccent mdotbelow ndotaccent ndotbelow nlinebelow ncircumflexbelow hdotaccent hdotbelow hdieresis hbrevebelow uni2C68 uniA695 uniA727 uni1F20 uni1F21 uni1F22 uni1F23 uni1F24 uni1F25 uni1F26 uni1F27 uni1FC2 uni1FC3 uni1FC4 uni1FC6 uni1FC7 uni1F74 uni1F75 ];
-@_o_L = [ o ograve ocircumflex ocircumflexgrave ocircumflexacute ocircumflextilde ocircumflexhookabove obreve ocircumflexdotbelow odieresiscyrillic ohookabove odotbelow ocyrillic fitacyrillic otilde omicrontonos odieresis ohungarumlaut omicron ohorntilde omacron oacute obarreddieresiscyrillic uni03D9 uni2C7A uniA669 uniA66B uniA66D uniA699 uniA74F ocaron oogonek oogonekmacron odblgrave oinvertedbreve uni022B uni022D uni022F uni0231 obar otildeacute otildedieresis omacrongrave omacronacute uni1F40 uni1F41 uni1F42 uni1F43 uni1F44 uni1F45 uni1F78 uni1F79 ];
-@_o_R = [ o ograve ocircumflex ocircumflexgrave ocircumflexacute ocircumflextilde ocircumflexhookabove obreve ocircumflexdotbelow odieresiscyrillic ohookabove odotbelow ocyrillic fitacyrillic otilde omicrontonos odieresis ohungarumlaut omicron ohorntilde omacron oacute obarreddieresiscyrillic uni03D9 uni2C7A uniA655 uniA669 uniA66B uniA66D uniA699 uniA74D uniA74F ocaron oogonek oogonekmacron odblgrave oinvertedbreve uni022B uni022D uni022F uni0231 obar otildeacute otildedieresis omacrongrave omacronacute uni1F40 uni1F41 uni1F42 uni1F43 uni1F44 uni1F45 uni1F78 uni1F79 ];
-@_v_L = [ v ycircumflex gamma ustraightcyrillic izhitsacyrillic izhitsadblgravecyrillic umacroncyrillic ydieresis ucyrillic uhungarumlautcyrillic ydotbelow udieresiscyrillic ytilde yacute y yhookabove nu ygrave ushortcyrillic uni2C74 uniA739 uniA73B uniA73D uniA75F uni0233 vtilde vdotbelow ydotaccent yring ];
-@_v_R = [ v ycircumflex gamma ustraightcyrillic izhitsacyrillic izhitsadblgravecyrillic umacroncyrillic ydieresis ucyrillic uhungarumlautcyrillic ydotbelow udieresiscyrillic ytilde yacute y yhookabove nu ygrave ushortcyrillic uni2C71 uni0233 vtilde vdotbelow ydotaccent yring ];
-@_r_L = [ r racute rcommaaccent rcaron rdblgrave rinvertedbreve rdotaccent rdotbelow rdotbelowmacron rlinebelow uni024D ];
-@_s_L = [ s sacute scircumflex scedilla scaron scommaaccent dzecyrillic uni023F sdotaccent sdotbelow sacutedotaccent scarondotaccent sdotbelowdotaccent ];
-@_s_R = [ s sacute scircumflex scedilla scaron scommaaccent dzecyrillic uni023F st sdotaccent sdotbelow sacutedotaccent scarondotaccent sdotbelowdotaccent ];
-@_u_R = [ u ugrave uacute ucircumflex udieresis utilde umacron ubreve uring uhungarumlaut uogonek udotbelow uhookabove uhorn uhornacute uhorngrave uhornhookabove uhorntilde uhorndotbelow upsilon upsilondieresistonos upsilondieresis upsilontonos ucaron udieresismacron udieresisacute udieresiscaron udieresisgrave udblgrave uinvertedbreve udieresisbelow utildebelow ucircumflexbelow utildeacute umacrondieresis uni1F50 uni1F51 uni1F52 uni1F53 uni1F54 uni1F55 uni1F56 uni1F57 uni1F7A uni1F7B uni1FE0 uni1FE1 uni1FE2 uni1FE3 ];
-@_u_L = [ u ugrave uacute ucircumflex udieresis utilde umacron ubreve uring uhungarumlaut uogonek udotbelow uhookabove uniA737 ucaron udieresismacron udieresisacute udieresiscaron udieresisgrave udblgrave uinvertedbreve udieresisbelow utildebelow ucircumflexbelow utildeacute umacrondieresis ];
-@_x_L = [ x khacyrillic uni04FD hadescendercyrillic zhecyrillic zhebrevecyrillic zhedieresiscyrillic zhedescendercyrillic uni0515 uni0517 xdotaccent xdieresis ];
-@_x_R = [ x khacyrillic uni04FD hadescendercyrillic zhecyrillic zhebrevecyrillic zhedieresiscyrillic zhedescendercyrillic xdotaccent xdieresis ];
-@_z_L = [ z zacute zdotaccent zcaron Dzcaron dzcaron uni2C6C uniA641 uniA643 Dz dz zcircumflex zdotbelow zlinebelow zbar ];
-@_z_R = [ z zacute zdotaccent zcaron uni0240 uni2C6C uniA641 uniA643 zcircumflex zdotbelow zlinebelow zbar ];
-@_quote_L = [ quotesingle quotedbl second quotedblleft quotedblright quoteleft quoteright quotereversed apostrophemod minute ];
-@_quote_R = [ quotesingle quotedbl second quotedblleft quotedblright quoteleft quoteright quotereversed apostrophemod minute ];
-@_hyphen_L = [ hyphen emdash endash softhyphen horizontalbar ];
-@_hyphen_R = [ hyphen emdash endash softhyphen horizontalbar ];
-@_period_L = [ period comma ellipsis twodotleader quotedblbase quotesinglbase ];
-@_period_R = [ period comma ellipsis twodotleader quotedblbase quotesinglbase ];
-@_uni042C_L = [ afii10046 afii10058 afii10059 afii10044 afii10146 uniA64E uniA652 ];
-@_uni044C_L = [ softsigncyrillic hardsigncyrillic ljecyrillic njecyrillic yatcyrillic uniA64F uniA653 ];
-@_uni0427_R = [ afii10041 Chedieresiscyrillic Chedescendercyrillic Chekhakassiancyrillic uniA686 ];
-@_uni0447_R = [ checyrillic chedieresiscyrillic chedescendercyrillic chekhakassiancyrillic uniA687 ];
-@_uni041B_R = [ afii10029 afii10058 uni0512 uni04C5 uni0508 uni0514 uni0520 ];
-@_uni043B_R = [ elcyrillic ljecyrillic uni0513 uni04C6 uni0515 uni0521 ];
-
# gdef classes
@GDEF_BASE = [ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z AE AEacute AEmacron Aacute Abreve Acaron Acircumflex Adieresis Agrave Alpha Alphatonos Amacron Aogonek Aogonek.NAV Aring Aringacute Atilde Beta Cacute Ccaron Ccedilla Ccircumflex Dcaron Dcroat Eacute Ebreve Ecaron Ecircumflex Edieresis Edotaccent Egrave Emacron Eng Eogonek Eogonek.NAV Epsilon Epsilon1 Epsilontonos Esh Eta Etatonos Eth Gacute Gamma Gbar Gbreve Gcaron Gcircumflex Gcommaaccent Gsmallcap Gsmallcaphook Hbar Hcircumflex Iacute Ibar Ibreve Icaron Icircumflex Idieresis Idotaccent Igrave Imacron Iogonek Iota Iota1 Iotadieresis Iotatonos Ismallcap Itilde Jcircumflex Kappa Kcaron Kcommaaccent Lacute Lcaron Lcommaaccent Ldot Lslash Lsmallcap Mu Nacute Ncaron Ncommaaccent Nsmallcap Ntilde Nu OE OEsmallcap Oacute Obar Obreve Ocaron Ocircumflex Odieresis Ograve Ohorn Ohungarumlaut Omacron Omega Omicron Omicrontonos Oogonek Oogonek.NAV Oslash Oslashacute Otilde Racute Rcaron Rcommaaccent Rho Rsmallcap Rsmallcapinv Sacute Scaron Scedilla Schwa Scircumflex Tau Tbar Tcaron Uacute Ubreve Ucaron Ucircumflex Udieresis Ugrave Uhorn Uhungarumlaut Umacron Uogonek Upsilon Upsilondieresis Upsilontonos Uring Utilde Wacute Wcircumflex Wdieresis Wgrave Yacute Ycircumflex Ydieresis Ygrave Ysmallcap Zacute Zbar Zcaron Zdotaccent Zeta a_uni02DE aacute abreve acaron acircumflex adieresis ae aeacute aemacron agrave alpha alphatonos amacron aogonek aogonek.NAV aring aringacute ascript ascriptturn atilde aturn babygamma bbar bhook bullseye cacute ccaron ccedilla ccircumflex ccurl cedilla cstretch dcaron dcroat dhook dotlessi drthook dyogh dz dzcurl eacute ebreve ecaron ecircumflex edieresis edotaccent egrave emacron eng eogonek eogonek.NAV epsilon epsilon1 epsilon1rev epsilon1revclosed epsilon1revhook epsilonclosed epsilontonos erev esh eshcurl eshshortrev eta etatonos eturn finalkaf finalmem finalnun franc gacute gamma1 gbar gbreve gcaron gcircumflex gcommaaccent gcursive ghook glottalstop glottalstopbar glottalstopbarrev glottalstopinv glottalstoprevinv hbar hcircumflex henghook hhook hturn iacute ibar ibreve icaron icircumflex idieresis igrave imacron iogonek iota iota1 iotadieresis iotadieresistonos iotatonos itilde jcircumflex jcrosstail jdotlessbar jhookdblbar kappa kcaron kcommaaccent kgreenlandic kturn lacute lbar lbelt lcaron lcommaaccent ldot lmidtilde longs lrthook lslash lyogh mhook mturn mturndescend nacute napostrophe ncaron ncommaaccent nlfthook nrthook ntilde nu o_uni02DE oacute obar obreve ocaron ocircumflex odieresis oe ogonek ograve ohorn ohungarumlaut omacron omega omegaclosed omegatonos omicron omicrontonos oogonek oogonek.NAV oopen oslash oslashacute otilde philatin psi qhook racute rcaron rcommaaccent rdescend rfishhook rfishhookrev rho rrthook rturn rturnascend rturnrthook sacute scaron scedilla schwa schwahook scircumflex srthook tbar tcaron tccurl tesh trthook ts tturn uacute ubar ubreve ucaron ucircumflex udieresis ugrave uhorn uhungarumlaut umacron uni0069.ccmp uni006A.ccmp Cdotaccent cdotaccent Gdotaccent gdotaccent uni012F.ccmp Tcommaaccent tcommaaccent nlegrightlong Udieresismacron udieresismacron Udieresisacute udieresisacute Udieresiscaron udieresiscaron Udieresisgrave udieresisgrave Adieresismacron adieresismacron Adotmacron adotmacron Oogonekmacron oogonekmacron jcaron uni01F8 uni01F9 Adblgrave adblgrave Ainvertedbreve ainvertedbreve Edblgrave edblgrave Einvertedbreve einvertedbreve Idblgrave idblgrave Iinvertedbreve iinvertedbreve Odblgrave odblgrave Oinvertedbreve oinvertedbreve Rdblgrave rdblgrave Rinvertedbreve rinvertedbreve Udblgrave udblgrave Uinvertedbreve uinvertedbreve Scommaaccent scommaaccent uni021A uni021B uni021E uni021F uni0226 uni0227 uni0228 uni0229 uni022A uni022B uni022C uni022D uni022E uni022F uni0230 uni0231 uni0232 uni0233 dotlessj uni023D uni0243 uni0244 uni0248 uni0249 uni0249.ccmp uni024C uni024D uni024E uni024F uni0268.ccmp ezh ezhcurl uni0299 uni029C uni029D.ccmp uni02A9 uni02AB uni02AC uni02AE rhotichookmod uni037F Upsilonhooksymbol Upsilonacutehooksymbolgreek Upsilondieresishooksymbolgreek pisymbolgreek sigmalunatesymbolgreek yotgreek uni03F3.ccmp uni03F4 uni03F9 uni03FA uni0400 afii10023 afii10052 afii10053 afii10054 afii10055 afii10056 afii10057 afii10061 uni040D afii10062 afii10017 afii10019 afii10020 afii10022 afii10024 afii10025 afii10026 afii10027 afii10029 afii10030 afii10031 afii10032 afii10034 afii10035 afii10036 afii10037 afii10039 afii10041 afii10045 afii10047 afii10048 afii10049 afii10065 vecyrillic gecyrillic decyrillic iecyrillic zhecyrillic zecyrillic iicyrillic iishortcyrillic kacyrillic elcyrillic emcyrillic encyrillic ocyrillic pecyrillic ercyrillic escyrillic tecyrillic ucyrillic efcyrillic khacyrillic tsecyrillic checyrillic shacyrillic shchacyrillic yericyrillic ereversedcyrillic iucyrillic iacyrillic uni0450 iocyrillic gjecyrillic ecyrillic dzecyrillic icyrillic uni0456.ccmp yicyrillic jecyrillic uni0458.ccmp kjecyrillic uni045D ushortcyrillic Omegacyrillic omegacyrillic ksicyrillic psicyrillic afii10147 fitacyrillic afii10148 izhitsacyrillic Izhitsadblgravecyrillic izhitsadblgravecyrillic omegaroundcyrillic otcyrillic Koppacyrillic koppacyrillic uni048A uni048B Ghestrokecyrillic ghestrokecyrillic Zhedescendercyrillic zhedescendercyrillic Zedescendercyrillic zedescendercyrillic kadescendercyrillic Endescendercyrillic endescendercyrillic Haabkhasiancyrillic haabkhasiancyrillic Esdescendercyrillic esdescendercyrillic Tedescendercyrillic tedescendercyrillic Ustraightcyrillic Ustraightstrokecyrillic Hadescendercyrillic hadescendercyrillic Chedescendercyrillic chedescendercyrillic Shhacyrillic shhacyrillic Cheabkhasiancyrillic cheabkhasiancyrillic palochkacyrillic Zhebrevecyrillic zhebrevecyrillic uni04C6 uni04C9 uni04CA Chekhakassiancyrillic chekhakassiancyrillic uni04CD uni04CE uni04CF Abrevecyrillic abrevecyrillic Adieresiscyrillic adieresiscyrillic Aiecyrillic aiecyrillic Iebrevecyrillic iebrevecyrillic Schwacyrillic schwacyrillic Schwadieresiscyrillic schwadieresiscyrillic Zhedieresiscyrillic zhedieresiscyrillic Zedieresiscyrillic zedieresiscyrillic Imacroncyrillic imacroncyrillic Idieresiscyrillic idieresiscyrillic Odieresiscyrillic odieresiscyrillic Obarredcyrillic obarredcyrillic Obarreddieresiscyrillic obarreddieresiscyrillic uni04EC uni04ED Umacroncyrillic umacroncyrillic Udieresiscyrillic udieresiscyrillic Uhungarumlautcyrillic uhungarumlautcyrillic Chedieresiscyrillic chedieresiscyrillic uni04F6 uni04F7 Yerudieresiscyrillic yerudieresiscyrillic uni04FC uni04FD uni04FE uni04FF uni0501 uni0504 uni0506 uni050A uni050C uni050D uni050E uni0510 uni0511 uni0513 uni051A uni051B uni051C uni051D uni0525 uni0526 uni0527 uni052F uni1D00 uni1D01 uni1D02 uni1D03 uni1D04 uni1D05 uni1D06 uni1D07 uni1D08 uni1D09 uni1D0A uni1D0B uni1D0C uni1D0D uni1D0E uni1D0F uni1D10 uni1D14 uni1D15 uni1D18 uni1D19 uni1D1A uni1D1B uni1D1C uni1D20 uni1D21 uni1D22 uni1D23 uni1D24 uni1D25 uni1D26 uni1D27 uni1D28 uni1D29 uni1D2A uni1D2B uni1D6B uni1D6C uni1D6D uni1D6E uni1D6F uni1D70 uni1D71 uni1D72 uni1D73 uni1D74 uni1D75 uni1D76 uni1D77 uni1D79 uni1D7A uni1D7B uni1D7C uni1D7D uni1D7E uni1D7F uni1D80 uni1D81 uni1D82 uni1D83 uni1D84 uni1D85 uni1D86 uni1D87 uni1D88 uni1D89 uni1D8A uni1D8B uni1D8C uni1D8D uni1D8E uni1D8F uni1D90 uni1D91 uni1D92 uni1D93 uni1D94 uni1D95 uni1D96 uni1D96.ccmp uni1D97 uni1D98 uni1D99 uni1D9A Aringbelow aringbelow Bdotaccent bdotaccent Bdotbelow bdotbelow Blinebelow blinebelow Ccedillaacute ccedillaacute Ddotaccent ddotaccent Ddotbelow ddotbelow Dlinebelow dlinebelow Dcedilla dcedilla Dcircumflexbelow dcircumflexbelow Emacrongrave emacrongrave Emacronacute emacronacute Ecircumflexbelow ecircumflexbelow Etildebelow etildebelow Ecedillabreve ecedillabreve Fdotaccent fdotaccent Gmacron gmacron Hdotaccent hdotaccent Hdotbelow hdotbelow Hdieresis hdieresis Hbrevebelow hbrevebelow Itildebelow itildebelow uni1E2D.ccmp Idieresisacute idieresisacute Kacute kacute Kdotbelow kdotbelow Klinebelow klinebelow Ldotbelow ldotbelow Ldotbelowmacron ldotbelowmacron Llinebelow llinebelow Lcircumflexbelow lcircumflexbelow Macute macute Mdotaccent mdotaccent Mdotbelow mdotbelow Ndotaccent ndotaccent Ndotbelow ndotbelow Nlinebelow nlinebelow Ncircumflexbelow ncircumflexbelow Otildeacute otildeacute Otildedieresis otildedieresis Omacrongrave omacrongrave Omacronacute omacronacute Pacute pacute Pdotaccent pdotaccent Rdotaccent rdotaccent Rdotbelow rdotbelow Rdotbelowmacron rdotbelowmacron Rlinebelow rlinebelow Sdotaccent sdotaccent Sdotbelow sdotbelow Sacutedotaccent sacutedotaccent Scarondotaccent scarondotaccent Sdotbelowdotaccent sdotbelowdotaccent Tdotaccent tdotaccent Tdotbelow tdotbelow Tlinebelow tlinebelow Tcircumflexbelow tcircumflexbelow Udieresisbelow udieresisbelow Utildebelow utildebelow Ucircumflexbelow ucircumflexbelow Utildeacute utildeacute Umacrondieresis umacrondieresis Vtilde vtilde Vdotbelow vdotbelow Wdotaccent wdotaccent Wdotbelow wdotbelow Xdotaccent xdotaccent Xdieresis xdieresis Ydotaccent ydotaccent Zcircumflex zcircumflex Zdotbelow zdotbelow Zlinebelow zlinebelow hlinebelow tdieresis wring yring arighthalfring Adotbelow adotbelow Ahookabove ahookabove Acircumflexacute acircumflexacute Acircumflexgrave acircumflexgrave Acircumflexhookabove acircumflexhookabove Acircumflextilde acircumflextilde Acircumflexdotbelow acircumflexdotbelow Abreveacute abreveacute Abrevegrave abrevegrave Abrevehookabove abrevehookabove Abrevetilde abrevetilde Abrevedotbelow abrevedotbelow Edotbelow edotbelow Ehookabove ehookabove Etilde etilde Ecircumflexacute ecircumflexacute Ecircumflexgrave ecircumflexgrave Ecircumflexhookabove ecircumflexhookabove Ecircumflextilde ecircumflextilde Ecircumflexdotbelow ecircumflexdotbelow Ihookabove ihookabove Idotbelow idotbelow uni1ECB.ccmp Odotbelow odotbelow Ohookabove ohookabove Ocircumflexacute ocircumflexacute Ocircumflexgrave ocircumflexgrave Ocircumflexhookabove ocircumflexhookabove Ocircumflextilde ocircumflextilde Ocircumflexdotbelow ocircumflexdotbelow Ohornacute ohornacute Ohorngrave ohorngrave Ohornhookabove ohornhookabove Ohorntilde ohorntilde Ohorndotbelow ohorndotbelow Udotbelow udotbelow Uhookabove uhookabove Uhornacute uhornacute Uhorngrave uhorngrave Uhornhookabove uhornhookabove Uhorntilde uhorntilde Uhorndotbelow uhorndotbelow Ydotbelow ydotbelow Yhookabove yhookabove Ytilde ytilde uni1F00 uni1F01 uni1F02 uni1F03 uni1F04 uni1F05 uni1F06 uni1F07 uni1F08 uni1F09 uni1F0A uni1F0B uni1F0C uni1F0D uni1F0E uni1F0F uni1F10 uni1F11 uni1F12 uni1F13 uni1F14 uni1F15 uni1F18 uni1F19 uni1F1A uni1F1B uni1F1C uni1F1D uni1F20 uni1F21 uni1F22 uni1F23 uni1F24 uni1F25 uni1F26 uni1F27 uni1F28 uni1F29 uni1F2A uni1F2B uni1F2C uni1F2D uni1F2E uni1F2F uni1F30 uni1F31 uni1F32 uni1F33 uni1F34 uni1F35 uni1F36 uni1F37 uni1F38 uni1F39 uni1F3A uni1F3B uni1F3C uni1F3D uni1F3E uni1F3F uni1F40 uni1F41 uni1F42 uni1F43 uni1F44 uni1F45 uni1F48 uni1F49 uni1F4A uni1F4B uni1F4C uni1F4D uni1F50 uni1F51 uni1F52 uni1F53 uni1F54 uni1F55 uni1F56 uni1F57 uni1F59 uni1F5B uni1F5D uni1F5F uni1F60 uni1F61 uni1F62 uni1F63 uni1F64 uni1F65 uni1F66 uni1F67 uni1F70 uni1F71 uni1F72 uni1F73 uni1F74 uni1F75 uni1F76 uni1F77 uni1F78 uni1F79 uni1F7A uni1F7B uni1F7C uni1F7D uni1F80 uni1F81 uni1F82 uni1F83 uni1F84 uni1F85 uni1F86 uni1F87 uni1F88 uni1F89 uni1F8A uni1F8B uni1F8C uni1F8D uni1F8E uni1F8F uni1F90 uni1F91 uni1F92 uni1F93 uni1F94 uni1F95 uni1F96 uni1F97 uni1F98 uni1F99 uni1F9A uni1F9B uni1F9C uni1F9D uni1F9E uni1F9F uni1FA0 uni1FA1 uni1FA2 uni1FA3 uni1FA4 uni1FA5 uni1FA6 uni1FA7 uni1FB0 uni1FB1 uni1FB2 uni1FB3 uni1FB4 uni1FB6 uni1FB7 uni1FB8 uni1FB9 uni1FBA uni1FBB uni1FBC uni1FC2 uni1FC3 uni1FC4 uni1FC6 uni1FC7 uni1FC8 uni1FC9 uni1FCA uni1FCB uni1FCC uni1FD0 uni1FD1 uni1FD2 uni1FD3 uni1FD6 uni1FD7 uni1FD8 uni1FD9 uni1FDA uni1FDB uni1FE0 uni1FE1 uni1FE2 uni1FE3 uni1FE4 uni1FE5 uni1FE6 uni1FE7 uni1FE8 uni1FE9 uni1FEA uni1FEB uni1FEC uni1FF2 uni1FF3 uni1FF4 uni1FF6 uni1FF7 uni1FF8 uni1FF9 dong uni2C67 uni2C68 uniA790 uniA791 uogonek upsilon upsilondieresis upsilondieresistonos upsilonlatin upsilontonos uring utilde vscript vturn wacute wcircumflex wdieresis wgrave wturn yacute ycircumflex ydieresis ygrave yturn zacute zbar zcaron zcurl zdotaccent zrthook ];
@@ -875,6 +809,10 @@ feature liga {
lookup liga02;
} liga;
+feature tnum {
+ sub @PNUM by @TNUM;
+} tnum;
+
feature frac { # Fractions
# Latin
lookup frac_1 {
diff --git a/src/Interface-Regular.ufo/glyphs/DZcaron_.glif b/src/Interface-Regular.ufo/glyphs/DZcaron_.glif
index 30aa4cc9a..4a2d62cd6 100644
--- a/src/Interface-Regular.ufo/glyphs/DZcaron_.glif
+++ b/src/Interface-Regular.ufo/glyphs/DZcaron_.glif
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<glyph name="Dzcaron" format="1">
+<glyph name="Dzcaron_" format="1">
<advance width="3296"/>
<unicode hex="01C5"/>
<outline>
diff --git a/src/Interface-Regular.ufo/glyphs/contents.plist b/src/Interface-Regular.ufo/glyphs/contents.plist
index 2500eecb1..d6f789a27 100644
--- a/src/Interface-Regular.ufo/glyphs/contents.plist
+++ b/src/Interface-Regular.ufo/glyphs/contents.plist
@@ -36,8 +36,6 @@
<string>D_.glif</string>
<key>D.cn</key>
<string>D_.cn.glif</string>
- <key>DZcaron</key>
- <string>DZcaron_.glif</string>
<key>Dbar1</key>
<string>Dbar1_.glif</string>
<key>Delta</key>
@@ -48,7 +46,7 @@
<string>Digamma_.glif</string>
<key>Dtopbar</key>
<string>Dtopbar_.glif</string>
- <key>Dzcaron</key>
+ <key>Dzcaron_</key>
<string>Dzcaron_.glif</string>
<key>Dzeabkhasiancyrillic</key>
<string>Dzeabkhasiancyrillic_.glif</string>
@@ -754,6 +752,8 @@
<string>eight.frac.glif</string>
<key>eight.sup</key>
<string>eight.sup.glif</string>
+ <key>eight.tnum</key>
+ <string>eight.tnum.glif</string>
<key>eightroman</key>
<string>eightroman.glif</string>
<key>eightsub</key>
@@ -874,6 +874,8 @@
<string>five.frac.glif</string>
<key>five.sup</key>
<string>five.sup.glif</string>
+ <key>five.tnum</key>
+ <string>five.tnum.glif</string>
<key>fiveeighths</key>
<string>fiveeighths.glif</string>
<key>fiveroman</key>
@@ -890,6 +892,8 @@
<string>four.frac.glif</string>
<key>four.sup</key>
<string>four.sup.glif</string>
+ <key>four.tnum</key>
+ <string>four.tnum.glif</string>
<key>fourroman</key>
<string>fourroman.glif</string>
<key>foursub</key>
@@ -1204,6 +1208,8 @@
<string>nine.frac.glif</string>
<key>nine.sup</key>
<string>nine.sup.glif</string>
+ <key>nine.tnum</key>
+ <string>nine.tnum.glif</string>
<key>nineinferior</key>
<string>nineinferior.glif</string>
<key>nineroman</key>
@@ -1258,6 +1264,8 @@
<string>one.glif</string>
<key>one.sup</key>
<string>one.sup.glif</string>
+ <key>one.tnum</key>
+ <string>one.tnum.glif</string>
<key>onedotleader</key>
<string>onedotleader.glif</string>
<key>oneeighth</key>
@@ -1552,6 +1560,8 @@
<string>seven.frac.glif</string>
<key>seven.sup</key>
<string>seven.sup.glif</string>
+ <key>seven.tnum</key>
+ <string>seven.tnum.glif</string>
<key>seveneighths</key>
<string>seveneighths.glif</string>
<key>sevenroman</key>
@@ -1576,6 +1586,8 @@
<string>six.frac.glif</string>
<key>six.sup</key>
<string>six.sup.glif</string>
+ <key>six.tnum</key>
+ <string>six.tnum.glif</string>
<key>sixinferior</key>
<string>sixinferior.glif</string>
<key>sixroman</key>
@@ -1660,6 +1672,8 @@
<string>three.glif</string>
<key>three.sup</key>
<string>three.sup.glif</string>
+ <key>three.tnum</key>
+ <string>three.tnum.glif</string>
<key>threeeighths</key>
<string>threeeighths.glif</string>
<key>threequarters</key>
@@ -1750,6 +1764,8 @@
<string>two.glif</string>
<key>two.sup</key>
<string>two.sup.glif</string>
+ <key>two.tnum</key>
+ <string>two.tnum.glif</string>
<key>twodotleader</key>
<string>twodotleader.glif</string>
<key>tworoman</key>
@@ -4334,6 +4350,8 @@
<string>zero.frac.glif</string>
<key>zero.sup</key>
<string>zero.sup.glif</string>
+ <key>zero.tnum</key>
+ <string>zero.tnum.glif</string>
<key>zerosub</key>
<string>zerosub.glif</string>
<key>zerosuperior</key>
diff --git a/src/Interface-Regular.ufo/glyphs/eight.tnum.glif b/src/Interface-Regular.ufo/glyphs/eight.tnum.glif
new file mode 100644
index 000000000..ae7f9c2e6
--- /dev/null
+++ b/src/Interface-Regular.ufo/glyphs/eight.tnum.glif
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="eight.tnum" format="1">
+ <advance width="1664"/>
+ <outline>
+ <component base="eight"/>
+ </outline>
+</glyph>
diff --git a/src/Interface-Regular.ufo/glyphs/five.tnum.glif b/src/Interface-Regular.ufo/glyphs/five.tnum.glif
new file mode 100644
index 000000000..2574c5193
--- /dev/null
+++ b/src/Interface-Regular.ufo/glyphs/five.tnum.glif
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="five.tnum" format="1">
+ <advance width="1664"/>
+ <outline>
+ <component base="five"/>
+ </outline>
+</glyph>
diff --git a/src/Interface-Regular.ufo/glyphs/four.tnum.glif b/src/Interface-Regular.ufo/glyphs/four.tnum.glif
new file mode 100644
index 000000000..60bd9e450
--- /dev/null
+++ b/src/Interface-Regular.ufo/glyphs/four.tnum.glif
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="four.tnum" format="1">
+ <advance width="1664"/>
+ <outline>
+ <component base="four"/>
+ </outline>
+</glyph>
diff --git a/src/Interface-Regular.ufo/glyphs/nine.tnum.glif b/src/Interface-Regular.ufo/glyphs/nine.tnum.glif
new file mode 100644
index 000000000..a21769f37
--- /dev/null
+++ b/src/Interface-Regular.ufo/glyphs/nine.tnum.glif
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="nine.tnum" format="1">
+ <advance width="1664"/>
+ <outline>
+ <component base="nine"/>
+ </outline>
+</glyph>
diff --git a/src/Interface-Regular.ufo/glyphs/one.tnum.glif b/src/Interface-Regular.ufo/glyphs/one.tnum.glif
new file mode 100644
index 000000000..c1a53eef2
--- /dev/null
+++ b/src/Interface-Regular.ufo/glyphs/one.tnum.glif
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="one.tnum" format="1">
+ <advance width="1664"/>
+ <outline>
+ <component base="one" xOffset="140"/>
+ </outline>
+</glyph>
diff --git a/src/Interface-Regular.ufo/glyphs/seven.tnum.glif b/src/Interface-Regular.ufo/glyphs/seven.tnum.glif
new file mode 100644
index 000000000..fe5ebe5ee
--- /dev/null
+++ b/src/Interface-Regular.ufo/glyphs/seven.tnum.glif
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="seven.tnum" format="1">
+ <advance width="1664"/>
+ <outline>
+ <component base="seven" xOffset="64"/>
+ </outline>
+</glyph>
diff --git a/src/Interface-Regular.ufo/glyphs/six.tnum.glif b/src/Interface-Regular.ufo/glyphs/six.tnum.glif
new file mode 100644
index 000000000..8c4703d9b
--- /dev/null
+++ b/src/Interface-Regular.ufo/glyphs/six.tnum.glif
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="six.tnum" format="1">
+ <advance width="1664"/>
+ <outline>
+ <component base="six"/>
+ </outline>
+</glyph>
diff --git a/src/Interface-Regular.ufo/glyphs/three.tnum.glif b/src/Interface-Regular.ufo/glyphs/three.tnum.glif
new file mode 100644
index 000000000..af6f36fee
--- /dev/null
+++ b/src/Interface-Regular.ufo/glyphs/three.tnum.glif
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="three.tnum" format="1">
+ <advance width="1664"/>
+ <outline>
+ <component base="three"/>
+ </outline>
+</glyph>
diff --git a/src/Interface-Regular.ufo/glyphs/two.tnum.glif b/src/Interface-Regular.ufo/glyphs/two.tnum.glif
new file mode 100644
index 000000000..5b2215e46
--- /dev/null
+++ b/src/Interface-Regular.ufo/glyphs/two.tnum.glif
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="two.tnum" format="1">
+ <advance width="1664"/>
+ <outline>
+ <component base="two"/>
+ </outline>
+</glyph>
diff --git a/src/Interface-Regular.ufo/glyphs/zero.tnum.glif b/src/Interface-Regular.ufo/glyphs/zero.tnum.glif
new file mode 100644
index 000000000..0ddd358b0
--- /dev/null
+++ b/src/Interface-Regular.ufo/glyphs/zero.tnum.glif
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="zero.tnum" format="1">
+ <advance width="1664"/>
+ <outline>
+ <component base="zero"/>
+ </outline>
+</glyph>
diff --git a/src/Interface-Regular.ufo/groups.plist b/src/Interface-Regular.ufo/groups.plist
index c98c3835a..247d9fabc 100644
--- a/src/Interface-Regular.ufo/groups.plist
+++ b/src/Interface-Regular.ufo/groups.plist
@@ -608,7 +608,7 @@
</array>
<key>@KERN_LEFT_u01C5</key>
<array>
- <string>Dzcaron</string>
+ <string>Dzcaron_</string>
<string>dzcaron</string>
<string>z</string>
<string>zacute</string>
@@ -687,7 +687,7 @@
<string>F</string>
<string>N</string>
<string>R</string>
- <string>Dzcaron</string>
+ <string>Dzcaron_</string>
<string>Itildebelow</string>
<string>E</string>
<string>Thorn</string>
diff --git a/src/Interface-Regular.ufo/lib.plist b/src/Interface-Regular.ufo/lib.plist
index 89f274849..9a9c94a62 100644
--- a/src/Interface-Regular.ufo/lib.plist
+++ b/src/Interface-Regular.ufo/lib.plist
@@ -307,7 +307,7 @@
<string>B</string>
<string>C</string>
<string>D</string>
- <string>Dzcaron</string>
+ <string>Dzcaron_</string>
<string>E</string>
<string>F</string>
<string>G</string>
@@ -574,6 +574,16 @@
<string>seven</string>
<string>eight</string>
<string>nine</string>
+ <string>zero.tnum</string>
+ <string>one.tnum</string>
+ <string>two.tnum</string>
+ <string>three.tnum</string>
+ <string>four.tnum</string>
+ <string>five.tnum</string>
+ <string>six.tnum</string>
+ <string>seven.tnum</string>
+ <string>eight.tnum</string>
+ <string>nine.tnum</string>
<string>ampersand</string>
<string>exclam</string>
<string>exclamdown</string>
@@ -1440,7 +1450,6 @@
<string>Fturn</string>
<string>uni023F</string>
<string>p.cn</string>
- <string>f_f</string>
<string>uni023E</string>
<string>uni023B</string>
<string>uni023C</string>
@@ -1735,7 +1744,6 @@
<string>uni1DCB</string>
<string>uni1DCA</string>
<string>Nhook</string>
- <string>fi</string>
<string>tildemacroncomb.lc</string>
<string>iota1</string>
<string>uni02E6_uni02E8</string>
@@ -2492,7 +2500,7 @@
<string>B</string>
<string>C</string>
<string>D</string>
- <string>Dzcaron</string>
+ <string>Dzcaron_</string>
<string>E</string>
<string>F</string>
<string>G</string>
@@ -2759,6 +2767,16 @@
<string>seven</string>
<string>eight</string>
<string>nine</string>
+ <string>zero.tnum</string>
+ <string>one.tnum</string>
+ <string>two.tnum</string>
+ <string>three.tnum</string>
+ <string>four.tnum</string>
+ <string>five.tnum</string>
+ <string>six.tnum</string>
+ <string>seven.tnum</string>
+ <string>eight.tnum</string>
+ <string>nine.tnum</string>
<string>ampersand</string>
<string>exclam</string>
<string>exclamdown</string>
@@ -3625,7 +3643,6 @@
<string>Fturn</string>
<string>uni023F</string>
<string>p.cn</string>
- <string>f_f</string>
<string>uni023E</string>
<string>uni023B</string>
<string>uni023C</string>
@@ -3920,7 +3937,6 @@
<string>uni1DCB</string>
<string>uni1DCA</string>
<string>Nhook</string>
- <string>fi</string>
<string>tildemacroncomb.lc</string>
<string>iota1</string>
<string>uni02E6_uni02E8</string>
@@ -4660,7 +4676,6 @@
<string>placeofinterestsign.specz.medium</string>
<string>uniE001</string>
<string>.notdef</string>
- <string>DZcaron</string>
</array>
</dict>
</plist>
diff --git a/src/diacritics.txt b/src/diacritics.txt
index 34f8b1a5d..13c563b28 100644
--- a/src/diacritics.txt
+++ b/src/diacritics.txt
@@ -240,14 +240,6 @@ X+crossbar:cross=uni04FE
x+crossbar:cross=uni04FF
epsilon=uni0511
F+crossbar:cross=franc
-two=two.pnum
-three=three.pnum
-four=four.pnum
-five=five.pnum
-six=six.pnum/20,0
-eight=eight.pnum/20,20
-nine=nine.pnum/0,20
-zero=zero.pnum/20,20
L_J=LJ
L_j=Lj
l_j=lj
diff --git a/src/glyphorder.txt b/src/glyphorder.txt
index 9143f24d2..d52027208 100644
--- a/src/glyphorder.txt
+++ b/src/glyphorder.txt
@@ -272,6 +272,16 @@ six
seven
eight
nine
+zero.tnum
+one.tnum
+two.tnum
+three.tnum
+four.tnum
+five.tnum
+six.tnum
+seven.tnum
+eight.tnum
+nine.tnum
ampersand
exclam
exclamdown
@@ -2173,7 +2183,6 @@ uniE002
uniE003
placeofinterestsign.specz.medium
.notdef
-DZcaron
N.unic
f_l
U.unic