赫赫文王»网誌»彫梓»

一點明體與思源宋韓文版的比較與建議:字形篇

Comparison between I.Ming and Source Serif CJK KR. 這篇文章用了整整兩天時間。討論各個字體對傳承字形標準的執行情況,以及一點明對兩個編碼問題的處理。這是上篇,下篇爲 設計篇

市面上很難見到舊字形的字體,此前我一直用的是思源宋韓文版。昨天聽同學介紹了「一點明」這個字體,去看了看,眞不錯。這是他們的 【主頁】(https://github.com/ichitenfont/I.Ming/),這是配套的 【傳承字形部件檢校表】(https://github.com/ichitenfont/inheritedglyphs)。認眞學習了傳承字形部件表,做了如下筆記。主要有兩箇目的,一是看一下思源宋韓文版對舊字形的保存情況,二是看一下一點明存在什麼問題。

上篇討論各個字體對傳承字形標準的執行情況。

分說

以下用簡稱:

  • 【明甲】一點明體 I.Ming
  • 【明乙】一點明異體 I.MingVar
  • 【思源】思源宋體韓文版字重爲light Source Serif CJK KR light
  • 【陸宋】大陸默認宋體 SimSun 或 SimSun-ExB
  • 【臺宋】臺灣標準字體 PMingLiu 或 PMingLiu-ExB

需要注意,SimSun 或 PMingLiu 不能代表大陸或臺灣的字形標準,因為字體有可能不會嚴格按照字形標準進行製作。

圖片共五行,依次為:明甲,明乙,思源,陸宋,臺宋。

1、⻀艹

明乙「夔、龝」用了俗寫,「薩」用了古寫。「夔、龝」的俗寫更常見,明甲乙應該互換。

⻀艹一點明均作出區分,思源、陸宋均混為連為一體的艹,臺宋大部分作出區分。

2、覀西襾罒

網字頭罒的「罪」,明乙未封口,符合字理,明甲乙應該互換。

思源的「覃」莫名其妙改成了襾;「愣」用的罒;覆的頭是罒,覈就是正確的襾。很迷。

陸宋全軍覆沒。

臺宋有兩個「𨔰」和「愣」錯了。

3、丰丯王𡈼壬

明甲乙沒有需要互換的。

思源的「邦」莫名其妙用了丯。「憲」「害」都錯用了丰,而且沒出頭。「𡈼」部件,只有朢、呈、聖、廷對了。「壬」部件,莫名其妙改成了撇。

陸宋,只有「邦」「廷」對了。

臺宋,「邦」「契」錯了,其餘都對。

4、月⺼𣍝

明甲乙没有需要互换的。

思源完全不區分肉和月。至於舟,勝對了,服就錯了。

陸宋全軍覆沒。

臺宋都能區分肉和月,但是不能區分月和舟。

5、曰日⺜

明甲乙沒有需要互換的。

思源完全不能區分曰和日。至於冒,只有塌對了,其他都錯了,而且㬅莫名其妙加了一點。

陸宋全軍覆沒。

臺宋完全不能區分曰和日。能區分冒和曰。

6、巩卂凡丸𠃨

明甲乙沒有需要互換的。

思源相當混亂,各種點、橫、出頭不出頭都不明白。

陸宋同思源。

臺宋挺不錯,只有單字「凡」沒對。

7、禸彐⺕人入

明甲乙沒有需要互換的。

思源的「禸」全軍覆沒,「幾」莫名其妙出頭。其他都對。

陸宋全軍覆沒,「蔑」該出不出,「幾」不該出反出。金和全也不區分。

臺宋「離」有出頭,但也太不明顯了。

8、冄禾𥝌𠙹由屮

「衰」明甲乙應該互換,因為是否出頭並非異體,明甲應該用字理正的,就像「稽」一樣。

思源只有「那」對了。「稽」的「匕」莫名其妙根據手寫體改成了「上」。

陸宋全軍覆沒。

臺宋全軍覆沒。

9、其他是否穿

明甲乙的「吳」是否互換,不好判斷,因為不確定是否構成異體字。考慮到明甲更常見,還是不換為好。

思源有些對有些錯,最奇怪的是「吳」居然斷開了,其他字體都沒有斷。

陸宋「朁」「韋」「吳」對的,其餘錯誤。

臺宋有些對有些錯。

10、⺈刀谷

明甲乙沒有需要互換的。

思源的「𧮫」「谷」沒有區分。

陸宋「象」「鬼」都連在一起了。

臺宋同思源。

11、其他是否連1

明甲乙沒有需要互換的。

思源的「聰」沒斷開。「羞」「差」都斷開了。「你」斷開了。

陸宋全軍覆沒,「羞」「差」都連在一起了。

臺宋「羞」「差」都斷開了,其他都對。

12、其他是否連2

明甲乙的「華」「肅」建議互換,因為不是異體,明甲應該用字理最正的。

思源的「棄」莫名其妙斷開了,其他字體都沒斷。除了「姬」,都錯了。

陸宋全軍覆沒。

臺宋只有「叟」對了。

13、几𠘧儿ㄦ

明甲乙沒有需要互換的。

思源把「𠘧」歸到了「几」,其他有的對有的錯。

陸宋區分了「几」「𠘧」,其餘全軍覆沒。

臺宋區分了「几」「𠘧」,其他有的對有的錯。

14、旅夂攵

明甲乙沒有需要互換的。

思源的「旅」「舛」全錯。

臺宋的「攵」都對了。所有的「夂」都換成了「夊」。

15、橫點

明甲乙沒有需要互換的。

思源把大多數橫點都歸到了豎點。

陸宋全軍覆沒。

臺宋只有單字「今」是對的。

16、豎點、點

明甲乙沒有需要互換的。

思源把「於」的點歸到了「冬」。

陸宋、臺宋把「冬」的點歸到了「於」。

17、其他點

明甲乙的「尞」「尉」需要互換,因為不構成異體字,明甲要用字理更正的。

思源「尞」「尉」和「茶」正好反了。「隙」莫名其妙加了鉤。「深」「呆」連在了一起。「殺」歸到了「木」。

陸宋只有「茶」「隙」是對的。

臺宋也錯了很多。

18、匚亡匸工

明甲乙沒有需要互換的。

思源只有「框」「巨」是對的。

陸宋全軍覆沒。

臺宋「匸」「工」是對的。

19、撇點、點橫

明甲乙沒有需要互換的。

思源只有「隹」對了。

陸宋全軍覆沒。

臺宋全軍覆沒。

20、內外八

明甲乙沒有需要互換的。

思源「率」沒對,其他都挺好。

陸宋幾乎都錯了。

臺宋同陸宋。

21、撇、橫

明甲乙沒有需要互換的。

思源「臿」「插」並不統一。「吞」「忝」並不統一。「舐」「卿」改成了撇。

陸宋「天」挺好,其他幾乎都錯了。

臺宋只「屯」「卿」錯了。

22、爫⺤

明甲乙沒有需要互換的。

思源的「爵頭」錯了,其他對的。

陸宋把「爵頭」統一成了「愛、舜頭」。

臺宋同陸宋。

23、長短橫

明甲乙沒有需要互換的。

思源很迷,把「幸」歸到了「執」。

陸宋、臺宋都把「執」歸到了「幸」。

24、其他

明甲乙沒有需要互換的。建議明乙「爨」的上面改成「同」這俗寫。

思源的「蚩」「䩶」完全反了。

陸宋只有「蚩」是對的。

臺宋除了「者」「令」,其他基本都對。

25、老、匕

明甲乙不需要互換。

其餘字體的「老」都挑出來了。

臺宋的「匕」莫名其妙換成了橫。

26、隸定

明乙都用了隸定字。

27、美觀

都正常。

28、造型

明甲都沒加冗余襯線,明乙都加了冗余襯線。

總結

數量 明甲 明乙 思源 陸宋 臺宋
⻀艹 14 14 12 0 1 8
覀西襾罒 10 9 10 4 3 4
丰丯王𡈼壬 16 16 12 5 3 11
月⺼𣍝 11 11 11 3 2 4
曰日⺜ 19 19 19 7 6 9
巩卂凡丸𠃨 10 10 10 1 3 9
禸彐⺕人入 9 9 9 5 1 6
冄禾𥝌𠙹由屮 9 9 9 6 5 5
其他是否穿 13 12 11 7 2 6
⺈刀谷 10 10 10 7 6 8
其他是否連1 9 9 9 6 3 7
其他是否連2 10 8 8 1 1 2
几𠘧儿ㄦ 16 16 16 9 6 10
旅夂攵 8 8 8 4 1 4
橫點 17 17 17 3 0 2
豎點、點 10 10 10 8 3 3
其他點 12 10 11 5 2 5
匚亡匸工 9 9 7 2 0 6
撇點、點橫 5 5 5 2 1 1
內外八 15 15 14 12 2 2
撇、橫 15 15 15 11 6 13
爫⺤ 6 6 5 4 2 2
長短橫 3 3 3 2 3 3
其他 8 8 8 5 3 5
老、匕 4 4 3 2 1 0
隸定 12 12 11 7 8 8
美觀 10 8 9 5 2 3
造型 15 11 15 13 2 4
總計 305 293 287 146 78 150
比例 0.96065574 0.94098361 0.47868852 0.2557377 0.49180328

可以看到,明甲符合率最高,96%,明乙緊隨其後,94%,臺宋、思源不相上下,49%、48%;陸宋完敗,20%。之所以陸宋還剩20%,因為它把幾個部件都歸爲一個,肯定有個是對的。我以前一直以為思源宋韓文版是非常好的舊字形,沒想到一比較纔發現跟臺灣字體一個水準,瞬間失落。產生錯覺的原因是思源宋的襯線保留得非常好,見最後一項「造型」,跟明甲明乙一樣完全達標。另外,思源收字不足,很多部件在ExB區,思源就沒有。一點明的收字非常足,ExB 沒有的部件他都有。

下篇討論兩個編碼問題。Unicode 的編碼問題一直很頭疼,首先,繁簡字怎麼分類?我大致分成以下四類:

第一類

傳承字形和手寫字形不同的字,繁體用傳承字形,簡體用手寫字形:兌、恆、內、戶、臥、黃、勻、別、溫、屆、禿、冊。

Unicode 傳承字形 手寫字形 繁體 簡體 明甲 明乙
\u514c
\u5151

Unicode 傳承字形 手寫字形 繁體 簡體 明甲 明乙
\u6046
\u6052

Unicode 傳承字形 手寫字形 繁體 簡體 明甲 明乙
\u5167
\u5185

Unicode 傳承字形 手寫字形 繁體 簡體 明甲 明乙
\u6236
\u6237
\u6238 不用

Unicode 傳承字形 手寫字形 繁體 簡體 明甲 明乙
\u81e5
\u5367

Unicode 傳承字形 手寫字形 繁體 簡體 明甲 明乙
\u9ec3
\u9ec4

Unicode 傳承字形 手寫字形 繁體 簡體 明甲 明乙
\u52fb
\u5300 點挑 點挑 橫挑 橫挑

Unicode 傳承字形 手寫字形 繁體 簡體 明甲 明乙
\u5225
\u522b

Unicode 傳承字形 手寫字形 繁體 簡體 明甲 明乙
\u6eab
\u6e29

Unicode 傳承字形 手寫字形 繁體 簡體 明甲 明乙
\u5c46
\u5c4a

禿

Unicode 傳承字形 手寫字形 繁體 簡體 明甲 明乙
\u79bf 禿 禿 禿 禿
\u79c3 禿 禿

Unicode 傳承字形 手寫字形 繁體 簡體 明甲 明乙
\u518a
\u518c

小結

明甲乙在第一類絕大多數情況下都是將傳承字形顯示為傳承字形,將陸標顯示為陸標,但有兩個例外:

  • 【别】明甲的「别u522b」顯示為「別u5225
  • 【秃】明甲乙的「秃u79bf」都顯示為「禿u79bf

為了邏輯上的統一連貫,建議將明甲的「别」顯示為「别」,將明甲乙的「秃」顯示為「秃」。這樣用戶在使用繁體輸入模式時,能輸入傳統字形,在使用簡體輸入模式時,能輸入手寫字形。

第二類

傳承字形和手寫字形不同的字,繁體用傳承字形,簡體用另外的字:爲、衆。

Unicode 傳承字形 手寫字形 繁體 簡體 明甲 明乙
\u7232
\u70ba
\u4e3a

Unicode 傳承字形 手寫字形 繁體 簡體 明甲 明乙
\u8846 不出頭,三個人 不出頭,三個人 不出頭,三個人
\u773e
\u4f17

小結

  • 明甲乙將「為u70ba」都顯示為「爲u7232
  • 明甲乙將「衆u8846」顯示為「衆u8846」,將「眾u773e」顯示為「眾u773e

建議將明甲的「為」顯示為「爲」,將「爲」顯示為「為」;明乙將「為」顯示為「為」,將「爲」顯示為「爲」。因為大部分繁體輸入法的默認「為」是「為」,而非「爲」;這是兩個不同的字,而非兩種寫法,不宜混同。

第三類

傳承字形和手寫字形不同的字,繁簡均用手寫字形:敎、査、兪、値、吿、眞、尙、周、靑、卽。

Unicode 傳承字形 手寫字形 繁體 簡體 明甲 明乙
\u654e
\u6559

Unicode 傳承字形 手寫字形 繁體 簡體 明甲 明乙
\u67fb
\u67e5

Unicode 傳承字形 手寫字形 繁體 簡體 明甲 明乙
\u516a
\u4fde

Unicode 傳承字形 手寫字形 繁體 簡體 明甲 明乙
\u5024
\u503c

Unicode 傳承字形 手寫字形 繁體 簡體 明甲 明乙
\u543f
\u544a

Unicode 傳承字形 手寫字形 繁體 簡體 明甲 明乙
\u771e
\u771f

Unicode 傳承字形 手寫字形 繁體 簡體 明甲 明乙
\u537d
\u5373 下折

Unicode 傳承字形 手寫字形 繁體 簡體 明甲 明乙
\u5c19
\u5c1a

Unicode 傳承字形 手寫字形 繁體 簡體 明甲 明乙
\u9751
\u9752

Unicode 傳承字形 手寫字形 繁體 簡體 明甲 明乙
\ud87e\udc3f
\u5468 不出頭 出頭 出頭

小結

「周」的編碼情況較為複雜,不予考慮。

  • 【敎査兪値吿眞】明甲乙都把傳承字形和手寫字形的編碼顯示為傳承字形
  • 【卽】明甲將「即u5373」顯示為傳承字形「卽u537d,下折」,其餘三個顯示為次優傳承字形「卽u537d
  • 【尙】明甲乙將「尙u5c19」顯示為「尙u5c19,捺」,將「尚u5c1a」顯示為「尙u5c1a」
  • 【靑】明乙將「靑u9751」顯示為「靑u9751,斷」斷,其餘三個都顯示為「靑u9751」。

這種情況較複雜,因為用戶使用繁體模式輸入,默認選擇的是手寫字形,而非傳承字形。故建議明甲將這些字的手寫字形顯示為傳承字形,傳承字形顯示為手寫字形,明乙將這些字的手寫字形顯示為手寫字形,傳承字形顯示為傳承字形。明甲乙的「尙」可取消點和捺的區別,因為實在看不出這樣區分有什麼意義,明甲直接將「尚」顯示為「尙」,將「尙」顯示為「尚」卽可;明乙將「尙」顯示為「尙」,將「尚」顯示為「尚」。

第四類

傳承字形和手寫字形不同的字,繁體用手寫字形,簡體用另外的字:鄕。

Unicode 傳承字形 手寫字形 繁體 簡體 明甲 明乙
\u9115
\u9109 下折
\u4e61

小結

建議明甲將「鄉u9109」顯示為「鄕u9115,下折」,將「鄕u9115」顯示為「鄉u9109」;明乙將「鄉u9109」顯示為「鄉u9109」,將「鄕u9115」顯示為「鄕u9115」。這樣「鄕下折」「鄕」「鄉」三個字都能輸出,並且優選「鄕下折」。

第五類

傳承字形和手寫字形相同,且有隸定字,且兩者編碼相同:曽、㚆、亰、賛、竝、㓝、暜、𣍘。

Unicode 傳承字形 手寫字形 隸定 繁體 簡體 明甲 明乙
\u66fe
\u66fd

Unicode 傳承字形 手寫字形 隸定 繁體 簡體 明甲 明乙
\u590d 複復 貫通
\u3686

Unicode 傳承字形 手寫字形 隸定 繁體 簡體 明甲 明乙
\u4eac 貫通
\u4eb0

Unicode 傳承字形 手寫字形 隸定 繁體 簡體 明甲 明乙
\u8d0a
\u8cdb
\u8d5e

Unicode 傳承字形 手寫字形 隸定 繁體 簡體 明甲 明乙
\u4e26
\u7add
\u5e76

Unicode 傳承字形 手寫字形 隸定 繁體 簡體 明甲 明乙
\u5211
\u34dd

Unicode 傳承字形 手寫字形 隸定 繁體 簡體 明甲 明乙
\u666e
\u669c

Unicode 傳承字形 手寫字形 隸定 繁體 簡體 明甲 明乙
\u66f9
\ud84c\udf58 𣍘

小結

  • 【曾复京贊】這幾個字的傳承字形與隸定字差別不大,所以明甲都將傳承字形顯示為傳承字形,明乙都將傳承字形顯示為最準確的隸定字
  • 【並刑普曹】這幾個字的傳承字形與隸定字差別較大,明甲乙都將傳承字形顯示為傳承字形,將隸定字顯示為隸定字

總結

建議:明甲乙的「夔」「龝」「罪」等網頭、「衰」「華」「肅」「尞」「尉」互換。將明甲的「别u522b」顯示為「别u522b」,將明甲乙的「秃u79bf」顯示為「秃u79bf」。將明甲的「為u70ba」顯示為「爲u7232」,將「爲u7232」顯示為「為u70ba」;將明乙的「為u70ba」顯示為「為u70ba」,「爲u7232」顯示為「爲u7232」。傳承字形和手寫字形不同,繁簡均用手寫字形的字:明甲將這些字的手寫字形顯示為傳承字形,傳承字形顯示為手寫字形;明乙將這些字的手寫字形顯示為手寫字形,傳承字形顯示為傳承字形。明甲將「尚u5c1a」顯示為「尙u5c19」,將「尙u5c19」顯示為「尚u5c1a」;明乙將「尙u5c19」顯示為「尙u5c19」,將「尚u5c1a」顯示為「尚u5c1a」。明甲將「鄉u9109」顯示為「鄕u9115,下折」,將「鄕u9115」顯示為「鄉u9109」;明乙將「鄉u9109」顯示為「鄉u9109」,將「鄕u9115」顯示為「鄕u9115」。此外,還有顛—顚,楡喻偸偷,偽—僞,高—髙,俱—倶,胄——冑,啓—啟,研—硏等等,不勝列舉。

使用了上述調整方法之後,能達到這樣的效果:

  • 明甲
    • 使用簡體輸入法,能夠默認輸入最合字理的傳承字形的簡體
    • 使用繁體輸入法,能夠默認輸入最合字理的傳承字形的繁體
  • 明乙
    • 使用簡體輸入法,能夠默認輸入:
      • 只有一個編碼的字:傳承字形、隸定字形的簡體
      • 傳承字形、手寫字形是兩個編碼的字:手寫字形、隸定字形的簡體
    • 使用繁體輸入法,能夠默認輸入:
      • 只有一個編碼的字:傳承字形、隸定字形的繁體
      • 傳承字形、手寫字形是兩個編碼的字:手寫字形、隸定字形的簡體