標籤:西夏文  字體  

盤點常見的西夏文字體


2016年1月16日

目前能通過公開途徑找到的西夏文字體不多,有三種:景永時製作的”西夏字體“、柳常青製作的”西夏古籍字庫“、以及日本今昔文字鏡做的西夏文字體。這裡所說的西夏文字體指的是可以在電腦裡安裝使用的字體,即文件後綴是“ttf”的電腦字體。

分區

由於西夏文字沒有專有的分區(西夏文分區還在提案階段,預計到Unicode 9.0的時候才會推出)目前所有的西夏文字體都是把西夏文映射在漢字的分區中的。也就是說在使用的時候要設置字體為相應的西夏文字體,否則會以漢字的字符顯示。柳常青的”西夏古籍字庫“使用的字符映射和景永時的”西夏字體“的字符映射基本一致,只有少數字符有區別。而今昔文字鏡的西夏文字體把《夏漢字典》收錄的6000多個西夏文字分別放在了2個字體文件Mojikyo M202、Mojikyo M203中,M202收錄了序號是0001到5280的西夏文,5281開始到結束則是放在M203中,具體原因不明。而且奇怪的是今昔文字鏡的西夏文字體還居然收錄了不少契丹文。

美感

字體的美感是什麼?通俗地解釋,就是一個字體做得好不好看。受到文化、經歷、年齡等因素的影響,每個人對於”好看“的定義都不盡相同。這裡我把美感細分為幾方面來評價:結構、筆劃、特徵。

結構

判斷一個字體是否好看,結構是關鍵。字的結構就像人的骨架一樣重要。一個字體的結構主要是反映在筆劃的分佈,即筆劃的間距、長短、角度是否適宜。應該說三個字體的結構都不錯,可能景永時字體和今昔文字鏡的略勝一籌,柳常青字體的結構稍差一些,因為柳常青字體是把處理過的西夏文的筆劃直接套在景永時字體的結構上的。

筆劃

應該說今昔文字鏡的字體筆劃稍微生硬一點,主要是因為這是款中規中矩的字體,每個筆劃都是由模板做成,然後再拼湊,而且筆劃都是橫平豎直的,略顯古板,不那麼靈活。景永時的字體由於是採用漢字的字體拼湊而成的,所以比較有楷書漢字的感覺,略缺乏西夏文的感覺。不過每個筆劃都很工整,而且字內筆畫的粗細控制得很好,所以即便在字號比較小的情況下也能看得清楚每一個字的每一個筆劃。柳常青字體應該是直接數字化掃描的西夏文文獻而做成的,所以在放大來看的情況下筆劃比較接近西夏文的筆劃,但是字號小的情況看卻不好看。主要原因是每個字內筆劃的粗細、形態都不一致造成的,具體原因將在下文解釋。

特徵

雖然西夏文的筆劃和結構都是借鑑漢字而設計成的,但是西夏文還是有許多漢字所沒有的特徵。應該說三種字體都沒能很好地反映出西夏文的特徵,今昔文字鏡的字體太過生硬,景永時的字體太過漢字化,柳常青的字體雖然筆劃比較像西夏文的筆劃,但結構是套景永時字體的結構,所以也沒能反映出西夏文的特徵。

質量

在使用字體的時候,可以給每個字符設置不同的字號,在字號特別大的情況下就能看出一個字的質量怎麼樣。矢量字體都是有算法生成的,所以不論字號放到多大,都可以很清晰地展示出所有細節,而且都不影響字形的美觀。從這點來看,今昔文字鏡的字體更勝一籌,其他兩種字體都不太好。因為今昔文字鏡的字體的筆劃更加圓滑,不論放到多大,都很好看。而景永時和柳常青的字體一旦字號設置大於200以上,就能看到每個筆劃上都有很多”疙瘩“。這是因為今昔文字鏡字體的每個筆劃的路徑(Path)都由貝塞爾曲線(Bezier spline)組成並控制,而另外兩種字體都是由點構成並控制,放大到一定程度後邊界上的每個點都能顯示出來。

錯字數量

今昔文字鏡字體有大量的錯誤,我在逐字校對《夏漢字典》後發現,錯字不少於500個,佔西夏文字總數的8.3%以上。這個錯誤率是相當高了。兩外兩個字體錯字沒那麼多。在正字法還沒確定下來的情況下,所謂的錯字只是在運筆方面和正確的寫法有所不同。

可識別性

這裡的可識別性指的是在字號非常小的情況下是否能識別出每一個字符。由於西夏文的筆劃特別多,有些字與字之間的卻別非常細微,所以在字號小的情況下很難識別。應該來說柳常青字體由於結構和筆劃的問題差稍微差了一些,另外兩種字體還算不錯。

柳常青字體的一些問題

這想專門講解柳常青字體的一些問題。這個字體的製作思路沒有問題,首先是掃描或翻拍文獻,然後進行一系列處理,比如調整亮度、對比度等等一系列參數,然後對圖像二值化得到處理過的文獻,這時圖片只有黑色和白色兩種顏色,已經不是彩色了。然後用軟件把每一個字切割下來並矢量化,放到專門做字體的軟件裡面去,最後再做一些微調,使得整個字體比較協調。但是為什麼結果不是很理想呢?這就和處理圖像的算法有關係。舉個例子,我把《大般若波羅密多經 卷二百九十四》截取一小部分,如下圖所示:

原圖

之後用Photoshop進行一系列處理,比如調整亮度、對比度等等。主要目的是去除背景,只剩下文字。之後圖片變成底下這個樣子:

Photoshop處理過的圖片

下一步用Adobe Illustrator的image trace功能進行圖片矢量化,就成了這樣:

Illustrator矢量化的結果(闕值為128)

在trace的時候需要設置一個參數,即闕值(threshold),比這個參數顏色更深的像素將被轉成黑色的,反之是白色,設置不同的數值將得到不同的結果。所以這個參數決定了矢量化的效果。上面這張圖的闕值是128,下面來看看闕值是64和192的結果。

llustrator矢量化的結果(闕值為64)

Illustrator矢量化的結果(闕值為192)

很顯然,闕值越低得到的筆劃就越細,闕值越高得到的筆劃就越粗。我舉這個例子主要是為了說明在處理西夏文文獻的過程中合理地設置各種參數是取得良好結果的關鍵。否則提取出來的字就會和原文獻有很大的差別。我這裡使用的是相機翻拍的照片,若能直接掃描原文獻可以得到更高的分辨率,從而取得更好的結果。矢量化之後應該再做一些微調,因為直接矢量化之後的筆劃會有一些瑕疵,還需要一些修改。

再來,文獻的選擇也很關鍵,比如我用的這個例子來自《大般若波羅密多經 卷二百九十四》,這個寫本應該說筆劃流暢、很有韻律,可以看出書寫者的功底很好,而有些文獻的字寫得不太好看,這種情況下則不能採用。柳常青字體用的是什麼文獻我不太清楚,不過我覺得那些字寫得並不好看,而且筆劃處理的不好,所以看上去整體效果沒那麼好,只是這種字體製作的思路沒有問題,可以借鑑。

這裡提供西夏文字體的下載鏈接,鏈接來自網絡:

西夏文字處理系統(景永時)

今昔文字鏡的西夏文字體(下載“TTF_download ”下的M202、M203)