本发明涉及藏文信息处理技术领域,具体涉及一种藏文字体的opentype字库的设计方法。
背景技术
本发明所用到的缩略语和关键术语定义
藏字:表示一个藏文音节的藏文字符简称为藏字,也称为藏文的一个音节。
基字:构成藏字的必备构件,以基字为核心,将其和前加字、上加字、后加字、下加字、元音、再后加字、(再下加字)进行组合构成藏字。
前加字:
上加字:
下加字:
后加字:
再后加字:
元音:
再下加字:
现代藏字:藏字是由藏文的图形字符拼写构成的,这些字符包括了现代藏文字符、梵音藏文字符、古藏文字符以及藏文特殊字符。所谓的现代藏字是指符合现代藏文文法规则的藏字,不包括撰写梵音藏文字符、不符合现代文法的古藏文字符。
基本字形(baseglyph):把藏文一个辅音字符,或几个辅音字符纵向叠加构成的完整的书写整体的字形,如图1中的1部分。
基-上(above-base):把位于基本字形以上的部分称为基-上。如图1的2部分。
基-下(below-base):而位于基本字形以下的部分称为基-下(below-base),如图1中的3部分。
前导辅音(headconsonants):在藏文字符的纵向组合中,用于开始组合的,叠加在最上面的辅音字母称为前导辅音(headconsonants)。在unicode中编码u+0f40至u+0f6c的藏文辅音作为前导辅音和非纵向叠加的辅音。
组合用辅音(sub-joinedconsonants):除前导辅音外的其他组合用的辅音都称为组合用辅音(sub-joinedconsonants)。在unicode中编码u+0f90至u+0fbc的藏文辅音作为组合用辅音。
梵音藏字:用于转写梵文字符读音的藏文字符。
字头线:藏文字符在书写时,以水平的一条直线作为基本字形字头对齐的基准线,该水平直线称为字头线。
1.现代藏字的一般结构
藏字字形结构均以一个辅音字母为核心,其余字母均以此为基础前后附加和上下叠加,组合成一个完整的字表结构。通常现代藏字字形结构最少为一个辅音字母,即单独由一个基字构成;最多由6个辅音字母和一个元音符号构成。元音不能独立书写,只能加在辅音字母的上部或下部。核心字母叫“基字”,30个辅音字母均可作基字,其余字母的称谓均根据加在基字的部位而得名。即加在基字前的字母叫“前加字”,加在基字上的字母叫“上加字”,加在基字下面的字母叫“下加字”,加在基字后面的字母叫“后加字”,后加字之后再加字母叫“再后加字”或“重后加字”。
现代藏字由三十个辅音字母和四个元音符号(简称为元音)拼写组合而成,藏文的纵向叠加只是在基字的上下,而前加字、后加字、再后加字均为无叠加的单一辅音字母。在现代藏文文法中,对藏文字符构成藏字有很严格的约束,一个藏字可有一到七个字符构成,其中基字是构成藏字必不可少的构件,其它位置上构件的有无因字而不同。藏文的音节最多由七字符构成,如图2所示,一个藏字一般只有一个元音符号。四个元音中第二元音叠加在辅音字符(块)的下面(图2中下面的圆圈表示元音),而第一、第三和第四元音叠加在辅音字符(块)的上面(图2中上面的圆圈表示的元音)。图3是7个构件的藏字实例。
2.梵音藏文字符的结构
在现代藏文文法中,对藏文字符构成藏字有很严格的约束。梵音藏字用于转写梵文字符的读音,在构成字符时藏文文法并没有进行约束,字形不仅有横向组合,同时也有纵向叠加,而且不同于现代藏文字符,纵向叠加从二层到多次,每层的字符也是不确定的。如图4所示。
3.藏文字形的结构
藏文字形包括现代藏文字符、梵音藏文字符、古藏文字符以及藏文特殊字符的字形。藏文字形不仅有横向拼写性,同时也有纵向拼写性,书写是非线性的二维阵列方式,如图1所示。把一个辅音字符,或几个辅音字符纵向叠加形成的完整的书写整体的字形称为基本字形(baseglyph),如图1中1的部分,设计字库时,基本字形作为选择字库中字符的依据;把位于基本字形以上的部分称为基-上(above-base),如图1的2部分;而位于基本字形以下的部分称为基-下(below-base),如图1的3部分。辅音字母在组合叠加时,有的会“变形”(用另一个的字形代替原来的辅音字形),而有的不管是否组合都只有一个字形。在组合字符中,用于开始组合的,叠加在最上面的辅音字母称为前导辅音(headconsonants);除前导辅音外的其他组合用的辅音都称为组合用辅音(sub-joinedconsonants)。辅音字符以组合和非组合两种方式来构成藏字,非组合辅音字符与前导辅音字符使用相同的编码(u+0f40-u+0f6c),而组合用辅音的编码(u+0f90-u+0fbc)有所不同。图5所示。
现有技术一:2005年,唐英敏在“第十届全国少数民族语言文字信息处理学术研讨会”上的《基于opentype的藏文文字处理方法》一文分析iso/iec10646和unicode国家标准对藏文的编码方式,提出了应该用opentype字体设计技术,文章简介介绍了opentype技术,举例说明了可以用opentype技术设计藏文字库,并没有全面地介绍怎么用。
现有技术二:2005年,高定国、龚育昌在“第十届全国少数民族语言文字信息处理学术研讨会”上的《设计opentype藏文白体字库的技术研究》一文分析当时ttf字库的缺点,介绍了opentype的标记、藏字定型引擎工作过程,举例说明了opentype中藏文特征标记的用法,并没有从藏文字库设计的需求来说明怎么用。
现有技术三:2006年,格桑多吉、强巴发表在《西藏大学学报》上的《opentype技术在藏文字库中的应用》一文中提出了应用opentype字库设计技术可以克服字库文件大、编码混乱、系统间相互不兼容、不支持internet藏文信息交换等诸多问题。针对藏文处理系统的现状提出应该使用opentype字库设计技术。
该文在分析当时藏文信息处理的诸多问题后,提出了应该使用opentype技术设计藏文字库的观点,文中也只是通过简单地列举了opentype的一些布局表的应用,只是说了能用,并没有说怎么用。
现有技术四:2006年,欧珠在“中国中文信息学会二十五周年学术会议”上的《藏文字体的opentype特征》一文分析了藏文具备了作为一种复杂文本语言的基本特征和国际标准中藏文的编码模式后,只是简单介绍了opentype字体的特征标记、定形引擎的工作过程。和技术方案二类似,只是简单介绍了能用opentype技术设计藏文字库和应用用该技术设计藏文字库,并没有说怎么用。
现有技术五:2008年,曹晖发表在《西北民族大学学报(自然科学版)》上的《藏文opentype字体技术研究及实现》一文在介绍藏文字特点的基础上,简单介绍了opentype字体的优势、文件结构和布局表。opentype特征的实现中也只是简单地从输入到opentype特征的执行的过程,并没有讨论怎么用来设计字库。
现有技术六:2008年,高定国、格西斯满发表在《西藏大学学报(自然科学版)》上的《藏文字库设计中opentype特征标记的应用研究》一文对应用于藏文上的每种opentype特征标记进行了介绍。
和技术方案二类似,该文通过实例介绍了opentype特征在藏文字库设计中的用法,但也没有提升为设计藏文字库设计的方法,并没有从藏文字库设计的需求来说明怎么用,提升为设计藏文字库的方法。
现有技术七:2011年,刘永宏、张成英发表在《中国远程教育》上的《opentype技术在藏文教育网站页面显示中的实现与应用》一文结合藏文字符的结果特点和当时藏文教育网站字符的显示中存在的问题,简单地讨论了opentype技术在藏文教育网站页面显示中的应用和实现过程,并没有讨论opentype藏文字库的设计问题。
以上这些论文仅从理论上简单说明藏文信息处理中应该应用opentype技术设计藏文字库、对opentype字库设计中特征标记的简介、或opentype特征标记在简单用法,并没有提升为怎么用opentype特征标注设计藏文字符的方法;以上所有讨论针对藏文白体一种字形,并没有把方法推广到不同藏文字体的所有字库的设计上。
技术实现要素:
本发明的目的在于克服现有技术缺点和藏文unicode设计的缺陷,提出一种藏文字体的opentype字库设计方法,把unicode编码中可能参与纵向叠加的藏文字符和构件“组合块”的编码拆分为基本构件编码的基础上、分析编码确定藏文基本字形及基-下部分是否有叠加,如果有叠加则进行叠加处理;再处理基-上部分的变形处理和其他不同类别的变形处理。按照该方法设计的不同字体的藏文字形都能够正确地将录入的所有藏文字符进行显示和打印。
本发明通过如下技术方案实现:
一种藏文字体的opentype字库设计方法,包括以下步骤:
s1.分析unicode中收录的藏文字符,为了克服藏文基本集设计的缺陷,适应不同用户不同的输入,把unicode中藏文可能参与纵向叠加的19个藏文字符“组合块”的编码拆分为构件编码;
s2.分析藏文音节编码,通过藏文音节编码中判断历算占星符、着重符、装饰符、变音符号、长元音第二元音符9个符号和组合用辅音字符38个字符共47个字符判断基本字形及基-下部分是否有藏文字符纵向叠加情况;
s3.处理基本字符及基-下部分的藏文字符纵向叠加;
s4.处理基-上部分的上元音、变音符号之间两两组合,处理基-上字符本身的变形;
s5.处理藏文字符其他不同类别的变形,完成从藏文编码到正确字形的确定。
作为优选,s3具体如下:
s31:为判断藏文纵向叠加的47个字符建立一个“类别”,通过判断该类别中的字符数来判断藏文纵向叠加的层数。
s32:把藏文基本字形替换为不同层数的组合字符,其基本方法如下:
1)设计纵向叠加的字形。选择设计纵向叠加2至4层的前导字符和组合用字符的字形。选择了42个前导字符,每个前导字符又分为用于2层、3层、4层及多层的3种字形,共设计了42*3=126个前导字形。选择了47个组合用字符,每个组合用字符又分为用于2层、3层、4层及多层的3种字形,共设计47*3=141个组合用字形。
2)分析藏文纵向叠加的层数,按照不同的藏字纵向叠加的层数,利用opentype特征标记“blws”把基-下部分中的辅音有条件地替换为不同层数的前导字符或组合用字符。
s33:对于藏文字符非一体化纵向叠加,分不同的层数,用不同层数的前导字符和组合用字符直接叠加,利用opentype的基-下定位标记“blwm”调整位置,使得各纵向叠加字符的位置正确。
s34:把纵向叠加中频率较高的、固定的“连接”在一起的纵向组合字符进行预组合,设计为完全一体化的字形。
s35:对选择的完全一体化的字形,设计叠加完全一体化的预组合字符。
进一步地,s34中选择的设计为完全一体化的预组合字符如下:
1)按照现代藏文文法选择33个上加字与基字的两层叠加、25个基字与下加字的两层叠加、14个上加字、基字与下加字的三层叠加共72个为固定字形。
2)以上1)中72个字符与藏文第二元音
3)藏文基本辅音uni0f40-uni0f6c共44个基本字符与藏文第二元音
4)藏文基本辅音uni0f40-uni0f6c中非叠加的38个基本字符与藏文字符
5)藏文基本辅音uni0f40-uni0f6c中非叠加的38个基本字符和
6)除去25个基字与下加字的两层叠加的预组合字符外,按照不同字体的设计需求,藏文基本辅音uni0f40-uni0f6c中非叠加的字符与下加字
7)按照不同的藏文字形选择频率较高的不固定的一些纵向叠加预组合为固定字形。
进一步地,所述s35中设计叠加完全一体化的预组合字符的具体步骤如下:
1)设计藏文字符纵向叠加预组合一体化字形。
2)利用opentype布局表的基-下替换“blws”调用藏字一体化纵向叠加预组合字形。
进一步地,设计和应用藏文字符纵向叠加部分预组合字符的具体方法如下:
1)设计藏字纵向叠加部分预组合一体化字形,按照
三层纵向叠加藏文字符中第一个组合用字符中出现
四层纵向叠加藏文字符中第一个组合用字符中出现
三层纵向叠加藏文字符中第二个组合用字符中出现
四层纵向叠加藏文字符中第二个及以上组合用字符中出现
2)按照藏字纵向叠加部分预组合字形与藏字的其他构件纵向叠加的位置不同,利用opentype的基-下定位标记“blwm”分不同情况调整组合字符的位置,使得纵向叠加的位置正确。
作为优选,s4中处理基-上部分的上元音、变音符号之间两两组合的方法如下:
1)设计6个上元音符号
2)利用opentype的组合-分解特征标记“ccmp”建立基-上部分的映射关系。
作为优选,s4中处理基-上字符本身的变形的方法如下:
1)设计基-上部分6个上元音符号
2)利用opentype的基-上替换特征标记“abvs”进行条件替换,对满足一定条件的基本字符上基-上字符时基-上字符替换为变形后的字形。
进一步地,利用opentype的基-上定位特征标记“abvm”来调整多重基-上部分之间的位置关系,使得多重基-上部分间的相对位置正确。
作为优选,s5具体如下,设计和应用藏文同一字符在不同位置时变形的方法如下:
1)根据不同的藏文字体研究藏文同一字符在不同位置时的变形规律,字库中设计变形后的字形。
2)利用opentype的基-下替换特征标记“blws”进行条件替换,同一字形按一定的条件设计变形规律。
作为优选,s5具体如下,设计和应用不同构件组合变形的方法如下:
1)根据不同的藏文字体研究藏文不同构件组合变形的规律,字库中设计变形后的组合字形。
2)利用opentype的基-下替换特征标记“blws”进行条件组合替换,对不同构件组合后按一定的条件设计变形规律。
与现有技术相比,本发明具有如下有益效果:
1、自适应性强。克服unicode中藏文字符基本集的设计缺陷,适应不同用户对unicode中收录的藏文字符的不同理解,能正确地显示和打印不同的输入。
2、设计方法的完备性。藏文字形包括现代藏文字符、梵音藏文字符、古藏文字符以及藏文特殊字符的字形。本方法设计的藏文字库不仅能满足所有现代藏文字符的打印和显示,而且也能满足梵音藏字不确定叠加字符和叠加层数的任何字符的纵向叠加,能正确打印和显示所有藏文字符的输入。
3、适用性好。藏文字符中现代藏文字符的出现的频率很好,按照藏文文法的限制,优选现代藏字字符中的叠加字符设计为“预组合”字形,使得字符“完备”的同时高频字形稳定、漂亮,满足字库的“美观性”。
4、兼容性强。本藏文opentype字库设计方法不是针对某种特殊的藏文字形,而普遍适用于所有的藏文字形的opentype字库设计。
附图说明
图1为藏文字形的三部分说明图;
图2为现代藏字的一般结构示意图;
图3为7个构件的藏字实例;
图4为多层梵音藏文字符的结构示意图;
图5为unicode标准10.0中藏文字符的编码标准;
图6为本发明实施例中藏文字体opentype字库设计方法的总流程;
图7为本发明实施例中藏文基本字形及基-下叠加字形的处理流程;
图8为本发明实施例中三层中前导辅音与部分预组合字形组合示例图;
图9为本发明实施例中三层中部分预组合字形与组合用字形组合实例图;
图10为本发明实施例中四层及以上中前导辅音与部分预组合字形组合实例图;
图11为本发明实施例中四层及以上中前导字符部分预组合与其他字符的组合实例图;
图12为本发明实施例中四层及以上中组合用部分预组合字形与其他字符的组合实例图;
图13为本发明实施例中基-上部分多重组合实例图;
图14为本发明实施例中藏文同一字符在不同位置时的变形实例图;
图15为本发明实施例中不同构件组合变形实例图。
具体实施方式
以下结合附图对本发明内容做进一步说明。
藏文字符编码的分析是获得正确藏文字形的先决条件,只有正确识别了藏文字符的构件后,才能分析编码处理基本字形及基-下的叠加、基-上的变形和其他不同类别的变形,确定出藏文的正确字形。本发明方案由unicode编码中可能参与纵向叠加的藏文字符和构件“组合块”的编码拆分为基本构件编码、分析编码确定基本字形及基-下叠加、基-上部分变形处理、其他不同类别的变形四个步骤及四部分组成。本发明方案中藏文字体opentype字库设计方法的总流程如图6所示。
一、“组合块”的编码拆分为构件编码
unicode藏文基本集编码国际/国家标准由于收录字符的标准不同,导致在使用藏文基本集时产生严重的歧义。标准中收录了藏文最基本的构件,如:u+0f0b、u+0f0d、u+0f21、u+0f40、u+0f72等,这些构件是不能再拆分的,是组成藏文字符最小的单位;也有几个构件组合但又没有构成一个完整藏文构件的“组合块”,如:u+0f77、u+0f79等,这些“构件组合块”可以通过其它基本的构件组合得到;还有一些完整的藏文字符,如:u+0f00、u+0f02等。由于unicode中藏文字符收录的不一致性,导致了二义性。为了克服藏文基本集设计的缺陷,适应不同用户不同的输入,把unicode中藏文可能参与纵向叠加的19个字符拆分为构件,具体方法如下:
本发明按照unicode中出现的可以作为纵向叠加的非最小构件的19个藏文字符和藏文构件的“组合块”拆分为藏文基本构件,如表1所示。
表1unicode中需拆分的藏文字符和藏文构件“组合块”
具体而言,详细的处理过程如下:
本发明按照opentype字形uniscribe的藏文定型引擎(tibetanshapingengine)的工作原理,首先取一个藏文音节的编码,再利用opentype特征标记“ccmp”,实现多样(一对多)替换,即把unicode中有可能参与纵向叠加的藏文字符编码和藏文构件的“组合块”的编码分解为几个构件编码,为进一步确定音节的字形奠定基础。
二、藏文基本字形及基-下叠加字形的处理
藏文字形包括现代藏文字符、梵音藏文字符、古藏文字符以及藏文特殊字符的字形。藏文字形不仅有横向拼写性,同时也有纵向拼写性,书写是非线性的二维阵列方式。现代藏文字符的纵向叠加的上加字、基字、下加字、第二元音符号的叠加都是确定的,并且出现的频率很好,字形要非常稳定、漂亮,要求字形设计的“美观性”;梵音藏字不仅也要纵向叠加,而且纵向叠加的层数和每层的用字不是确定的,需要对任何字符的纵向叠加也能进行处理,要求字形设计的“完备性”。藏文字库处理藏文字符的纵向叠加就是藏文字库设计的难点,本发明不仅保留现代藏字等高频纵向叠加字符“美观”的同时,而且完全处理梵音藏字等层数和叠加字符不确定的藏文字符的叠加的“完备”纵向叠加的处理,具体方法如下:
1、本发明中确定藏文字符是否有纵向叠加的方法
unicode藏文基本集编码国际/国家标准中主要用组合用辅音字母完成藏文纵向叠加。藏文字符的纵向叠加除了组合用藏文辅音字母外,还有历算占星符等一些特殊符号。本发明把用于纵向叠加的历算占星符
具体而言,详细的处理过程如下:
本发明按照opentype布局表设计的方法,建立一个名为“类别”,如:cg_4(glyphgroup)。
通过“类别”cg_4确定了藏文基本字形及基-下叠加字形有纵向叠加,则需处理藏文纵向叠加。藏文基本字形及基-下叠加字形处理的流程如图7所示。
2、本发明中确定藏文字符纵向叠加的层数
“类别”cg_4中字符就是用于组合的字符,只有一个藏文音节字中出现“类别”cg_4中一个字符就说明有一个基本字形及基-下的纵向叠加,即为2层。本发明简单通过判断一个藏文音节字中有几个“类别”cg_4中的字符来判断藏文字符纵向叠加的层数,简单地,“藏文字符纵向叠加的层数=藏文音节字中在cg_4中的字符数+1”来判断。
3、本发明中藏文基本字形替换为不同层数的组合字符
藏文在纵向叠加时,有些字形叠加只是简单地在一个字形上直接叠加一个字形,叠加后的字形并不成为一体,称为非一体化纵向叠加;而有些字形在叠加时两个或多个叠加字形连接起来构成一体,称为一体化纵向叠加。本发明为了显示和打印所有的古藏文、梵音藏字等,保证字库的“完备性”,采用任意前导字符与任意组合用字符的多层纵向叠加。本发明字库设计中字形分为2层、3层、4层及多层用的字形,每种又由于unicode编码的区别又分为前导字符和组合用字符。
具体而言,详细的处理过程如下:
(1)设计纵向叠加的字形
字的高度一定的情况下,纵向组合时每个叠加字符的高度都要发生变化,叠加的越多,每个字的高度要越小。本发明研究藏文字符叠加结构,从字库设计的适用性出发,选择了设计纵向叠加2至4层的前导字符和组合用字符的字形,又为了满足藏文字符的多层叠加,保证字库的完备性,考虑到4层叠加用字形高度已经很小了,有些字形已经无法再压低了,所以本发明选择用4层叠加字符来完成多层的叠加。
unicode中藏文字符纵向叠加前导字符除了从uni0f40到uni0f6c非组合的38个辅音外,还有uni0f88、uni0f8a、uni0f8b、uni0f8c4个字符,共42个字符。每个前导字符又分为用于2层、3层、4层及多层的3种字形,要设计42*3=126个字形。
叠加组合用字符有cg_4“类别”中的47个字符,分为用于2层、3层、4层及多层的3种字形,要设计47*3=141个字形。
(2)藏字纵向叠加字形的替换
利用opentype特征标记“blws”(below-basesubstitutions),实现一对一的条件替换。
当一个前导字符后出现一个组合用字符时,把前导字符替换为2层组合的前导字符。
例如:
当一个前导字符后出现两个组合用字符时,把前导字符替换为3层组合的前导字符。
例如:
当一个前导字符后出现三个及以上的组合用字符时,把前导字符替换为4层组合的前导字符。
例如:
当一个组合用字符前出现一个3层前导字符或一个3层组合用字符时,把组合用字符替换为3层组合的组合用字符。具体地,建立一个“类别”,如:class@singlefor3,其中包括3层用前导字符和3层组合用字符,利用opentype特征标记“blws”(below-basesubstitutions),实现一对一的条件替换。
例如:
当一个组合用字符前出现一个4层前导字符或一个4层组合用字符时,把组合用字符替换为4层组合的组合用字符。具体地,建立一个“类别”。如:class@singlefor4andsigns,其中包括4层用前导字符、4层组合用字符及一些符合,利用opentype特征标记“blws”(below-basesubstitutions),实现一对一的条件替换。
例如:
4、本发明中藏文字符非一体化纵向叠加的方法
本发明为了显示和打印所有的古藏文、梵音藏字等,保证字库的“完备性”,采用任意前导字符与任意组合用字符的多层纵向叠加。如果叠加字符没有“连接为一体”的情况下,按照不同的叠加层数调整位置直接叠加。
具体而言,详细的处理过程如下:
(1)三层字符直接叠加
三层字符直接叠加时,需要调整两个位置:三层前导字符与三层组合用字符的位置(二、三层间的位置);三层中间组合用字符与底层组合用字符的位置(一、二层间的位置)。
调整三层前导字符与三层组合用字符的位置时,建立一个“类别”,如:class@singlefor3up,其中包括三层组合字符的前导字符,利用opentype的基-下定位标记blwm(below-basemarkpositioning)调整位置,使得纵向叠加的位置正确。
例如:
调整三层中间组合用字符与底层组合用字符的位置时,由于该组合的两个字符都是同一个字形,利用opentype的blwm“below-basemarkpositioning”标记,调整底层的组合用字符相对于中间层组合用字符的位置,降低底层字符,使得与中间层组合用字符的位置正确。
例如:
降低的高度由藏文不同字形中三层组合用字符的高度决定。
(2)四层及多层字符直接叠加
四层及多层字符直接叠加时,也需要调整两个位置:四层前导字符与四层组合用字符的位置;四层组合用字符间的位置。
调整四层前导字符与四层组合用字符的位置时,建立一个“类别”,如:class@singlefor4up,其中包括四层组合字符的前导字符,利用opentype的基-下定位标记blwm(below-basemarkpositioning)调整位置,使得纵向叠加的位置正确。
例如:
调整四层及多层的组合用字符间的位置时,由于该组合的字符都是同一个字形,利用opentype的blwm“below-basemarkpositioning”标记,通过降低第二及其他组合用字符相对于其上层的组合用字符的相对位置,使得各组合用字符的位置正确。
例如:
降低的高度由藏文不同字形中四层组合用字符的高度决定。
5、本发明中藏文字符纵向叠加完全一体化的预组合字符设计方法
本发明为了字库的“完备性”,在保证了古藏文、梵音藏字等不确定字符的任意叠加外,为了字库的“适用性”,把纵向叠加中频率较高的、固定的“连接”在一起的纵向组合字符进行预组合,设计为完全一体化的字形,使得字形稳定、美观。
具体而言,详细的处理过程如下:
(1)选择现代藏字中固定的纵向叠加组合字符
现代藏字由三十个辅音字母和四个元音符号拼写组合而成,藏文的纵向叠加只是在基字的上下,而前加字、后加字、再后加字均为无叠加的单一辅音字母。在现代藏文文法中,对藏文字符构成藏字有很严格的约束,也就是对藏文字符的纵向叠加也有严格的约束。本发明按照现代藏文文法的规定,以文法规定允许纵向叠加的现代藏文字符为基础,按照不同的藏文字体的设计要求,选择了古藏文、梵音藏字中常见的纵向叠加字符。
①按照现代藏文文法选择了33个上加字与基字的两层叠加作为预组合字形,如表2所示。
表2上加字与基字的两层叠加
②按照现代藏文文法选择了25个基字与下加字的两层叠加作为预组合字形,如表3所示。
表3基字与下加字的两层叠加
③按照现代藏文文法选择了14个上加字、基字与下加字的三层叠加作为预组合字形,如表4所示。
表4三层叠加的字符
④现代藏文的四个元音符号中,第二元音符号叠加在辅音的下面与辅音组合为一体,故把以上的33个上加字与基字的两层叠加、25个基字与下加字的两层叠加、14个上加字、基字与下加字的三层叠加共72个字符与藏文第二元音
⑤藏文基本辅音uni0f40-uni0f6c共44个基本字符与藏文第二元音
⑥藏文基本辅音uni0f40-uni0f6c中非叠加的38个基本字符与藏文字符
⑦藏文基本辅音uni0f40-uni0f6c中非叠加的38个基本字符和
⑧除去25个基字与下加字的两层叠加的预组合字符外,按照不同字体的设计需求,藏文基本辅音uni0f40-uni0f6c中非叠加的字符与下加字
⑨按照不同的藏文字形选择频率较高的不固定的一些纵向叠加预组合为固定字形。
(2)藏字纵向叠加预组合一体化字形的设计
藏文一体化预组合字形选择了比较固定、频率较高的字形,这些预组合字形在字库中设计的美观性决定了整个字库的美观性,所以在字库设计时,制作要精细、要反复修改,保证所有预组合字形的美观。
(3)藏字纵向叠加预组合一体化字形的应用方法
利用opentype布局表的基-下替换blws(below-basesubstitutions)映射组合用字符与藏字一体化纵向叠加预组合字形间的关系。
例如:
6、本发明中藏文字符纵向叠加的部分预组合字符的设计与应用方法
当藏文字符在三层及以上纵向叠加时出现
具体而言,详细的处理过程如下:
(1)藏字纵向叠加部分预组合一体化字形的设计
三层纵向叠加藏文字符中第一个组合用字符中出现
四层纵向叠加藏文字符中第一个组合用字符中出现
三层纵向叠加藏文字符中第二个组合用字符中出现
四层纵向叠加藏文字符中第二个及以上组合用字符中出现
(2)藏字纵向叠加部分预组合一体化字形的应用方法
藏字纵向叠加部分预组合字形再与藏字的其他构件纵向叠加时,由于部分预组合所处的位置不一致,导致处理组合时的方式也不一致,所以按照以下不同的情况调整组合位置。
①三层中前导辅音与部分预组合字形的位置调整
此类是组合用字符与
例如:
②三层中部分预组合字形与组合用字形的位置调整
此类是前导辅音字符与
例如:
③四层及以上中前导辅音与部分预组合字形的位置调整
此类是一个组合用辅音字符与
例如:
④四层及以上中前导字符部分预组合字形与组合用辅音、部分预组合字形的位置调整
此类是一个前导辅音字符与
例如:
⑤四层及以上中组合用部分预组合字形与组合用辅音、部分预组合字形的位置调整
此类是一个组合用辅音字符与
例如:
三、基-上部分变形的处理
藏文在书写过程中,基-上部分主要是上元音和一些变音符号。由于基-上部分之间的不同组合、基-上部分添加的基本字形的不同而发生变化。
1、本发明对基-上部分之间组合的设计与应用方法
基-上部分的上元音、变音符号之间两两组合的频率非常高,组合时也不是两个符号简单地叠加,而是形状发生变化,融合为一体。为了字库的实用性、美观性需要重新设计组合后的字形,再建立映射关系。
具体而言,详细的处理过程如下:
(1)设计基-上部分组合字形
藏文基-上部分的组合中,主要是6个上元音符号
(2)基-上组合字形的应用方法
unicode藏文基本集编码国际/国家标准中收录的元音、变音符号中有两个组合字形
为了字库的适用性、美观性,需设计组合以上18个基-上部分,也利用opentype的组合-分解特征标记ccmp(glyphcomposition/decomposition)建立映射关系。
例如:
2、本发明对基-上字符本身变形的设计与应用方法
基-上部分在藏文文法中没有限制基本字形上的添加,可以添加在任何基本字形上,但很多基-上部分字形由于基本字形的不同而发生变化。
具体而言,详细的处理过程如下:
(1)设计基-上部分自身的变形字形
基-上部分自身的变形主要有6个上元音符号
(2)基-上字符自身变形的应用方法
建立一个“类别”,如:class@specialglyphs,其中包括基-上部分自身变形以后添加的藏文基本字形,利用opentype的基-上替换特征标记abvs(above-basesubstitutions)进行条件替换,对满足基本字符在specialglyphs中的字符添加基-上字符时基-上字符替换为变形后的字形。
例如:
3、本发明对基-上字符多重组合的应用方法
基-上部分独立或两两组合出现的频率很高,但在藏文缩写等情况下,也会出现基-上部分多重组合的现象,如图13所示。为了字库的“完整性”,本发明中以多重基-上部分相对定位来完成。
具体而言,详细的处理过程如下:
利用opentype的基-上定位特征标记abvm(above-basemarkpositioning)来调整多重基-上部分之间的位置关系,使得多重基-上部分间的位置正确。
例如:
四、藏文字符其他不同类别的变形处理
藏文按照不同的字体,也会出现藏文字形的不同的变形情况,可以分为字形本身的变形和字形的组合变形两种。藏文字形本身的变形主要是藏文构件处于不同的位置时发生变化,当藏文同一个字符处于前加字、上加字、下加字、后加字或再后加字时以不同的字形出现。如图14所示。在不同藏文字体中,也会出现很多不同部位上字符的组合变形,包括前加字与基字连写、后加字与音节符连写、元音符号与后加字连写、元音符号与音节符连写等不同构件连接组合发生变形的情况,如图15所示。
1、本发明对藏文同一字符在不同位置时变形的设计与应用
根据不同的藏文字体研究藏文同一字符在不同位置时的变形规律,字库中设计变形后的字形。如果变形有条件,则建立一个“类别”,如:class@postchapre,其中包括一些限制字符变形的字符,用于限制字形变形。利用opentype的基-下替换特征标记blws(below-basesubstitutions)进行条件替换,同一字形按一定的条件设计变形规律。
例如:
2、本发明对不同构件组合变形的设计与应用
根据不同的藏文字体研究藏文不同构件组合变形的规律,字库中设计变形后的组合字形。如果变形有条件,则建立一个“类别”,如:class@prosigns,其中包括一些限制组合字符变形的字符,用于限制字形组合变形。利用opentype的基-下替换特征标记blws(below-basesubstitutions)进行条件组合替换,对不同构件组合后按一定的条件设计变形规律。
例如:
本领域的普通技术人员将会意识到,这里所述的实施例是为了帮助读者理解本发明的实施方法,应被理解为本发明的保护范围并不局限于这样的特别陈述和实施例。本领域的普通技术人员可以根据本发明公开的这些技术启示做出各种不脱离本发明实质的其它各种具体变形和组合,这些变形和组合仍然在本发明的保护范围内。