亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        新標(biāo)準(zhǔn)體系下蒙古文變形顯現(xiàn)模型的設(shè)計(jì)與實(shí)現(xiàn)

        2013-04-23 12:26:13劉匯丹
        中文信息學(xué)報(bào) 2013年1期
        關(guān)鍵詞:蒙古文字庫(kù)字符

        王 震,劉匯丹,吳 健

        (1. 中國(guó)科學(xué)院 軟件研究所,北京 100190;2. 中國(guó)科學(xué)院大學(xué),北京 100049)

        1 引言

        世界上現(xiàn)存的語(yǔ)言文字有幾千種,統(tǒng)一的國(guó)際標(biāo)準(zhǔn)使得這些文字可以在計(jì)算機(jī)中兼容共現(xiàn)。但許多文字在顯示輸出的過程中,往往表現(xiàn)出比拉丁文字或漢字復(fù)雜得多的特征,其字符與字形并不是一一對(duì)應(yīng)而且變形規(guī)則相對(duì)復(fù)雜,這樣的文字統(tǒng)稱為“復(fù)雜文字”(complex script),其中包括阿拉伯文、印度文、蒙古文、維吾爾文、藏文等。在這些復(fù)雜文字中蒙古文是唯一從上到下豎寫、各列從左到右排列的拼音文字,并且在一個(gè)詞里各個(gè)字符是連寫的。蒙古文的名義字符和變形顯現(xiàn)字符之間是一對(duì)多關(guān)系[1]。蒙古文的編碼模型在一定程度上不同于Unicode中的任何一種其他文字,其在很多方面是最復(fù)雜的[2]。正因?yàn)槊晒盼脑谟?jì)算機(jī)處理中復(fù)雜的變形顯現(xiàn)特性,到目前為止Windows操作系統(tǒng)本身對(duì)蒙古文顯形的支持并不完善,現(xiàn)有的主流Linux發(fā)行版自身都不能支持蒙古文的正確顯形。

        2000年國(guó)際標(biāo)準(zhǔn)化組織ISO通過了國(guó)際標(biāo)準(zhǔn)ISO 10646(等同Unicode標(biāo)準(zhǔn))的蒙古文編碼[3],為蒙古文字字符集和編碼的統(tǒng)一制定了標(biāo)準(zhǔn)。但是蒙古文變形顯現(xiàn)字符集和控制字符使用規(guī)則尚無(wú)已經(jīng)實(shí)施的統(tǒng)一標(biāo)準(zhǔn),各個(gè)版本的字庫(kù)和蒙古文變形引擎名義字符到控制字符的變形規(guī)則和處理并不統(tǒng)一。國(guó)家標(biāo)準(zhǔn)《GB 25914-2010信息技術(shù) 傳統(tǒng)蒙古文名義字符、變形顯現(xiàn)字符和控制字符使用規(guī)則》(以下簡(jiǎn)稱《規(guī)則》)從2011年11月起開始實(shí)施,《規(guī)則》能解決蒙古文變形規(guī)則不統(tǒng)一的問題。這就需要按照該標(biāo)準(zhǔn)中的規(guī)則實(shí)現(xiàn)新的OpenType字庫(kù)和蒙古文變形引擎。

        本文按照《規(guī)則》中蒙古文變形規(guī)則,提出了一種通用高效的蒙古文變形顯現(xiàn)模型,并分別在Linux兩個(gè)主流的桌面環(huán)境KDE和GNOME的復(fù)雜文本布局引擎中實(shí)現(xiàn)了該模型。

        2 研究現(xiàn)狀

        2.1 復(fù)雜文本布局引擎發(fā)展現(xiàn)狀

        由于復(fù)雜文字的字符與字形對(duì)應(yīng)關(guān)系復(fù)雜,在處理時(shí)需要用到一些特殊的機(jī)制。復(fù)雜文本布局引擎就是操作系統(tǒng)中專門用來(lái)處理復(fù)雜文本布局和顯示的部件。

        復(fù)雜文本布局引擎的主要任務(wù)就是將Unicode文本字符串轉(zhuǎn)變成用于顯現(xiàn)的字形串[4],其對(duì)復(fù)雜文本的顯示支持主要通過OpenType技術(shù)實(shí)現(xiàn)。目前常見的復(fù)雜文本布局引擎中包括Uniscribe、ICU、Pango、Qt、Harfbuzz等。

        ? Uniscribe是微軟開發(fā)的在Windows下的文本布局引擎,它主要包括以下的部件: 把文字從輸入次序重排成為顯示次序、把文字按前后文做出適當(dāng)?shù)淖儞Q、按文字顯示的方向做出字符的替換。

        ? ICU是IBM公司開發(fā)的用于正確顯示Unicode編碼對(duì)應(yīng)的字形的文本布局引擎。它能夠提供對(duì)復(fù)雜文本的處理,并能夠加入新的代碼來(lái)支持對(duì)新的復(fù)雜文本的處理[5]。

        ? Pango是一個(gè)開源的自由函數(shù)庫(kù),用于高質(zhì)量的渲染國(guó)際化的文字。Pango被整合到多數(shù)Linux發(fā)行版中,Pango是模塊化設(shè)計(jì)的,核心的Pango布局引擎能夠用于處理不同的后端字體。同樣,對(duì)于阿拉伯文、蒙古文等構(gòu)成的復(fù)雜文本有相應(yīng)的模塊分別做處理。

        ? Qt庫(kù)是Linux KDE的基礎(chǔ),在Qt3.3.2及Qt之前的版本中將復(fù)雜文本布局支持融入在其文本顯示模塊中,在Qt4中使用Harfbuzz布局引擎來(lái)對(duì)復(fù)雜文本布局做單獨(dú)處理。

        ? Harfbuzz是一個(gè)新的OpenType布局引擎,已經(jīng)在Pango和最新版本的Qt4和Firefox4中使用。按照其作者的說法,Harfbuzz將來(lái)可能完全取代Pango,成為KDE和GNOME的底層文本布局庫(kù)。

        不同平臺(tái)上的復(fù)雜文本布局引擎不盡相同,但是這些引擎卻有很多共同特點(diǎn)。這些引擎在處理一個(gè)復(fù)雜文本字符串的時(shí)候一般都要經(jīng)過以下三個(gè)步驟。

        (1) 字符串分條目

        依據(jù)ISO標(biāo)準(zhǔn)化組織定義的雙向算法將字符串分成多個(gè)條目(item),要求每個(gè)條目中的字符具有同樣的文字和方向?qū)傩訹5]。

        (2) 條目?jī)?nèi)字符標(biāo)注

        對(duì)于條目?jī)?nèi)的字符按照字符屬性、上下文關(guān)系對(duì)每個(gè)字符進(jìn)行標(biāo)注,主要是對(duì)每一個(gè)字符貼上對(duì)應(yīng)的特征標(biāo)簽(features),便于在后面的操作中進(jìn)行字形替換。

        (3) 字形替換

        先將字符映射成對(duì)應(yīng)的字形,得到字形串與綁定在其上的標(biāo)簽值[5],然后通過查找OpenType的字形替換表(GSUB表),按照標(biāo)簽順序進(jìn)行字形替換,得到最終顯示字形。

        2.2 蒙古文變形引擎研究現(xiàn)狀

        目前蒙古文變形引擎的實(shí)現(xiàn)一般是基于OpenType字庫(kù)技術(shù),在復(fù)雜文本布局引擎的基礎(chǔ)之上增加一個(gè)蒙古文變形模塊,以實(shí)現(xiàn)其對(duì)蒙古文的支持。自2000年蒙古文國(guó)際標(biāo)準(zhǔn)ISO 10646制定后[3],人們按照國(guó)際標(biāo)準(zhǔn)先后在不同的復(fù)雜文本布局引擎上研究、實(shí)現(xiàn)了多個(gè)蒙古文變形引擎。

        董治江等對(duì)ICU的文字處理體系結(jié)構(gòu)進(jìn)行了研究,闡述了ICU支持國(guó)際標(biāo)準(zhǔn)的蒙古文、維文、藏文等少數(shù)民族文字的實(shí)現(xiàn)方法[6]。周揚(yáng)榮等通過分析ICU的源碼闡述了對(duì)復(fù)雜文本支持的設(shè)計(jì)思路和方法[5]。周揚(yáng)榮等通過在OpenType字庫(kù)中定義蒙古文對(duì)應(yīng)特征標(biāo)簽(features),在蒙古文變形引擎中分析蒙古文字符串、給每個(gè)字符貼相應(yīng)標(biāo)簽的標(biāo)簽算法得到正確字形[7]。OpenType字庫(kù)解決了用TrueType字庫(kù)對(duì)變形顯現(xiàn)字符沒有確定的碼位的問題,并在此基礎(chǔ)上實(shí)現(xiàn)了ICU對(duì)蒙古文的支持。姚延棟等在Qt3.3.2中實(shí)現(xiàn)了蒙古文變形引擎[8],依然是基于OpenType字庫(kù)技術(shù)和標(biāo)簽算法實(shí)現(xiàn)。田寄遠(yuǎn)等在Pango中實(shí)現(xiàn)了蒙古文變形引擎,實(shí)現(xiàn)了GNOME平臺(tái)編輯器中蒙古文的正確顯形[9]。斯·勞格勞分析了Uniscribe對(duì)蒙古文等復(fù)雜文本做變形的處理流程[10],Uniscribe對(duì)復(fù)雜文本變形的實(shí)現(xiàn)機(jī)制也是基于OpenType技術(shù)。蒙古文變形的復(fù)雜性也是蒙古文操作系統(tǒng)實(shí)現(xiàn)中的一個(gè)難題,芮建武通過OpenType字庫(kù)技術(shù)和Qt庫(kù)等實(shí)現(xiàn)了基于KDE桌面環(huán)境的蒙古文操作系統(tǒng)[11]。

        之前的蒙古文變形引擎通過相應(yīng)的OpenType字庫(kù)能對(duì)蒙古文選形正確,但是因?yàn)楫?dāng)時(shí)沒有統(tǒng)一的可實(shí)施的標(biāo)準(zhǔn),之前的引擎中蒙古文控制字符使用并不完全符合《規(guī)則》中的規(guī)定。另外,由于當(dāng)時(shí)的蒙古文OpenType字庫(kù)中定義的標(biāo)簽數(shù)量較多,周揚(yáng)榮在ICU中實(shí)現(xiàn)的蒙古文變形引擎[8]和姚延棟在Qt3中實(shí)現(xiàn)的蒙古文變形引擎[6]都要將標(biāo)簽分三層分別處理。這使得蒙古文變形顯現(xiàn)效率極低,Qt3中的蒙古文測(cè)試文本在拖動(dòng)滾動(dòng)條時(shí)能明顯感受到屏幕刷新。本文按照《規(guī)則》中字符變形標(biāo)準(zhǔn),利用簡(jiǎn)化特征標(biāo)簽數(shù)量的OpenType字庫(kù)設(shè)計(jì)了一種通用高效的蒙古文變形模型。

        3 蒙古文特點(diǎn)和字符變形新標(biāo)準(zhǔn)

        3.1 傳統(tǒng)蒙古文特點(diǎn)

        蒙古文是一種拼音文字,在ISO 10646國(guó)際標(biāo)準(zhǔn)編碼字符集中收錄了傳統(tǒng)蒙古文的7個(gè)元音、27個(gè)輔音、11個(gè)標(biāo)點(diǎn)符號(hào)、10個(gè)數(shù)字和4個(gè)控制字符。但是由于ISO/IEC 10646標(biāo)準(zhǔn)制定規(guī)則的限制,該標(biāo)準(zhǔn)中只按蒙古文語(yǔ)音收入了抽象的蒙古文字符(稱為名義字符)。蒙古文是復(fù)雜文字,同一個(gè)蒙古文字符的書寫(顯現(xiàn)形式)會(huì)根據(jù)其在詞語(yǔ)中的位置不同、單詞的詞性等屬性不同而發(fā)生變化,即呈現(xiàn)在人們面前的是該字符變化后的形式(稱為顯現(xiàn)字形)。由于ISO/IEC 10646標(biāo)準(zhǔn)中沒有收入蒙古文顯現(xiàn)字符,因此,在顯示蒙古文時(shí)需要將蒙古文的名義字符根據(jù)上下文映射到其相應(yīng)的顯現(xiàn)字形。

        蒙古文的正確顯示大致會(huì)受到以下規(guī)則的制約[12]。

        (1) 字符在詞里的位置。很多蒙古文字符在詞首、詞中、詞尾或者獨(dú)立時(shí)各有不同的字形,主要通過單詞的結(jié)構(gòu)來(lái)確定;

        (2) 自由變體選擇符FVSn和元音間隔符MVS。在單詞中配合FSVn和MVS可以正確指示蒙古文字符應(yīng)該顯示哪一個(gè)字形,或者在單獨(dú)使用某個(gè)字符的一個(gè)字形時(shí),可以通過在該字符前后加入相應(yīng)的FSVn和控制字符得到字形;

        (3) 音節(jié)、詞性引起的變形。蒙古文的一個(gè)詞語(yǔ)分為若干個(gè)音節(jié),由元音和輔音組成的音節(jié)以及詞性(陰性、中性、陽(yáng)性)都會(huì)影響字形的變形。音節(jié)與音節(jié)之間的相互關(guān)系也有可能導(dǎo)致變形;

        (4) NNBSP、ZWJ、ZWNJ等控制字符。這些控制字符雖然不是蒙古文字符,但是對(duì)于蒙古文變形卻起著至關(guān)重要的作用,其對(duì)蒙古文字形顯現(xiàn)的控制規(guī)則在《規(guī)則》中規(guī)定。

        3.2 新國(guó)家標(biāo)準(zhǔn)

        在ISO 10646國(guó)際標(biāo)準(zhǔn)中并沒有包含蒙古文名義字符控制字符到變形顯現(xiàn)字符的使用細(xì)則,也沒有對(duì)蒙古文的合體字的使用做出詳細(xì)說明。在新的國(guó)家標(biāo)準(zhǔn)GB 25914-2010中對(duì)這些都給出了詳細(xì)說明。新標(biāo)準(zhǔn)中主要規(guī)定了以下兩點(diǎn)。

        (1) 蒙古文的變形顯現(xiàn)字符如何通過控制字符和名義字符組合得到,標(biāo)準(zhǔn)中將所有的蒙古文變形顯現(xiàn)字符出現(xiàn)一一做出規(guī)定;

        (2) 強(qiáng)制性合體字和非強(qiáng)制性合體字列表

        通過定義這些規(guī)則,明確了從名義字符和控制字符到蒙古文變形顯現(xiàn)字符的映射。本文的蒙古文OpenType字庫(kù)和蒙古文變形模型的設(shè)計(jì)以此為準(zhǔn)。

        4 蒙古文變形模型

        4.1 符合新標(biāo)準(zhǔn)的蒙古文OpenType字庫(kù)

        OpenType字體是對(duì)TureType字體的升級(jí),能夠?yàn)椤皬?fù)雜文字”提供更好的支持。OpenType字庫(kù)對(duì)復(fù)雜文本的支持主要是通過布局表來(lái)實(shí)現(xiàn)的,這些表包括字形定義表(GDEF)、字形替換表(GSUB)、字形定位表(GPOS)、基線調(diào)整表(BASE)、對(duì)齊表(JSRF)。在蒙古文變形中主要用到GSUB字形替換表,新的OpenType蒙古文字庫(kù)按照《規(guī)則》中的規(guī)定將蒙古文字形的替換規(guī)則寫入GSUB表,經(jīng)過蒙古文變形引擎對(duì)字符貼標(biāo)簽后依次替換得到正確字形。

        在符合新標(biāo)準(zhǔn)的OpenType字庫(kù)中定義了如表1所示的特征標(biāo)簽(features),從中可以看到特征標(biāo)簽一共有7個(gè),比之前實(shí)現(xiàn)的ICU和Qt3中蒙古文變形引擎時(shí)的標(biāo)簽數(shù)量大大減少。通過這7個(gè)標(biāo)簽就能夠?qū)λ械拿晒盼淖址来芜M(jìn)行特征標(biāo)注,然后在GSUB表中查找替換就能夠得到最終顯現(xiàn)字形。

        表1 蒙古文OpenType字庫(kù)特征

        4.2 蒙古文變形模型

        4.2.1 基于OpenType的蒙古文變形引擎工作原理

        正確的蒙古文變形顯現(xiàn)結(jié)果是由蒙古文變形引擎與蒙古文OpenType字庫(kù)相配合得到。蒙古文變形引擎是復(fù)雜文本布局引擎的一個(gè)模塊,其主要工作是通過對(duì)蒙古文字符串分析并進(jìn)行標(biāo)注。

        復(fù)雜文本布局引擎先對(duì)字符串條目化處理,然后對(duì)該條目所屬的文字、語(yǔ)言進(jìn)行判斷,如果判斷出該條目是蒙古文則調(diào)用蒙古文變形引擎。蒙古文變形模塊對(duì)蒙古文字符串分析之后貼上特征標(biāo)簽(features)。復(fù)雜文本布局引擎在已經(jīng)讀入內(nèi)存的OpenType字庫(kù)的字形替換表(GSUB表)中查找替換規(guī)則,按照特征順序依次應(yīng)用替換規(guī)則,最終得到字形串。該流程大致如圖1所示。

        圖1 復(fù)雜文本布局引擎通過OpenType字庫(kù)得到字形流程

        4.2.2 設(shè)計(jì)通用的蒙古文變形模型

        由于復(fù)雜文本布局引擎在實(shí)現(xiàn)上有很多共同之處,都要經(jīng)過字符串分條目、條目?jī)?nèi)字符標(biāo)注、字形替換等操作。這些共性使得可以設(shè)計(jì)一種通用的蒙古文變形模型,可以有效地作用于不同的復(fù)雜文本布局引擎中。

        蒙古文變形模型的核心工作是對(duì)蒙古文字符串進(jìn)行標(biāo)注,給每個(gè)蒙古文字符貼正確的特征標(biāo)簽,通過標(biāo)簽算法實(shí)現(xiàn)蒙古文字形選擇。標(biāo)簽算法通過分析每一個(gè)蒙古文條目中的字符和其對(duì)應(yīng)的上下文確定給其分配的特征標(biāo)簽[5-6],特征作用范圍如表2所示。由于在OpenType字庫(kù)的標(biāo)簽中只有詞首(Init)、詞中(Medi)、詞尾(Fina)和獨(dú)立(Isol)這4個(gè)標(biāo)簽是對(duì)單個(gè)字符標(biāo)注,其他標(biāo)簽均作用于所有字符,這樣就可以對(duì)條目化之后的蒙古文字符串只貼這4個(gè)標(biāo)簽,其他標(biāo)簽只需要對(duì)所有字符均應(yīng)用就可以得到正確結(jié)果。

        表2 特征標(biāo)簽作用范圍

        詞首(Init)、詞中(Medi)、詞尾(Fina)和獨(dú)立(Isol)這4類標(biāo)簽所表示的意義在表1中已經(jīng)提及,一般來(lái)說在一個(gè)完整的蒙古文單詞中如果不考慮控制字符的影響,通過單詞邊界就能很容易判斷出字符在單詞中的位置。這個(gè)過程可以類比英文單詞,例如, “China”,“C”是詞首,“a”是詞尾,“h”,“i”,“n”是詞中。

        根據(jù)變形顯現(xiàn)字符集和控制字符使用規(guī)則中的規(guī)定,蒙古文字符特征除了受字符在單詞中的位置影響外,還受窄寬度無(wú)間斷空格(NNBSP)、零寬度禁連接符(ZWNJ)、零寬度連接符(ZWJ)和元音間隔符(MVS)等控制字符的影響,它們的作用如表3所示。

        表3 蒙古文控制字符對(duì)字符特征標(biāo)簽影響

        可見,蒙古文字符的標(biāo)注結(jié)果由其在詞語(yǔ)中的位置和表3中的控制字符共同決定。在設(shè)計(jì)蒙古文變形模型的標(biāo)簽算法時(shí),采用啟發(fā)式的策略對(duì)蒙古文字符進(jìn)行標(biāo)注。根據(jù)上文分析,我們?cè)O(shè)計(jì)的蒙古文變形模型工作流程如圖2所示。由于除了init, medi, fina, isol這4個(gè)標(biāo)簽外其他標(biāo)簽都要對(duì)所有字符標(biāo)注,該模型中的標(biāo)簽算法只需要對(duì)條目化的蒙古文字符串做一次遍歷就能夠完成字符串的特征標(biāo)注。該模型的標(biāo)簽算法時(shí)間效率很高,算法的時(shí)間復(fù)雜度為O(n),n為蒙古文字符串長(zhǎng)度。

        圖2 蒙古文變形模型工作流程

        5 蒙古文變形模型實(shí)現(xiàn)

        KDE和GNOME是Linux操作系統(tǒng)的兩大主流桌面環(huán)境,我們分別在這兩個(gè)桌面平臺(tái)下的文本布局引擎中測(cè)試蒙古文變形模型。

        5.1 在Qt4中的實(shí)現(xiàn)

        Qt庫(kù)是Linux KDE桌面系統(tǒng)的核心庫(kù),Qt4是其現(xiàn)行版本。為了測(cè)試蒙古文變形模型的效果,我們?cè)赒t4的底層文本布局引擎Harfbuzz中加入一個(gè)對(duì)蒙古文進(jìn)行處理的模塊。該模塊中實(shí)現(xiàn)了HB_Mongolian_Shape函數(shù),這個(gè)函數(shù)是蒙古文變形模塊的接口,其職責(zé)是通過一個(gè)蒙古文字符串條目得到對(duì)應(yīng)的OpenType字庫(kù)中的字形索引。HB_Mongolian_Shape函數(shù)中調(diào)用了蒙古文變形模塊中核心的getMongolianProperties函數(shù),后者負(fù)責(zé)對(duì)蒙古文字符串進(jìn)行標(biāo)注。按照蒙古文變形模型中的規(guī)則,我們?cè)趃etMongolianProperties函數(shù)中實(shí)現(xiàn)了標(biāo)簽算法,從而得到蒙古文的變形結(jié)果。

        圖3,4為Qt4.5.0中自帶的文本編輯器使用蒙古文變形模型前后的顯示對(duì)比。實(shí)驗(yàn)結(jié)果說明,我們的模型有效地作用于Qt4的底層文本布局引擎Harfbuzz。

        圖3 使用蒙古文變形模型前,Qt4中測(cè)試文本顯示

        圖4 使用蒙古文變形模型后,Qt4中測(cè)試文本顯示結(jié)果

        5.2 在Pango中的實(shí)現(xiàn)

        Pango是Linux GNOME平臺(tái)提供的文本布局引擎,為GNOME平臺(tái)下的應(yīng)用程序提供底層文本布局顯示支持。Pango1.22.0復(fù)雜文本變形模塊中包含了對(duì)阿拉伯文、藏文等復(fù)雜文本的單獨(dú)處理,但并不包括蒙古文。我們?cè)赑ango1.22.0的module文件夾中加入單獨(dú)對(duì)蒙古文進(jìn)行處理的模塊。其中函數(shù)mongolian_engine_shape提供蒙古文變形模塊接口,并調(diào)用核心函數(shù)Mongolian_Assign_Properties。后者通過分析蒙古文字符串,獲得字符串對(duì)應(yīng)的標(biāo)簽,再遍歷字符串通過每個(gè)字符的標(biāo)簽依次應(yīng)用字形替換規(guī)則,得到對(duì)應(yīng)的OpenType字庫(kù)中對(duì)應(yīng)的字形索引,最終得到字形串。

        我們?cè)贚inux GNOME平臺(tái)下使用pango-view測(cè)試Pango對(duì)蒙古文的顯示結(jié)果的支持,前后對(duì)比結(jié)果如圖5,6所示。實(shí)驗(yàn)結(jié)果表明,通過在Pango中加入蒙古文變形模型實(shí)現(xiàn)的蒙古文變形模塊有效地實(shí)現(xiàn)了蒙古文的正確選形。

        圖5 使用蒙古文變形模型前,測(cè)試文本顯示結(jié)果

        圖6 使用蒙古文變形模型后pango-view測(cè)試文本顯示結(jié)果

        在Linux GNOME平臺(tái)上的很多應(yīng)用程序(如Firefox,Gedit等)的文本布局顯示都依賴于Pango。我們?cè)贔edera12下的Firefox-3.5.15中測(cè)試蒙古文網(wǎng)頁(yè)顯示情況,使用蒙古文變形模型前后的結(jié)果如圖7,8所示。實(shí)驗(yàn)結(jié)果表明,蒙古文變形顯現(xiàn)結(jié)果正確,進(jìn)一步驗(yàn)證了該模型能有效地實(shí)現(xiàn)蒙古文變形顯現(xiàn)。

        圖7 應(yīng)用蒙古文變形模型前,GNOME平臺(tái)上Firefox對(duì)蒙古文測(cè)試頁(yè)面顯示結(jié)果

        圖8 應(yīng)用蒙古文變形模型后,GNOME平臺(tái)上Firefox對(duì)蒙古文測(cè)試頁(yè)面顯示結(jié)果

        6 結(jié)束語(yǔ)

        本文以國(guó)家標(biāo)準(zhǔn)GB 25914-2010為依據(jù),結(jié)合OpenType技術(shù),提出了一種高效通用的蒙古文變形顯現(xiàn)模型。該模型建立在對(duì)多種復(fù)雜文本布局引擎實(shí)現(xiàn)共性分析的基礎(chǔ)上,對(duì)不同復(fù)雜文本布局引擎具有很好的通用性。在KDE平臺(tái)下的Qt庫(kù)和GNOME平臺(tái)下的Pango庫(kù)進(jìn)行的實(shí)驗(yàn)均證明,該模型能對(duì)蒙古文文本實(shí)現(xiàn)正確顯形。該模型的實(shí)現(xiàn),為研制符合新標(biāo)準(zhǔn)的以GNOME或者KDE為桌面環(huán)境的蒙古文操作系統(tǒng)奠定了基礎(chǔ)。目前GNOME平臺(tái)下Pango庫(kù)對(duì)蒙古文豎向顯示尚不支持,這也是我們下一步的工作。

        [1] 烏達(dá)巴拉,鞏政.蒙古文OpenType字體制作技術(shù)[J].內(nèi)蒙古大學(xué)學(xué)報(bào)(自然科學(xué)版),2006,37(5): 570-573.

        [2] The Unicode Consortium. The Unicode Standard, Version 6.0.0, (Mountain View, CA: The Unicode Consortium,2011.ISBN 978-1-936213-01-6)[EB/OL]. http://www.unicode.org/versions/Unicode6.0.0/,2011:427-432.

        [3] International Standard ISO/IEC10646-1 Second Edition.Information technology-Universal Multiple-Octet Coded Character Set(UCS)[S],2000.

        [4] 董治江,吳健,鐘義信.基于OpenType的復(fù)雜文本語(yǔ)言處理的研究與實(shí)現(xiàn)[J].計(jì)算機(jī)應(yīng)用研究,2004(10):158-161.

        [5] 周揚(yáng)榮,賈彥民.復(fù)雜文本布局引擎機(jī)制及應(yīng)用研究[J]. 中國(guó)科學(xué)院研究生院學(xué)報(bào),2006,23(3): 390-395.

        [6] 董治江,吳健,鐘義信.在ICU中實(shí)現(xiàn)少數(shù)民族文字處理[J].中文信息學(xué)報(bào),2004,18(2):66-72.

        [7] 周揚(yáng)榮,賈彥民,吳健.基于ICU的復(fù)雜文本布局引擎設(shè)計(jì)與跨平臺(tái)應(yīng)用研究[J].計(jì)算機(jī)應(yīng)用研究,2007,2: 29-224.

        [8] 姚延棟,吳健,孫玉芳,等.傳統(tǒng)蒙古文變形顯示機(jī)制研究與實(shí)現(xiàn)[J].中文信息學(xué)報(bào),2005,18(5):84-89.

        [9] 田寄遠(yuǎn),趙小兵. Linux—GNOME平臺(tái)下基于OpenType的蒙古文自動(dòng)選形引擎的設(shè)計(jì)與實(shí)現(xiàn)[J].內(nèi)蒙古大學(xué)學(xué)報(bào),2009,40(3):320-325.

        [10] 斯·勞格勞,敖其爾.Windows環(huán)境下蒙古文復(fù)雜文本處理的研究[J].內(nèi)蒙古大學(xué)學(xué)報(bào),2007,38(5):582-585.

        [11] 芮建武,吳健,孫玉芳.國(guó)際化標(biāo)準(zhǔn)框架下蒙文操作系統(tǒng)的設(shè)計(jì)[J].計(jì)算機(jī)研究與發(fā)展,2006,43(4):716-721.

        [12] 確精扎布.蒙古文編碼[M].呼和浩特: 內(nèi)蒙古大學(xué)出版社.2000.

        猜你喜歡
        蒙古文字庫(kù)字符
        尋找更強(qiáng)的字符映射管理器
        No.2 喜茶聯(lián)合漢儀字庫(kù)推出微型書和書簽
        字符代表幾
        一種USB接口字符液晶控制器設(shè)計(jì)
        電子制作(2019年19期)2019-11-23 08:41:50
        消失的殖民村莊和神秘字符
        關(guān)于新發(fā)現(xiàn)的《字母匯編》(蒙古文)
        某型號(hào)產(chǎn)品的字庫(kù)遷移優(yōu)化設(shè)計(jì)
        電子世界(2018年7期)2018-04-26 08:51:35
        關(guān)于蒙古文在各種瀏覽器上顯示方法的探討
        略論Khandjamts夫人(基里爾蒙古文)
        相同字庫(kù)條件下激光打印文件特征的變化規(guī)律和特點(diǎn)
        久久精品国产清自在天天线| 中文字幕精品一区二区日本 | 日本亚洲欧美在线观看| 蜜桃视频在线免费观看一区二区| 国产自拍精品在线免费观看| 午夜福利理论片在线观看| 国产精品麻花传媒二三区别| 天堂AV无码AV毛片毛| 日产国产亚洲精品系列| 午夜成人理论福利片| 亚洲乱码国产一区三区| 国产成人香蕉久久久久| 亚洲第一看片| 青春草在线观看免费视频| 中文字幕乱码亚洲无限码| 最近中文字幕完整版免费| 亚洲久无码中文字幕热| 国内偷拍第一视频第一视频区| 99国产精品久久99久久久| 亚洲av之男人的天堂网站| 日韩AV无码一区二区三不卡| 永久免费看黄网站性色| 精品国产免费一区二区三区香蕉| 处破痛哭a√18成年片免费| 国产360激情盗摄一区在线观看 | 性色av色香蕉一区二区蜜桃| 日韩人妻一区二区三区蜜桃视频| 欧美日韩不卡中文字幕在线| 白色橄榄树在线阅读免费| 日日碰日日摸日日澡视频播放| 久久精品国产亚洲av大全| 日本理论片一区二区三区| 国产女人精品一区二区三区| 国产精品538一区二区在线| 无限看片在线版免费视频大全| 少妇特殊按摩高潮不断| 精品国产一区二区三区av| 国产白丝无码视频在线观看| 国产精品久久这里只有精品| 日韩午夜免费视频精品一区| 亚洲午夜福利在线视频|