生僻字的分類
我們知道中亞的電子書特別喜歡做生僻字的圖片補丁,在分析歸類之后,從易到難可以分為下面幾類:
- 字符屬于GBK區,只是看起來陌生,例如觺這個字(u89FA),中亞照樣是做了圖片的,可能kindle的字庫連GBK都沒有達到;
- 字符屬于擴充A區。之前我說過了,安卓的系統字體是18030-2000的,也就是說支持GBK+A,只不過多看內置的字體只有GBK,那么這些字符就會以系統字體的黑體顯示(如果你換了系統字體,那就可能不顯示或者顯示別的字體)。
- 字符屬于擴充B區。其實這種情況也還算方便,畢竟支持擴充B區的超大字符集很多,可以方便的借用整個字符過來,
- 字符屬于擴充C—F區。這種情況,只有宋體的兩個超大字符集可以用(花園體也是宋體的),對于楷體而言,就得拼部首造字了;
- 字符屬于手寫字或者圖片字,反正不是國標確定的碼區,這種情況就得多一個步驟,除了造字,還需要分配一個自定義碼位給你的新字。
輸入字符
在造字成功之后,就要輸入這個字符到sigil中了。
以前大家可能聽過windows中按住alt鍵輸入內碼松開alt鍵輸出文字的方法,但是內碼和unicode之間還是要進行轉換的,比較麻煩。之前我走了點彎路,找了個網頁進行unicode到字符的轉換,其實還有個更簡單的辦法,就是利用html實體。
sigil對html實體支持良好,而且保存文件時,它會自動將實體代碼轉換為字符。舉個例子,要輸入觺這個字,只需在html中輸入觺
即可,保存時會自動轉換為觺。如下圖:
擴充AB區造字
第一種情況,直接將圖片字替換一下就可以了,這里就不多說了。擴充AB區的字符可以直接借用,步驟如下:
啟動fontstudio,打開rsong.ttf(這是拿多看的方正書宋_GBK.ttf改的,去掉了大部分GBK的漢字以減小體積)
現在我要借用大字符集中的??字(通過漢字寶典搜索到u200A4),打開方正超大字符集,按
ctrl+f
打開搜索界面,左邊選擇Unicode index,右邊填寫200A4,回車就可以跳轉到??字符處。此時已經選中??字符,底色是藍色,按下
ctrl+c
。將rsong.ttf的界面調出來,不要選中任何字符,拉到最下面,按下
ctrl+v
即可粘貼剛才的??字符這樣就完成了字符的借用,對比書宋現有的字符,這個字符顯得字重太小,筆畫太細了,需要進行修飾。雙擊該字符就可以打開字形(Glyph)修改界面,如下圖:
這里的字形實質上是個矢量圖,與PS中鋼筆工具的使用差不多,簡單介紹一下:
我們可以看到,字形矢量是由不同的點和線構成的,上圖放大了可以看到方形的點是連接線條的“錨點”,十字型的點則是調整線條曲率的“輔點”。鼠標選中一條線段(或者錨點)之后,可以拖動,或者用方向鍵像素級微調位置,從而調整了筆畫的粗細,選中輔點拖動,就可以調整對應線段的曲率。
- 如果一條直線,想將其彎曲怎么辦?按住
alt
鍵選中線段拖動即可。 - 按住
shift
鍵可以多選點或者線,可以框選,框選會切換選中的狀態。 - 雙擊一條線段,會自動選中該線段所在的封閉區域。
- 錨點選中為藍色,黃色說明有多個錨點重合。選中后按
delete
鍵就可以刪除點或者線,但它不會“斷開”,而是繼續保持封閉區域。 -
如果想將兩個區域合并或者分割,要使用左上角的工具欄。
工具欄
工具欄從左向右簡單介紹一下:
- 選擇工具,一般在此狀態下進行編輯。
- 橡皮擦,擦除字形的點和線,用得很少,因為選擇時按
delete
更精確。 -
小刀,可以在線上創建錨點,在錨點上切開,切開后會顯示×圖標,線頭會分割開,用于和別的筆畫拼合。如果存在未閉合的錨點或線段,生成字體時會警告。
小刀 - 測量模式,進入后不會對字形做修改,鼠標按住拖動會顯示像素值,用來測量筆畫粗細。
- 繪制孤立錨點,再次點擊會刪除這個點,與PS鋼筆工具類似。
- 繪制直角錨點,繼續在別的地方點擊形成直角線段。
- 繪制圓角錨點,繼續在別的地方點擊形成曲線線段。
- 繪制切線錨點(沒看出來有什么作用)。
- 繪制一個矩形,4個錨點。
- 繪制一個圓形,4個錨點。
- 旋轉所選部分。
- 縮放所選部分,在拼部首時很有用。
- 斜切所選部分。
-
自由變換(與PS中差不多)
后面兩個我們暫時用不著。現在我們選中線段進行加粗即可,最終效果如下:
加粗之后
關閉后,file-generate font即可生成新的字體,按照前一帖子將新字體加入sigil后,再按上面的方法輸入html實體,即可正常顯示AB區的字體。
擴充C—F區造字
這種情況的造字稍微麻煩一點,同樣從開心宋體等大字符字體借用字符和碼位之后,如果你要造楷體字,那字形就得重新設計,例如造[南殳]字(u2C1A9),同樣搜索到開心宋體的對應字符,復制到楷體字中,如圖:
雙擊后將其清空,然后從楷體字中搜索“獻”和“殷”來拼部首就行了,根據上面所說的工具,可以略微調整部首寬度,最后效果如下:
之后的步驟都是一樣的。
生造字
這種情況的造字又要多一個步驟,也就是確定一個編碼區來放你的生造字,例如從F0000開始放生造字,那么從開心宋體復制了對應字符后,先清空字形,然后右鍵點擊該字符:
在彈出的重命名對話框中,將下面unicode改為F0000,上面的name也必須要改為uF0000,否則調用可能出問題。只要點擊一下name最右邊的鉆石按鈕就會自動更改了,別的選項不用改動:
接下來的步驟與上面的是一樣的。