Freefonts


舊有問題
技術背景
新的造字方法
結語

舊有問題

香港字集內的第三部份字體(Ext.B),除了需要造出新的名出來之外,更要做多一個‘參照’該字舊編號到新編號,務求向後兼容。 步驟多,因而大大降低造字的效率。

技術背景

1。 fontforge的主視窗-字體列表 有兩種顯示模式:

  • 編碼模式:(預設)以列出字體編碼的所有編碼格。(例: unicode(BMP) 有65536個字碼,那便要列出65536格!
  • 精簡模式:(view->compact view) 只列出sfd檔案內的有內容的格。

精簡模式的好處: fontforge只會處理有內容的格(一般20字以下居多),而相對編碼模式的每次都要處理65536格,速度可有 接近千倍的加速的改善! 而且對只於相於在精簡模式內幾(十)個格內找到新造字的方便,在編碼模式便要在6萬多格找!

精簡模式的限制: 在fontforge下的,如果以精簡模式顯示時,便不能再新增要造的字的字格。 所以,唯有預先在sfd檔案內先把要做的字的格子先‘佔’了。 這個方法,我們可以在所的字根檔應用。

另外,更近一步,在Ext.B內,我們更可以把 舊的字編號的參照(reference)也先準備好!

想得到精簡模式下的種種好處,又要突破它不能再加新字的限制,唯一的辦法就是先為每個字根檔準備好一個相應的sfd檔。

新的造字方法

用新的 預先為每個 字根檔準備好的sfd檔 (http://freefonts.oaka.org/~akar/extB_prepared/)造Ext.B內的字。

有以下兩個特色:

  • 每個字預先建立相應的舊編號參照,這工作就不需要做了;
  • 精簡主體內容(CompactView), 每個要做的字都是在順序放在前面;
  • 字的排序正好和字根文檔的順序是一樣的,那就不容易出錯。反而更容易做總體的檢查,掌握新造的字的整體質素。


流程:

以 HKSCS ExtB的 字根123為例子

1. 下載字根 123 的文檔 和 sdf檔

wget http://freefonts.oaka.org/~akar/extB_prepared/123B_uming_freefonts.sfd
wget http://freefonts.oaka.org/~akar/extB_prepared/123_utf8.txt

(注: 以上兩個步驟也可以用一個 bash指令檔一次做好! 請看 bash指令使用)

bash指令使用:

準備指令

wget http://freefonts.oaka.org/~akar/linux/getExtB_prepared.txt
mv getExtB_prepared.txt getExtB_prepared.sh
chmod 755 getExtB_prepared.sh

使用指令

./getExtB_prepared.sh 123 你的名字
123:是你要做的字根編號, 你的名字: 不用我多說了吧?:)

2. 用fontforge打開,在相應編號的格內依序填上新造的字

  • 兩分為兩類,各佔一半.一類(後半部)是字的Reference格,它們會隨着新字的完成,不用理會這部份.
  • 另一類是有紅色問號 ? 在頂端的格,是新字放置的地方. 它們的排序和文檔的新字由上而下的排序一樣.
  • 以 123為例, 從左至右的第一至四格 就分別,依序填上 [U+2634B, U+2634C,U+26351, U+263BE]這四個新字. (你會看到,每當填上一個新字,另外有一格會自動顯示相同的字,這是正常的!)

別怕! 試一試就知道是怎的一回事, 你也可以先看看這些已經用這種方法 完成的字根檔 (http://freefonts.oaka.org/~akar/extB_contributed/HKSCS_ExtB_uming_ukai,040,213_OK.tgz)。

結語

!! 屏幕截圖的網站暫時不能使用了 :(!!
其它再接著並沒有和以前太大的分別,你可以在這找到以這種新方式造字(Ext.B字根123B)的整個過程的屏幕(screenshot)示範 (http://www.sharefoto.net/akar/album05/)。

重溫fontforge造外框字的細節 可(在此找到 (http://www.sharefoto.net/akar/)),不定期加入新示範 。

感謝大家! 如果對以上內容有疑問的成員/網友,可用 電郵和我聯絡(akar.chen@linuxhall.org)。也會在每個(兩個星期一次)的 字體工作坊,親身示範及解答你的問題。

字體工作坊的舉行時間及地點,請查看 Linux Hall (http://www.linuxhall.org) 的通告。

AKar Chen

 

OAKA host     GFOL Content is available under GNU Free Documentation License 1.2.