Skip to content

Commit cc49e5a

Browse files
committed
Khottabun: Represent Thai Noi subjoins with PHINTHU.
* fonts/Khottabun.sfd: - Rename 'dummy' glyph at slot 0x200d back to 'zerojoin'. - Add detached 'dummy' glyph back at slot 0. - Fix "'ccmp' TN conjuncts" substitutions by replacing 'dummy' with 'zerojoin'. - Add "'ccmp' TN subjoins" lookup for subjoins. - Detach subjoin glyphs from Unicode codepoints, rename them to uniXXXX.sub form, add "'ccmp' TN subjoins" substitutions as appropriate. - Add dummy 'uni0E98' glyph as required by subjoined THO THONG substitution. - Bump font version to 004.000.
1 parent 1c73c80 commit cc49e5a

2 files changed

Lines changed: 82 additions & 34 deletions

File tree

‎ChangeLog‎

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,20 @@
1+
2025-07-17 Theppitak Karoonboonyanan <theppitak@gmail.com>
2+
3+
Khottabun: Represent Thai Noi subjoins with PHINTHU.
4+
5+
* fonts/Khottabun.sfd:
6+
- Rename 'dummy' glyph at slot 0x200d back to 'zerojoin'.
7+
- Add detached 'dummy' glyph back at slot 0.
8+
- Fix "'ccmp' TN conjuncts" substitutions by replacing
9+
'dummy' with 'zerojoin'.
10+
- Add "'ccmp' TN subjoins" lookup for subjoins.
11+
- Detach subjoin glyphs from Unicode codepoints,
12+
rename them to uniXXXX.sub form,
13+
add "'ccmp' TN subjoins" substitutions as appropriate.
14+
- Add dummy 'uni0E98' glyph as required by subjoined
15+
THO THONG substitution.
16+
- Bump font version to 004.000.
17+
118
2025-04-12 Theppitak Karoonboonyanan <theppitak@gmail.com>
219

320
Khottabun: Merge patterns for RA reordering.

‎fonts/Khottabun.sfd‎

Lines changed: 65 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ FamilyName: Khottabun
55
Weight: Medium
66
Copyright: Created by Theppitak Karoonboonyanan, with FontForge 2.0 (http://fontforge.sf.net).\n\nTham glyphs are based on UbwManut font by Sanit Pokhaphun, Ubon Ratchathani Rajabhat University, Thailand, 8 September 2004.\n\nThai Noi glyphs are based on TNManut font by Sanit Pokhaphun, Ubon Ratchathani Rajabhat University, Thailand, September 2004.
77
UComments: "2010-12-9: Created."
8-
Version: 003.004
8+
Version: 004.000
99
ItalicAngle: 0
1010
UnderlinePosition: -174
1111
UnderlineWidth: 184
@@ -21,7 +21,7 @@ OS2Version: 0
2121
OS2_WeightWidthSlopeOnly: 0
2222
OS2_UseTypoMetrics: 1
2323
CreationTime: 1291888288
24-
ModificationTime: 1744442168
24+
ModificationTime: 1752742092
2525
PfmFamily: 33
2626
TTFWeight: 500
2727
TTFWidth: 5
@@ -41,6 +41,7 @@ HheadAOffset: 1
4141
HheadDescent: 0
4242
HheadDOffset: 1
4343
OS2Vendor: 'PfEd'
44+
Lookup: 4 0 0 "'ccmp' TN subjoins" { "'ccmp' TN subjoins" } ['ccmp' ('DFLT' <'dflt' > 'lao ' <'LAO ' 'dflt' > ) ]
4445
Lookup: 4 0 0 "'ccmp' TN conjuncts" { "'ccmp' TN conjuncts" } ['ccmp' ('DFLT' <'dflt' > 'lao ' <'LAO ' 'dflt' > ) ]
4546
Lookup: 5 0 0 "'ccmp' Pali ANG-LAN stage 1" { "'ccmp' Pali ANG-LAN append intermediate" } ['ccmp' ('DFLT' <'dflt' > ) ]
4647
Lookup: 5 0 0 "'ccmp' Pali ANG-LAN stage 2" { "'ccmp' Pali ANG-LAN remove intermediate" } ['ccmp' ('DFLT' <'dflt' > ) ]
@@ -544,7 +545,7 @@ NameList: Adobe Glyph List
544545
DisplaySize: -72
545546
AntiAlias: 1
546547
FitToEm: 1
547-
WinInfo: 6688 8 4
548+
WinInfo: 3728 8 2
548549
BeginPrivate: 5
549550
BlueValues 17 [-30 0 1209 1239]
550551
StdHW 5 [135]
@@ -657,7 +658,7 @@ Grid
657658
6144 1410 l 1024
658659
EndSplineSet
659660
AnchorClass2: "BelowSideMark" "'mkmk' BelowMark Mark to Mark-1" "BelowRightMark" "'mkmk' BelowMark Mark to Mark-1" "BelowRight" "'mark' BelowBase Mark Positioning-1" "BelowMark" "'mkmk' BelowMark Mark to Mark-1" "AboveMark" "'mkmk' AboveMark Mark to Mark-1" "BelowBase" "'mark' BelowBase Mark Positioning-1" "AboveBase" "'mark' AboveBase Mark Positioning-1"
660-
BeginChars: 65599 226
661+
BeginChars: 65599 228
661662

662663
StartChar: uni1A20
663664
Encoding: 6688 6688 0
@@ -15821,8 +15822,8 @@ Ligature2: "LV remove intermediate for subjoin" dummy uni1A33.sub2 uni1A72
1582115822
Ligature2: "RA-S remove intermediate lookup" dummy uni1A33.sub2 uni1A55
1582215823
EndChar
1582315824

15824-
StartChar: dummy
15825-
Encoding: 8205 -1 195
15825+
StartChar: zerojoin
15826+
Encoding: 8205 8205 195
1582615827
Width: 0
1582715828
VWidth: 0
1582815829
GlyphClass: 4
@@ -16540,8 +16541,8 @@ SplineSet
1654016541
EndSplineSet
1654116542
EndChar
1654216543

16543-
StartChar: uni0EE0
16544-
Encoding: 3808 3808 205
16544+
StartChar: uni0E9A.sub
16545+
Encoding: 3808 -1 205
1654516546
Width: 363
1654616547
VWidth: 2862
1654716548
GlyphClass: 2
@@ -16616,10 +16617,11 @@ SplineSet
1661616617
-520 -137 -558 -99 -603 -99 c 3
1661716618
-648 -99 -686 -137 -686 -182 c 3
1661816619
EndSplineSet
16620+
Ligature2: "'ccmp' TN subjoins" uni0EBA uni0E9A
1661916621
EndChar
1662016622

16621-
StartChar: uni0EE2
16622-
Encoding: 3810 3810 206
16623+
StartChar: uni0EA5.sub
16624+
Encoding: 3810 -1 206
1662316625
Width: 453
1662416626
VWidth: 2862
1662516627
GlyphClass: 2
@@ -16688,10 +16690,12 @@ SplineSet
1668816690
-471 -504 -554 -588 -652 -588 c 3
1668916691
-748 -588 -834 -502 -834 -406 c 3
1669016692
EndSplineSet
16693+
LCarets2: 1 0
16694+
Ligature2: "'ccmp' TN subjoins" uni0EBA uni0EA5
1669116695
EndChar
1669216696

16693-
StartChar: uni0EE3
16694-
Encoding: 3811 3811 207
16697+
StartChar: uni0EAA.sub
16698+
Encoding: 3811 -1 207
1669516699
Width: 721
1669616700
VWidth: 2862
1669716701
GlyphClass: 2
@@ -16757,10 +16761,12 @@ SplineSet
1675716761
150 757 247 423 309 423 c 3
1675816762
333 423 358 434 384 454 c 1
1675916763
EndSplineSet
16764+
LCarets2: 1 0
16765+
Ligature2: "'ccmp' TN subjoins" uni0EBA uni0EAA
1676016766
EndChar
1676116767

16762-
StartChar: uni0EE1
16763-
Encoding: 3809 3809 208
16768+
StartChar: uni0EA1.sub
16769+
Encoding: 3809 -1 208
1676416770
Width: 0
1676516771
VWidth: 3390
1676616772
GlyphClass: 4
@@ -16805,6 +16811,7 @@ SplineSet
1680516811
-558 -537 -536 -495 -536 -441 c 3
1680616812
-536 -402 -558 -369 -680 -345 c 1xee
1680716813
EndSplineSet
16814+
Ligature2: "'ccmp' TN subjoins" uni0EBA uni0EA1
1680816815
EndChar
1680916816

1681016817
StartChar: uni0E82.uni0E99
@@ -16972,7 +16979,8 @@ SplineSet
1697216979
922 1003 736 1104 540 1104 c 3
1697316980
453 1104 358 1083 286 1044 c 1
1697416981
EndSplineSet
16975-
Ligature2: "'ccmp' TN conjuncts" uni0E82 dummy uni0E99
16982+
LCarets2: 2 0 0
16983+
Ligature2: "'ccmp' TN conjuncts" uni0E82 zerojoin uni0E99
1697616984
EndChar
1697716985

1697816986
StartChar: uni0E82.uni0EA1
@@ -17125,7 +17133,7 @@ SplineSet
1712517133
891 107 929 69 974 69 c 3x1e7c
1712617134
1010 69 1041 116 1062 182 c 1
1712717135
EndSplineSet
17128-
Ligature2: "'ccmp' TN conjuncts" uni0E82 dummy uni0EA1
17136+
Ligature2: "'ccmp' TN conjuncts" uni0E82 zerojoin uni0EA1
1712917137
EndChar
1713017138

1713117139
StartChar: uni0E84.uni0E99
@@ -17225,7 +17233,7 @@ SplineSet
1722517233
345 480 l 2
1722617234
349 628 452 759 592 759 c 3
1722717235
EndSplineSet
17228-
Ligature2: "'ccmp' TN conjuncts" uni0E84 dummy uni0E99
17236+
Ligature2: "'ccmp' TN conjuncts" uni0E84 zerojoin uni0E99
1722917237
EndChar
1723017238

1723117239
StartChar: uni0E84.uni0EA1
@@ -17328,7 +17336,7 @@ SplineSet
1732817336
816 107 853 69 898 69 c 3x7f70
1732917337
946 69 982 108 1004 170 c 1
1733017338
EndSplineSet
17331-
Ligature2: "'ccmp' TN conjuncts" uni0E84 dummy uni0EA1
17339+
Ligature2: "'ccmp' TN conjuncts" uni0E84 zerojoin uni0EA1
1733217340
EndChar
1733317341

1733417342
StartChar: uni0E96.uni0E99
@@ -17444,7 +17452,7 @@ SplineSet
1744417452
123 918 161 880 206 880 c 3
1744517453
252 880 279 915 309 963 c 1
1744617454
EndSplineSet
17447-
Ligature2: "'ccmp' TN conjuncts" uni0E96 dummy uni0E99
17455+
Ligature2: "'ccmp' TN conjuncts" uni0E96 zerojoin uni0E99
1744817456
EndChar
1744917457

1745017458
StartChar: uni0E96.uni0EA5
@@ -17563,7 +17571,7 @@ SplineSet
1756317571
242 197 204 234 159 234 c 3
1756417572
114 234 76 197 76 152 c 3x1e40
1756517573
EndSplineSet
17566-
Ligature2: "'ccmp' TN conjuncts" uni0E96 dummy uni0EA5
17574+
Ligature2: "'ccmp' TN conjuncts" uni0E96 zerojoin uni0EA5
1756717575
EndChar
1756817576

1756917577
StartChar: uni0EAA.uni0E99
@@ -17702,7 +17710,7 @@ SplineSet
1770217710
96 933 328 894 486 894 c 3
1770317711
592 894 718 933 840 1005 c 1
1770417712
EndSplineSet
17705-
Ligature2: "'ccmp' TN conjuncts" uni0EAA dummy uni0E99
17713+
Ligature2: "'ccmp' TN conjuncts" uni0EAA zerojoin uni0E99
1770617714
EndChar
1770717715

1770817716
StartChar: uni0EAA.uni0EA1
@@ -17861,11 +17869,12 @@ SplineSet
1786117869
1306 107 1344 69 1389 69 c 3x5f2e
1786217870
1425 69 1457 116 1478 182 c 1
1786317871
EndSplineSet
17864-
Ligature2: "'ccmp' TN conjuncts" uni0EAA dummy uni0EA1
17872+
LCarets2: 2 0 0
17873+
Ligature2: "'ccmp' TN conjuncts" uni0EAA zerojoin uni0EA1
1786517874
EndChar
1786617875

17867-
StartChar: uni0EE4
17868-
Encoding: 3812 3812 217
17876+
StartChar: uni0E9E.sub
17877+
Encoding: 3812 -1 217
1786917878
Width: 0
1787017879
VWidth: 7140
1787117880
GlyphClass: 4
@@ -17904,10 +17913,11 @@ SplineSet
1790417913
-518 -882 -435 -716 -435 -642 c 2
1790517914
-435 -507 l 1
1790617915
EndSplineSet
17916+
Ligature2: "'ccmp' TN subjoins" uni0EBA uni0E9E
1790717917
EndChar
1790817918

17909-
StartChar: uni0EE5
17910-
Encoding: 3813 3813 218
17919+
StartChar: uni0E98.sub
17920+
Encoding: 3813 -1 218
1791117921
Width: 0
1791217922
VWidth: 7140
1791317923
GlyphClass: 4
@@ -17944,10 +17954,12 @@ SplineSet
1794417954
-700 -648 -576 -538 -576 -432 c 3
1794517955
-576 -286 -686 -249 -752 -201 c 1
1794617956
EndSplineSet
17957+
LCarets2: 1 0
17958+
Ligature2: "'ccmp' TN subjoins" uni0EBA uni0E98
1794717959
EndChar
1794817960

17949-
StartChar: uni0EE6
17950-
Encoding: 3814 3814 219
17961+
StartChar: uni0E94.sub
17962+
Encoding: 3814 -1 219
1795117963
Width: 0
1795217964
VWidth: 3390
1795317965
GlyphClass: 4
@@ -18035,6 +18047,7 @@ SplineSet
1803518047
-614 -304 -768 -244 -920 -244 c 3
1803618048
-1007 -244 -1095 -284 -1152 -332 c 1
1803718049
EndSplineSet
18050+
Ligature2: "'ccmp' TN subjoins" uni0EBA uni0E94
1803818051
EndChar
1803918052

1804018053
StartChar: uni0ECC
@@ -18116,8 +18129,8 @@ SplineSet
1811618129
EndSplineSet
1811718130
EndChar
1811818131

18119-
StartChar: uni0EE7
18120-
Encoding: 3815 3815 222
18132+
StartChar: uni0E95.sub
18133+
Encoding: 3815 -1 222
1812118134
Width: 0
1812218135
VWidth: 7140
1812318136
GlyphClass: 4
@@ -18180,10 +18193,12 @@ SplineSet
1818018193
-506 -276 l 2
1818118194
-480 -307 -456 -364 -456 -432 c 3
1818218195
EndSplineSet
18196+
Ligature2: "'ccmp' TN subjoins" uni0EBA uni0E95
18197+
LCarets2: 1 0
1818318198
EndChar
1818418199

18185-
StartChar: uni0EE8
18186-
Encoding: 3816 3816 223
18200+
StartChar: uni0E88.sub
18201+
Encoding: 3816 -1 223
1818718202
Width: 0
1818818203
VWidth: 3373
1818918204
GlyphClass: 4
@@ -18243,10 +18258,11 @@ SplineSet
1824318258
-374 -678 -220 -463 -220 -321 c 3
1824418259
-220 -257 -225 -153 -252 -105 c 1
1824518260
EndSplineSet
18261+
Ligature2: "'ccmp' TN subjoins" uni0EBA uni0E88
1824618262
EndChar
1824718263

18248-
StartChar: uni0EE9
18249-
Encoding: 3817 3817 224
18264+
StartChar: uni0E99.sub
18265+
Encoding: 3817 -1 224
1825018266
Width: 0
1825118267
VWidth: 3390
1825218268
GlyphClass: 4
@@ -18287,6 +18303,7 @@ SplineSet
1828718303
-476 -536 -435 -495 -435 -453 c 2
1828818304
-435 -372 l 1
1828918305
EndSplineSet
18306+
Ligature2: "'ccmp' TN subjoins" uni0EBA uni0E99
1829018307
EndChar
1829118308

1829218309
StartChar: uni1A7D
@@ -18317,5 +18334,19 @@ SplineSet
1831718334
-990 1780 -1050 1776 -1100 1764 c 1
1831818335
EndSplineSet
1831918336
EndChar
18337+
18338+
StartChar: dummy
18339+
Encoding: 0 -1 226
18340+
Width: 0
18341+
Flags: W
18342+
LayerCount: 2
18343+
EndChar
18344+
18345+
StartChar: uni0E98
18346+
Encoding: 3736 3736 227
18347+
Width: 0
18348+
Flags: W
18349+
LayerCount: 2
18350+
EndChar
1832018351
EndChars
1832118352
EndSplineFont

0 commit comments

Comments
 (0)