倉頡輸入法/取碼原則
基本取碼 | ◄ | 倉頡輸入法 取碼原則 |
► | 例外字 |
漢字有時會有兩種或以上取碼方式,因此倉頡輸入法製訂了一些取碼原則,以決定「正確且唯一」的編碼,如下:
- 完整原則:取碼應反映字形特徵且盡量精簡。[1]
- 精簡原則:選擇碼數最少的取碼方式。
- 先繁後簡原則:碼數已最少時,先取大字根,後取小字根。
- 字形特徵原則:取碼時必須盡量保留字形特徵,包括——[2]
- 區塊分則:取碼時優先以「區塊」方式,在字根相接處分割。
- 轉角分則:碼數已最少時,優先選擇能保留筆畫轉角的字根。
- 跨越分則:為減少碼數及反映字形特徵,字根在某些情況可相互跨越。
- 省略原則:漢字分割後,各部分取碼時皆不得超出應取碼數的限制。
- 局部省略:先假定全取,再略去超出限定碼數的字碼。
- 包含省略:取字首、字身、次字首、次字身最後一碼時,省略包含在內的部分。
完整原則
編輯完整原則要求:取碼應儘可能涵蓋完整字形、保留字形特徵、且避免增加碼數。
此原則較抽象,可分爲以下細則:
精簡原則
編輯精簡原則是指,當一個字有多種取碼方式時,選擇碼數最少的取法。此原則之用意在於,有覆蓋面較大的字根,避免細分成更小字根,以提高打字效率,及避免把字形分解得太零碎。[3]
例如「丰」字,取碼「十十十」()不如「手十」()精簡,故應取後者。
又如「衣」字,取碼「卜竹女人」()不如「卜竹女」(),故應取後者。
以下為更多例字:
例字 | 圖解 | 正確取碼 | 錯誤取碼 |
---|---|---|---|
王 | 一土() | 一十一() | |
百 | 一日() | 一竹日() | |
光 | 火一山() | 火一竹山() | |
五 | 一木一() | 一十弓一() | |
幸 | 土廿十() | 土金一十() | |
句 | 心口() | 竹尸口() | |
宜 | 十月一() | 戈月月一() | |
主 | 卜土() | 戈一土() | |
共 | 廿金() | 廿一金() | |
走 | 土卜人() | 十一卜人() |
注意:套用精簡原則時,不可跨越字首與字身或次字首與次字身的分界。例如「華」字,「」是字首,「」是字身,取碼「廿・一廿十」(・)。若把字首連同字身的第一筆一起取「」而作「廿廿十」(),就不正確。
先繁後簡原則
編輯先繁後簡原則是指,當一個字有多種取碼方式碼數相等時,先取較繁複、涵蓋面較大的字根,再取較簡單、涵蓋面較小的字根。[4]
例如「丰」字,取「十手」()或取「手十」()都符合精簡原則,但根據本原則,應先取涵蓋面大的「」,故應取後者。
又如「衣」字,取「戈一女」()或取「卜竹女」()都符合精簡原則,但根據本原則,應先取涵蓋面大的「」,故應取後者。
以下為更多例字:
例字 | 圖解 | 正確取碼 | 錯誤取碼 |
---|---|---|---|
青 | 手一月() | 十土月() | |
堇 | 廿中手一() | 廿中十土() | |
亡 | 卜女() | 戈尸() | |
毛 | 竹手山() | 竹十心() | |
豕 | 一尸竹人() | 一心竹人() | |
先 | 竹土竹山() | 竹十一山() | |
方 | 卜竹尸() | 戈一尸() | |
畢 | 田廿十() | 田廿手() | |
垂 | 竹十廿一() | 竹十廿土() | |
廿中手人() | 廿中十大() |
字形特徵原則
編輯字形特徵原則是指,取碼時必須盡量保留字形特徵。因為保留字形特徵較符合視覺辨識的原理,且更能區別形似漢字。[5]
此原則的具體細節大致可歸納為以下幾項:[2]
區塊分則
編輯一、取碼時,優先以「區塊」的方式,在字根的相接處分割,避免字根互相跨越。[6]
例如「失」字應在相接處分割作「竹手人」(),而非依筆順取「人大」(),否則會導致「人」()和「大」()互相跨越。
此分則優先權極高,先於前述之精簡原則及先繁後簡原則。例如「失」取碼「人大」比取碼「竹手人」更符合精簡原則,但由於前者不符合此分則的要求,因而取後者。
以下是更多例子:
例字 | |||||
---|---|---|---|---|---|
正確取碼 | 火木() | 火手() | 一火十() | 竹火木() | 人十山() |
錯誤取碼 | 木金() | 手金() | 一十金() | 竹木金() | 人山一() |
例字 | |||||
---|---|---|---|---|---|
正確取碼 | 心木() | 心廿() | 十山() | 木大() | 中月大() |
錯誤取碼 | 木山() | 心山() | 山一() | 大弓() | 大月() |
例字 | |||||
---|---|---|---|---|---|
正確取碼 | 十大日() | 十大() | 卜人弓大() | 心大大() | 竹田大大() |
錯誤取碼 | 土竹日() | 大人() | 卜人弓人() | 心竹竹戈() | 竹田大竹() |
例字 | |||||
---|---|---|---|---|---|
正確取碼 | 中田() | 田中() | 中田中() | 十田十() | 中田心() |
錯誤取碼 | 十田() | 日中() | 中一() | 手日() | 心日() |
例字 | |||||
---|---|---|---|---|---|
正確取碼 | 一中田大() | 大中田山() | 十中大() | 十中中弓() | 中田中女()[7] |
錯誤取碼 | 一大日() | 大山日() | 大口人() | 木口尸一() |
例字 | |||||
---|---|---|---|---|---|
正確取碼 | 竹水() | 竹尸() | 竹月口() | 竹手() | 竹手一() |
錯誤取碼 | 弓人() | 竹尸()[8] | 人尸口() | 人十() | 人土() |
有些字根會埋在其他字根的凹陷位置,如「喪」字在「土」的凹陷處有「口」;「巫」字在「工」的凹陷處有「人」;「业」字在「」的凹陷處有「」字根;甚至像「匚」、「冂」、「凵」這類外框更專門在內部收藏其他字根。由於「土」、「工」、「」等形狀並未與其他字根互相跨越,因而也都符合區塊分則。
轉角分則
編輯二、當一個字有多種取碼方式碼數相等時,優先選擇能保留筆畫轉角的字根。[9]
例如「九」字,可以取碼「大山」()或「大弓」(),由於後者保留了筆畫轉角,故應取後者。
以下為更多例字:
例字 | ||||
---|---|---|---|---|
正確取碼 | 戈弓水() | 戈弓人() | 戈弓火() | 弓大() |
錯誤取碼 | 戈一水() | 卜竹人()[10] | 卜竹火()[11] | 一大() |
例字 | ||||
---|---|---|---|---|
正確取碼 | 大尸() | 大弓() | 戈大弓火() | 竹弓() |
錯誤取碼 | 大弓() | 大山() | 戈大竹火() | 竹一山() |
例字 | ||||
---|---|---|---|---|
正確取碼 | 口女弓大() | 一女大山() | 一女木竹() | 一一女尸() |
錯誤取碼 | 口中弓大() 口女中大() |
一中大山() | 一中木竹() | 一一中尸() |
轉角分則是優先權較低的原則。以上各例在套用轉角分則時並未造成取碼數增加;而如果保留筆畫轉角勢必增加取碼數,則應以精簡碼數優先。如以下各字:
例字 | ||||
---|---|---|---|---|
正確取碼 | 卜尸火() | 卜尸一() | 手弓戈() | 大木() |
錯誤取碼 | 卜女尸火() | 卜女尸一() | 手女弓戈() | 大女木() |
跨越分則
編輯三、為減少碼數及反映字形特徵,在某些情況下,可允許字根相互跨越。[12]
如前「區塊分則」所述,取碼時原則上應避免讓字根互相重疊。然而對於一些封閉類字形,如、、、、、、、、、……等,書寫時常會有筆畫穿過,若要求其他字根不得跨越這些字形,只能切出大量瑣碎且無法反映字形特徵的筆畫,如此便違反了「完整原則」的本意。故此時允許其他字根跨越這些字形。如以下例字:
例字 | |||||
---|---|---|---|---|---|
正確取碼 | 十月() | 月十月() | 戈十月() | 十戈月戈() | 戈中月() |
錯誤取碼 | 十月中() | 月十月中() | 戈十月手() | 戈中月手() |
例字 | |||||
---|---|---|---|---|---|
正確取碼 | 中月() | 中月山() | 人月土() | 中中弓() | 金弓中竹() |
錯誤取碼 | 中月中 |
例字 | |||||
---|---|---|---|---|---|
正確取碼 | 人月() | 人月人() | 一人月() | 土月() | 一土月() |
例字 | |||||
---|---|---|---|---|---|
正確取碼 | 一中月人() | 一中月卜() | 一金田() | 一人人月() | 一山月() |
例字 | |||||
---|---|---|---|---|---|
正確取碼 | 月尸木() | 尸大口() | 月卜() | 竹月卜戈() | 田卜戈() |
例字 | |||||
---|---|---|---|---|---|
正確取碼 | 廿田() | 廿月金() | 田廿十() | 卜戈廿木() | 廿一廿十() |
※「」、「」、「」、「」、「」、「」幾個字形依其定義禁止其它字根跨越其封閉區域,只能按區塊分則於周邊切斷(或改取其他合適字根)。[13]詳見〈輔助字形〉一節及區塊分則中「由、甲、申、車、曳、更、奄、吏、事」等字例。
請記得完整原則的本意是兼顧字形特徵及取碼精簡,若無法達到這些效果,便不應套用此分則。
各細則的優先權
編輯由於有些細則需要其他細則的觀念,以上介紹安排了一定順序,但統整而言,若細則彼此衝突,其優先順序是:跨越分則 > 區塊分則 > 精簡原則 > 轉角分則 > 先繁後簡原則。
省略原則
編輯如〈基本取碼〉一章所述,漢字分割後各部分皆規範了應取碼數,當碼數超出限制,就要根據此原則省略其中幾碼。
部分省略
編輯若漢字的某部份碼數過多超出取碼限制,應按原則省略其中幾碼,這就是「部分省略」(或稱「局部省略」)。
例如鰉→魚・白・王→弓田火・竹日・一土→限取二・二・一碼→弓火・竹日・土
「鰉」字的「魚」是字首,「皇」是字身,字身還可再分成次字首「白」和次字身「王」。字首「魚」全碼爲「弓田火」,但字首限取2碼,故只取首碼「弓」及尾碼「火」。次字首「白」全碼爲「竹日」,次字身「王」全碼爲「一土」。因次字首為2碼以上,按規則次字首取第一碼「竹」及尾碼「日」,次字身取尾碼「土」。總此「鰉」最終取碼爲「弓火・竹日・土」。
部分省略尚有一關鍵在於:先假定完整取碼,而後按規則省去中間的編碼;而非直接跳到字形的尾部取碼。因此根據「先繁後簡原則」,前面應取涵蓋較廣的字根,而尾碼應取涵蓋較少的字根(可用「後簡原則」的方式記憶)。
如以下諸例。取碼中的紅字,是初學者容易忘記「後簡」原則而取錯的碼:
包含省略
編輯、、、、、、、[14]、、、、、、、、、、、、、、、、、、、、等三面或四面的「外框」內常包含瑣碎的筆畫,為求易於辨識,特規定取整體字、字首、字身、次字首、次字身最後一碼時,省略在「外框」內的部分。這就是「包含省略」原則。[15]
以下是幾個與包含省略有關的例子:
注意:包含省略不要求外框與內部字形相互分離。只要外框符合,整體字也可以適用包含省略。例如前面的「酉」、「母」都是整體字,而非「字首『』字身『一』」、「字首『』字身『丶』」的組合字;其他如「啇」、「禺」等字形亦然。
以下為更多例子:
例字 | |||||
---|---|---|---|---|---|
正確取碼 | 手・卜金月(・) | 月・女女・田(・・) | 竹田・一女尸(・) | 廿・日弓・田(・・) | 尸田・月山山(・) |
錯誤取碼 | 手・卜金口(・) | 月・女女・大(・・) | 竹木・一女尸(・) | 廿・日弓・火(・・) | 尸中・月山山(・) |
例字 | |||||
---|---|---|---|---|---|
正確取碼 | 竹月・尸一・一(・・) | 手・山・人月(・・) | 弓中・一・口月(・・) | 手・弓月・大(・・) | 月月・山(・) |
錯誤取碼 | 竹廿・尸一・一(・・) | 手・山・人口(・・) | 弓中・一・口中(・・) | 手・弓金・大(・・) | 月水・山(・) |
例字 | |||||
---|---|---|---|---|---|
正確取碼 | 水・廿中月(・) | 一一・月月・心(・・) | 弓月・尸竹・手(・・) | 弓弓・心口(・) | 一弓・心日(・) |
錯誤取碼 | 水・廿中人(・) | 一一・月戈・心(・・) | 弓土・尸竹・手(・・) | 弓戈・心口(・) | 一戈・心日(・) |
例字 | |||||
---|---|---|---|---|---|
正確取碼 | 一月・一・一戈(・・) | 廿・田中月(・) | 卜山・日女(・) | 廿・戈一・尸(・・) | 月金・戈一・尸(・・) |
錯誤取碼 | 一卜・一・一戈(・・) | 廿・田中戈(・) | 卜人・日女(・) | 廿・戈一・中(・・) | 月金・戈一・中(・・) |
複雜的外框例字
編輯例字 | |||||
---|---|---|---|---|---|
正確取碼 | 竹弓・戈口(・) | 廿廿・一女弓(・) | 水・日・心女(・・) | 弓尸・月廿(・) | 廿田・日(・) |
錯誤取碼 | 竹戈・戈口(・) | 廿廿・一女戈(・) | 水・日・心人(・・) | 弓水・月廿(・) | 廿廿・日(・) |
例字 | |||||
---|---|---|---|---|---|
正確取碼 | 一田・人・田卜(・・) | 廿・人・田卜(・・) | 一月・人・田卜(・・) | 竹卜・金口(・) | 水・竹月卜(・) |
「工、土、王」等鑲嵌形空框例字
編輯三代倉頡把鑲嵌在「、、、」等形塊左右兩邊空框上的部件視爲被包含;五代倉頡則取消了本規則。
例字 (三代) |
|||||
---|---|---|---|---|---|
三代取碼 | 一月・口口・一(・・) | 火・一月・一(・・) | 火火・月・一土(・・) | 水・火火・土(・・) | 水・金大土(・・) |
例字 (五代) |
|||||
五代取碼 | 一月・口口・人(・・) | 火・一月・人(・・) | 火火・月・一戈(・・) | 水・火火・戈(・・) | 水・金大金(・・) |
不適用包含省略的字形
編輯例字 | 取碼 | 說明 |
---|---|---|
翻 | 竹田・尸一・一(・・) | 「羽」部件的「」不視作三面包圍着的「外框」。應該是兩面包圍着的「外框」。 |
駐 | 尸火・卜土(・) | 「馬」部件的「」不視作三面包圍着的「外框」。 |
鳧 | 竹火・竹弓(・) | 「鳥」部件的「」不視作三面包圍着的「外框」。 |
燭 | 火・田中・戈(・・) | 「蜀」部件的「」不視作三面包圍着的「外框」。 |
敬 | 廿口・人大(・) | 「茍」部件的「」不視作三面包圍着的「外框」。 |
盛 | 戈尸・月廿(・) | 字首「成」部件的「戊」不視作三面包含的「外框」,其字形視作從「戈」、從部首以外的筆畫。 |
感 | 戈口・心(・) | 字首「咸」部件的「戊」不視作三面包含的「外框」,其字形視作從「戈」、從部首以外的筆畫。 |
慼 | 戈火・心(・) | 字首「戚」部件的「戊」不視作三面包含的「外框」,其字形視作從「戈」、從部首以外的筆畫。 |
熱 | 土戈・火(・) | 「丸」部件拆碼「大弓戈」,其「」視作在撇筆的左邊,故不算包含。 |
斆 | 竹木・人大(・) | 「」底部的「」不視作三面包圍「外框」,與「」不同。[16] |
附註
編輯- ↑ 發明人朱邦復在《第五代倉頡輸入法手冊》對「完整原則」的說法是「若有兩個或兩個以上的符號都合於所需形狀時,應該取形狀較完整,能保留字形特徵的一個」。《標準倉頡第二代中文輸入法》及《倉頡第三代中文字母輸入法》將「取碼方法」分為「精簡原則」、「完整原則」(「若一個字有多種取法,而碼數又相等時,選擇取碼較完整的取法,也就是先取字形較繁複的碼,再取餘碼。」)、「字形特徵原則」。《倉頡第四代輸入法手冊》將「取碼方法」分為「取碼精簡」、「取碼完整」(「a・經過取碼精簡後,仍有超過一種取碼方法時,以字形不重疊為正確。b・避免在一筆過的轉角位置將字形分割開。」)、「先繁後簡」。本教科書「完整原則」按五代說法視為大原則,其下細節按三代手冊分類,其中的「完整原則」依其實際內涵比照四代手冊更名為「先繁後簡原則」。
- ↑ 2.0 2.1 字形特徵原則主要按1994年《(增訂版)倉頡第三代中文字母輸入法》第三章第三節〈字形特徵原則〉之敘述整理,各分則之名稱是為方便掌握而按其精神命名。詳見各部分之附註。
- ↑ 《倉頡第三代中文字母輸入法》〈第二節、取碼原則〉〈一、精簡原則〉:「當一個字有多種解碼可能時,以取碼數最少者為正確」
- ↑ 《倉頡第三代中文字母輸入法》〈第二節、取碼原則〉〈二、完整原則〉:「若一個字有多種取法,而碼數又相等時,選擇取碼較完整的取法,也就是先取字形較繁複的碼,再取餘碼。」
- ↑ 1984年《倉頡第三代中文字母輸入法》第二章第二節〈字形特徵原則〉:「除前述兩個原則外,還須注意是否最貼切地表示了該字母或輔助字形特徵及完整性。亦即取碼時,不能任意切割,而須保留字形的特徵。」
- ↑ 1994年《(增訂版)倉頡第三代中文字母輸入法》第三章第三節〈字形特徵原則〉:「所謂保持字形的特徵就是指取碼時儘量不取重疊之字形,適當的地方(即符合取形原則)就分割。」二代、五代手冊亦皆有提及「者」作為保留字形特徵之字例。
- ↑ 此爲三代倉頡取碼,五代改爲據分體字的字形,取「中中・女」,詳見三代與五代編碼差異的說明。
- ↑ 雖然所取的碼與正確取碼恰巧一樣,但這取碼方式仍是錯誤的。
- ↑ 1994年《(增訂版)倉頡第三代中文字母輸入法》第三章第三節〈字形特徵原則〉:「分割字形時,不在轉角處分割;而是取兩相鄰字形接連處,在同一直線上之形。……因為在轉角處分割不合書寫常理。」五代手冊亦提及「永」、「之」、「力」、「九」、「牙」等字作為保留字形特徵之字例。
- ↑ 「之」亦不可取碼作「卜人」(),因「人」的輔助字形「」是用在如「豕」的末二筆,不適用於「之去亠」。
- ↑ 「⺭」亦不可取碼作「卜火」(),因「」的撇與豎起筆在同一位置,但「⺭」的撇長超過豎。
- ↑ 1994年《(增訂版)倉頡第三代中文字母輸入法》第三章第三節〈字形特徵原則〉註二提及:「雖然我們言明儘量不取重疊字形,但為了方便,也為了簡化取碼數,並不禁止縱向筆劃及橫向筆劃貫穿其他字形……」,並有「丑」、「內」、「巿」等例字。五代手冊亦提及「甫」、「弗」、「弟」、「冉」、「曲」、「庸」等字作為保留字形特徵之字例。
- ↑ 1994年《(增訂版)倉頡第三代中文字母輸入法》第三章第三節〈字形特徵原則〉註一提及:「遇到曰、田等完全封閉之字形,若有其他筆劃要貫穿其間時,必須分割,以保持字形的特徵及完整性。」
- ↑ 「⻗」的「」能視作包含外框,因爲它不單以「」形作底部,其中豎與「」形相交的地方,剛好完整包含左、右的兩點。但如「冥」、「旁」、「安」等字,「」形明顯無法包含下方部件,故不適用包含省略原則。
- ↑ 《倉頡第四代輸入法手冊》:「整體字或組合字的字首、字身、次字首、次字身,若中間曾省略取碼,當取至最後一碼時,那字形被下列字形(……)所包圍的話,則不取那字形,取其前一碼,直至不被完全包圍為止。」《第五代倉頡輸入法手冊》:「選取最後一碼(『最後一碼』包括字首、次字首或字身的最後一碼)時,若遇到……字形,則省略包含在內的筆畫」。1994年版《倉頡第三代中文字母輸入法》:「由外而內選碼時,若碼數不足,則優先省略包含省略內在之碼。」各代對「外框」字形之定義稍有不一,此據各代手冊實際編碼字例補充。
- ↑ 「⻗」的「」能視作包含外框,因爲它不單以「」形作底部,其中豎與「」形相交的地方,剛好完整包含左、右的兩點。但如「冥」、「旁」、「安」等字,「」形明顯無法包含下方部件,故不適用包含省略原則。
基本取碼 | ◄ | 倉頡輸入法 取碼原則 |
► | 例外字 |