Library
Update : UniMM is closely aligning with new myanmar unicode character allocation pipeline. This book data and informations may not relevant anymore in some area. If you have doubt, please contact me to seek latest update.
UniMM Font Library and Ligatures

One unit, One font, One Source which is open and give you freedom, the "UniMM"
This library meant the re-useable work for developers. This library has the UniMM naming standard for those extra glyphs(identical to how much glyphs pertaining) and Adobe naming standard for Unicode range. This is one of the Core for implementing digital font. I, have written in as of no warranty. If you were log in, you can comment on it. If you want to make your contribution on this library, please contact haalaaluu[at]users[dot]sourceforge[dot]net.
UniMM lastest SVN trunk can browse at: svnroot/uniburma/unimm
Opentype Table
For OTL Feature Tags, we still do not have official Burmese OpenType Specification like Khmer OpenType Specification. This OTL is still under developing though it is well-tested and working. Please read Solution Chapter 3 for implementation approach.
This is still Beta and pending for vowel, context shaping and kinzi. You might want to try SVN trunk for lastest source.
GDEF
The lastest GDEF table can browse and download at SVN trunk:
-OpenType Tables
-'GDEF' Glyph Definition Table
-Glyph Definition Sub-Table
uni0000 Base
space Base
uni1000 Base
uni1001 Base
uni1002 Base
uni1003 Base
uni1004 Base
uni1005 Base
uni1006 Base
uni1007 Base
uni1008 Base
uni1009 Base
uni100A Base
uni100B Base
uni100C Base
uni100D Base
uni100E Base
uni100F Base
uni1010 Base
uni1011 Base
uni1012 Base
uni1013 Base
uni1014 Base
uni1015 Base
uni1016 Base
uni1017 Base
uni1018 Base
uni1019 Base
uni101A Base
uni101B Base
uni101C Base
uni101D Base
uni101E Base
uni101F Base
uni1020 Base
uni1021 Base
uni1022 Base
uni1023 Base
uni1024 Base
uni1025 Base
uni1026 Base
uni1027 Base
uni1029 Base
uni102A Base
uni102C Base
uni102D Base
uni102E Base
uni102F Base
uni1030 Base
uni1031 Base
uni1032 Base
uni1036 Base
uni1037 Base
uni1038 Base
uni1039 Base
uni1040 Base
uni1041 Base
uni1042 Base
uni1043 Base
uni1044 Base
uni1045 Base
uni1046 Base
uni1047 Base
uni1048 Base
uni1049 Base
uni104A Base
uni104B Base
uni104C Base
uni104D Base
uni104E Base
uni104F Base
uni1050 Base
uni1051 Base
uni1052 Base
uni1053 Base
uni1054 Base
uni1055 Base
uni1056 Base
uni1057 Base
uni1058 Base
uni1059 Base
aa_tall_1 Base
aa_tall_2 Ligature
kinzi Base
sub_con_ka Ligature
sub_con_kha Ligature
sub_con_ga Ligature
sub_con_gha Ligature
sub_con_nga Ligature
sub_con_ca Ligature
sub_con_cha Ligature
sub_con_ja Ligature
sub_con_tta Ligature
sub_con_ttha Ligature
sub_con_dda Ligature
sub_con_ddha Ligature
sub_con_nna Ligature
sub_con_ta Ligature
sub_con_tha Ligature
sub_con_da Ligature
sub_con_dha Ligature
sub_con_na Ligature
sub_con_pa Ligature
sub_con_pha Ligature
sub_con_ba Ligature
sub_con_bha Ligature
sub_con_ma Ligature
sub_con_la Ligature
sub_con_sa Ligature
sub_con_a Ligature
med_ya Ligature
med_ra Ligature
med_wa Ligature
med_ha Ligature
med_ha_102f Ligature
tall_102f Base
tall_1030 Base
com_med_ya_ha Ligature
stack_nna_dda Ligature
rare_ddha_dda Ligature
wa_ha Ligature
med_ha_small Base
bot_medra_small Base
bot_medra_big Base
top_medra_small Base
top_medra_big Base
med_ra_big Base
ra_shape Base
ta_wa_small Base
U_cut Base
nnya_cut Base
double_101e Base
notail_na Base
multi_1 Ligature
multi_2 Ligature
multi_3 Ligature
multi_4 Ligature
multi_5 Ligature
afii61664 Base
afii301 Base
sub_dot1 Base
sub_dot2 Base
exclam Base
quotedbl Base
numbersign Base
dollar Base
percent Base
ampersand Base
quotesingle Base
parenleft Base
parenright Base
asterisk Base
plus Base
hyphen Base
period Base
slash Base
zero Base
one Base
two Base
three Base
four Base
five Base
six Base
seven Base
eight Base
nine Base
colon Base
semicolon Base
less Base
equal Base
greater Base
question Base
at Base
uni00A0 Base
currency Base
section Base
logicalnot Base
degree Base
paragraph Base
periodcentered Base
bullet Base
uni25CC Base
square Base
-Ligature Caret Sub-Table
+'GPOS' Glyph Positioning Table
+'GSUB' Glyph Substitution Table
+Apple Advanced Typography
GSUB
The lastest GSUB table can browse and download at SVN trunk:
-OpenType Tables
+'GDEF' Glyph Definition Table
+'GPOS' Glyph Positioning Table
-'GSUB' Glyph Substitution Table
-'mymr' Myanmar writing system|Script
-'dflt' Default Language
-'calt' Contextual Alternates
Chaining Substitution by classes
Backtrack class 1: uni1001 uni1002 uni1004 uni1012 uni1015
Backtrack class 2: uni1009 uni100A uni100B uni100C uni100D uni1020 uni1023 uni1025 uni1026 uni1029
Backtrack class 3: uni102D uni102E uni1036
Backtrack class 4: uni1031
Backtrack class 5: sub_con_da
Backtrack class 6: sub_con_ka sub_con_kha sub_con_ga sub_con_gha sub_con_nga sub_con_ca sub_con_cha sub_con_ja sub_con_tta sub_con_dda sub_con_nna sub_con_ta sub_con_tha sub_con_dha sub_con_na sub_con_pa sub_con_pha sub_con_ba sub_con_bha sub_con_ma sub_con_la sub_con_sa sub_con_a med_ya med_ra med_wa wa_ha ta_wa_small
Backtrack class 7: uni1000 uni1003 uni1006 uni100F uni1010 uni1011 uni1018 uni101A uni101C uni101E uni101F uni1021
Class 1: uni102C
Class 2: uni102F uni1030
Class 3: uni1014 uni101B
Class 4: uni1000 uni1001 uni1002 uni1003 uni1004 uni1005 uni1006 uni1007 uni1008 uni1009 uni100A uni100B uni100D uni100E uni100F uni1010 uni1011 uni1012 uni1013 uni1015 uni1016 uni1017 uni1018 uni1019 uni101A uni101C uni101D uni101E uni101F uni1020 uni1021 uni1025
Class 5: uni1031
Class 6: med_ra
Lookahead class 1: uni102F uni1030
Lookahead class 2: sub_con_ka sub_con_kha sub_con_ga sub_con_gha sub_con_nga sub_con_ca sub_con_cha sub_con_ja sub_con_tta sub_con_dda sub_con_nna sub_con_ta sub_con_tha sub_con_da sub_con_dha sub_con_na sub_con_pa sub_con_pha sub_con_ba sub_con_bha sub_con_ma sub_con_la sub_con_sa sub_con_a med_ya med_ra med_wa med_ha med_ha_102f wa_ha ta_wa_small
Lookahead class 3: uni1031
Lookahead class 4: uni102D uni102E uni1036
Lookahead class 5: kinzi
-Rule 0
Backtrack class: 1
Class1
-Apply at 0 'tall'
-Rule 1
Backtrack class: 5
Class1
-Apply at 0 'tall'
-Rule 2
Backtrack class: 2
Class2
-Apply at 0 '2f30'
uni102F => tall_102f
uni1030 => tall_1030
-Rule 3
Backtrack classes: 2 3
Class2
-Apply at 0 '2f30'
uni102F => tall_102f
uni1030 => tall_1030
-Rule 4
Backtrack class: 5
Class2
-Apply at 0 '2f30'
uni102F => tall_102f
uni1030 => tall_1030
-Rule 5
Backtrack class: 6
Class2
-Apply at 0 '2f30'
uni102F => tall_102f
uni1030 => tall_1030
-Rule 6
Class3
Lookahead class: 1
-Apply at 0 'tail'
uni1014 => notail_na
uni101B => ra_shape
-Rule 7
Class3
Lookahead class: 2
-Apply at 0 'tail'
uni1014 => notail_na
uni101B => ra_shape
-Rule 8
Class3
Lookahead class: 4
-Apply at 0 'tail'
uni1014 => notail_na
uni101B => ra_shape
-Rule 9
Backtrack class: 7
Class6
-Apply at 0 'MRA3'
med_ra => med_ra_big
bot_medra_small => bot_medra_big
top_medra_small => top_medra_big
-Rule 10
Class6
Lookahead class: 2
-Apply at 0 'MRA1'
med_ra => bot_medra_small
-Rule 11
Class6
Lookahead class: 4
-Apply at 0 'MRA2'
med_ra => top_medra_small
-'calt' Contextual Alternates
Chaining Substitution by coverage
-Rule 0
Coverage 0: uni1000 uni1001 uni1002 uni1003 uni1004 uni1005 uni1006 uni1007 uni1008 uni1009 uni100A uni100B uni100C uni100D uni100E uni100F uni1010 uni1011 uni1012 uni1013 uni1014 uni1015 uni1016 uni1017 uni1018 uni1019 uni101A uni101B uni101C uni101D uni101E uni101F uni1020 uni1021
Lookahead coverage 1: uni1031
-Apply at 0 'U31A'
uni1000 => uni1031 uni1000
uni1014 => uni1031 uni1014
uni101B => uni1031 uni101B
uni101E => uni1031 uni101E
-'calt' Contextual Alternates
Chaining Substitution by coverage
-Rule 0
Back coverage -1: uni1031
Coverage 0: uni1000 uni1001 uni1002 uni1003 uni1004 uni1005 uni1006 uni1007 uni1008 uni1009 uni100A uni100B uni100C uni100D uni100E uni100F uni1010 uni1011 uni1012 uni1013 uni1014 uni1015 uni1016 uni1017 uni1018 uni1019 uni101A uni101B uni101C uni101D uni101E uni101F uni1020 uni1021
Coverage 1: uni1031
-Apply at 0 'U31B'
uni1000 <= uni1000 uni1031
uni1014 <= uni1014 uni1031
uni101B <= uni101B uni1031
uni101E <= uni101E uni1031
-'ccmp' Glyph Composition/Decomposition
com_med_ya_ha <= med_ya med_ha
stack_nna_dda <= uni100F sub_con_dda
rare_ddha_dda <= uni100E sub_con_dda
wa_ha <= med_wa med_ha
multi_1 <= med_ya med_wa
multi_2 <= med_ya med_wa med_ha
multi_3 <= med_ya sub_con_ca
multi_4 <= uni100B sub_con_tta
multi_5 <= uni100D sub_con_dda
-'liga' Standard Ligatures
sub_con_ka <= uni1039 uni1000
sub_con_kha <= uni1039 uni1001
sub_con_ga <= uni1039 uni1002
sub_con_gha <= uni1039 uni1003
sub_con_nga <= uni1039 uni1004
sub_con_ca <= uni1039 uni1005
sub_con_cha <= uni1039 uni1006
sub_con_ja <= uni1039 uni1007
sub_con_tta <= uni1039 uni100B
sub_con_dda <= uni1039 uni100D
sub_con_nna <= uni1039 uni100F
sub_con_ta <= uni1039 uni1010
sub_con_tha <= uni1039 uni1011
sub_con_da <= uni1039 uni1012
sub_con_dha <= uni1039 uni1013
sub_con_na <= uni1039 uni1014
sub_con_pa <= uni1039 uni1015
sub_con_pha <= uni1039 uni1016
sub_con_ba <= uni1039 uni1017
sub_con_bha <= uni1039 uni1018
sub_con_ma <= uni1039 uni1019
sub_con_la <= uni1039 uni101C
sub_con_sa <= uni1039 uni101E
sub_con_a <= uni1039 uni1021
med_ya <= uni1039 uni101A
med_ra <= uni1039 uni101B
med_wa <= uni1039 uni101D
med_ha <= uni1039 uni101F
-'rlig' Required Ligatures
aa_tall_2 <= aa_tall_1 uni1039
med_ha_102f <= med_ha uni102F
+Apple Advanced Typography
AAT
State machine or AAT respectively..
Classes
These are the class group of Myanmar (Burmese script) characters. Lastest classes and its standalone html files can browse and download from SVN trunk: /trunk/font/html/
Match Classes
| Class No |
Glyph Group |
| 1 |
uni102C |
| 2 |
uni102F uni1030 |
| 3 |
uni1014 uni101B |
| 4 |
[more] |
| 5 |
[more] |
| 6 |
[more] |
Back Classes
| Class No |
Glyph Group |
| 1 |
uni1001 uni1002 uni1004 uni1012 uni1015 |
| 2 |
uni100A uni100B uni100C uni100D uni1020 uni1023 uni1025 uni1026 uni1029 |
| 3 |
[more] |
| 4 |
[more] |
| 5 |
[more] |
| 6 |
[more] |
Ahead Classes
| Class No |
Glyph Group |
| 1 |
uni102F uni1030 |
| 2 |
sub_con_ka sub_con_kha sub_con_ga sub_con_gha sub_con_nga sub_con_ca sub_con_cha sub_con_ja sub_con_tta sub_con_dda sub_con_nna sub_con_ta sub_con_tha sub_con_da sub_con_dha sub_con_na sub_con_pa sub_con_pha sub_con_ba sub_con_bha sub_con_ma sub_con_la sub_con_sa sub_con_a med_ya med_ra med_wa med_ha med_ha_102f wa_ha ta_wa_small |
| 3 |
[more] |
| 4 |
[more] |
| 5 |
[more] |
| 6 |
[more] |
Functions
These are UniMM substitution functions list. Lastest functions and its standalone html files can browse and download from SVN trunk: /trunk/font/html/
Unicode Standard Features
| UniMM Sub Fn: Name/Standard |
Unicode |
Non-Unicode |
| tall |
uni102C |
aa_tall_1 |
| 2f30 |
uni102F uni1030 |
tall_102f tall_1030 |
| tail |
uni1014 uni101B |
notail_na ra_shape |
| |
|
|
| |
|
|
| |
|
|
| |
|
|
GDL
UniMM.gdl
This is UniMM module for Graphite Description Language and Graphite enable program. This module base on Mr.Martin Hosken's myanmar.gdl
{under development, may be or may not be achieved}
For Graphite, Paduak is better choice for now. Currently, UniMM focus on Opentype and AAT.
Extra Features
Font Internal Extra Features
Features are a set of functions which UniMM enhance to support writing and grammar concept. But it is not a strict rule for font to have these features. Somehow, grammar and writing is responsibility of writer(s) or typewriter(s), and he/she must check whether his/her burmese writing is grammatically or not. These are just the features which respect to grammatically writing. Not a standard or Encoding or Limitation. This extra features may be or may not be achieved, though theorically can be done. These extra features are just a modifications of font creator(s) which he/she thought that to do. But it is also important for font creator(s) to make sure themself that they won't break the rule of standard encoding by doing (_these_) extra features. Perhaps, checking grammar or writing must be done by another module or another 3rd party program/software. Not necessary in __Ordinary Digital Font__ itself but for the sake of future technology, __Smart Font__ [sil | wiki | MS-Urdu Example].
GPOS Always True
UniMM will correctly display only if user(s) type in:
- uni102D followed by uni1037
Other Forms
Other Form or Extra Glyphs or Glyphs Formations
