#osxchat blog

2005/01/10

藏文輸入法開發筆記

作者: zonble

這兩天繼續在毫無藏文基礎的狀況下,研究在電腦上的藏文輸入,而繼續工作下去,則愈來愈發現問題遠比我原本所想像的複雜。

首先講一個比較簡單的問題,那就是在Unicode中除了造了基本字母之外,也造了幾個組合音的字碼,例如由ག(ga)以及ཧ(ha)所組成的གྷ(gha)等,這些字碼分別位在 Unicode 的 0x0F43、0x0f4D、0x0f52,、0x0f57、0x0f5C 位置上,所以,在遇到這樣的字碼的時候,應該要再重新組合一次,而不是直接送出⁄,而在這樣處理之後,因為可以縮短上方字母的一些較長的筆劃,使整個字看起來比較緊密,也比較美觀一些。除了這些因為ཧ所組成的字之外,還有就是由ཀ(ka)以及ཥ(ssa)所組成的ཀྵ(kssa)等。

字體的轉寫

從上圖中,應該就可以看到直接重疊原本的字母,與實際使用 Unicode 中已經將字母組合起來的字碼的差別。這個部份還不算太複雜,我已經寫進了 OV 藏文輸入法的程式碼中。

藏文字體沒有正確顯示

另外,就目前使用Unicode輸入藏文,最後呈現出的藏文文字似乎還是有問題。例如所有以ར(ra)開頭的組合字,ར最後的那一筆其實是不寫的,而是直接與另外一個字母最上面的筆劃重疊,但是在Unicode中並沒有省略ར最後一筆的字符,所以直接使用 Unicode 輸入藏文的時候,最後組合出的藏文,其實並不符合實際藏文的寫法(請參見上圖的第一個字)。我覺得很奇怪,在 Unicode 中有 གྷ ,怎麼會沒有省略最後一筆的ར呢?是我沒有找到嗎?可是我也花了一段時間在找啊。

在組合ར以及ཡ(ya)等字母的時候,雖然會組合在原本字母的下方,但是其實也不是位在正確的位置。這應該是屬於字體或作業系統文字引擎的問題,就目前的狀況來看,及使用 Tibetan Machine Uni 等支援藏文組合字的字體,也無法正確處理。

在 jsked 這些專屬的藏文編輯系統中的作法是,在遇到這些組合字的狀況時,另外⁄使用已經組好的字形(glyph)顯示,但是就 Tibetan Machine Uni 等字體來看,這些字形都不在 Unicode 中,所以這些組合好的字就算在 jsked 裡頭打了出來,卻沒有辦法剪貼到其他的應用程式中,而且在轉換成 Unicode 之後,字體的顯示效果,也與直接在 TextEdit.app 中,與用 OV 藏文輸入法輸入的效果差不多。而 jsked 這個用 Java 寫成的編輯器在平常使用上最大的缺陷,就是不能夠列印,如果能夠列印的話,至少可以使用 PDF 文件交換電腦藏文資訊。

我還有一個疑問是,在 Tibetan Machine Uni 當中的許多組合字,按照字母的組合,在 jsked 裡頭卻怎麼也打不出來。例如以下這張圖片出現的字,都是我打不出來的,用 ov 是可以打出來,但是遇到這樣的狀況,我不太能夠判斷在輸入藏文時,怎樣才是正確的行為。

這些字用 jsked 的藏文鍵盤都打不出來

而我目前想到,能夠使用所有在 Tibetan Machine Uni 所包含的字形,然後又能夠輸出、列印的解決方案,就是使用 Adobe InDesign,然後從glyph選單中一一點選輸入,然後因為 InDesign 本身就是專業排版軟體,所以可以進一步處理各種後續的操作。而在 TextEdit.app 裡頭使用 ov 藏文,只能說是一個有比沒有好的工具。可是...可是藏文的文書處理,總覺得實在不應該是這個樣子啊。

標籤: , ,

4 篇留言:

  • 關於ov的藏文模組我已經完成了win32上的測試,除了一些非必要性的符號想再加進去以外,輸入法的部分是完全合用...^^
    {{大部分的問題是"字型"與"font render"}}
    ===
    字型方面:
    我試了很多字型。我最後選定了~西藏官方"西藏電腦資源中心"所使用的字型(TCRC Youtso Unicode) http://www.popdict.com/dict_tibetan.htm
    一方面字型很漂亮,幾乎也沒有什麼問題。另一方面也因為Tibetan Machine Uni好像沒辦法從thdl及sf.net正確下載。
    =
    Font Render方面:
    [字型的檢視]
    我使用Fontlab Studio5 demo這套軟體發現 TCRC Youtso Unicode 字型有預先組合的字體。
    [預先組合的能力]
    我唯一有測試成功的是gtk-win32下的gimp,也許是因為pango有處理smart font的能力吧?!這方面我不懂。
    如果不要求字型預組的話,TCRC字型還是能很漂亮的在win2000,XP and word2000等環境完成大部分的生活用字(含組合字),除了有(ra)上加字的組合字。
    http://ccbs.ntu.edu.tw/test_teach/BASIC4-3.HTM
    http://buddhism.lib.ntu.edu.tw/BDLM/lesson/tibet/lesson_tibet01.jsp
    =
    ra上加字的構思(smart font唯一的路):
    基本上,沒有字型的預組能力(是 smart font 技術嗎?),生活字是幾乎都打的出來的,雖然ra上加字可能多一橫。然而古老的經文就沒辦法啦,經文是不能亂改的,經文裡面有各式各樣奇怪的非生活用的藏文組合字,而且超複雜。
    所以說沒有解決smart font幾乎就是死胡同。

    我有想過在unicode字體裡更改0f89或0f88讓ra上加字更正確,因此試了Fontlab。
    但是對輸入經文的佛教文獻人員來說,這等於是沒解決問題。所以我放棄了改字體。
    還是找新一點的繪字技術吧~這樣也比較有前瞻性,至少win32 gimp的pango做到了。所以我猜想Linux的gtk環境裡,應該也是用對字型就沒問題了吧。

    ===
    Infos from 路人K:
    Keith,廣論(Lamrim)學員,稍微認識一些漢藏佛教
    經常出沒於sayya,有一個keith個人版。
    最近有計畫為ov藏文模組寫些文件。

    作者: Anonymous 匿名 發表時間: 10/16/2005 05:04:00 下午  

  • 您好:
    因為有研究藏文的必要,但這個連結:
    http://www.popdict.com/dict_tibetan.htm
    裡的 TCRC Youtso Unicode 已無法下載,請教能否寄給我呢?謝謝
    gentytin@gmail.com

    作者: Anonymous 匿名 發表時間: 8/11/2006 08:08:00 下午  

  • 我看了一下unicode 4.1的感覺是
    很奇怪 好像有點問題
    光ya da這個下加字
    就可以看出怪怪的
    他用了0F81 0FBB兩個

    這個unicode應該是
    不懂藏文的人編的
    上加字一整個有問題

    下加字亂編一通
    下加字有ya, ra, la, wa而已
    它卻編了一堆

    另外 版主舉的例子
    ga跟ha應該是不能聯在一起的
    沒有這樣的字才對
    藏文有他的規則
    所以下面的table的字
    是不能出現的
    如果可以出現 那就是軟體
    沒有把這些規則寫進去

    作者: Anonymous 匿名 發表時間: 10/15/2006 09:43:00 下午  

  • 请教,能否告知,关于藏文的组合问题,藏文中共有多少组合字,除了U+0F00到U+0FD1在标准unicode定义的。谢谢,
    caojiqian@sohu.com

    作者: Anonymous 匿名 發表時間: 10/08/2008 04:19:00 下午  

張貼留言

? 回前頁