舊有問題
香港字集內的第三部份字體(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
|