Skip to content

HaninFormatSpec

ShikiSuen edited this page Feb 11, 2023 · 17 revisions

漢音格式規格(2023-02-10)

本文原作者 Mengjuei Hsieh (2011),另由 Shiki Suen 增補 Ctrl+3 特殊符號表格之內容+針對既有內容的一些訂正。

History

漢音輸入法是於 1985 年由松下電器技術開發公司周峻慧以及吳家寬等人開發,是第一個拼音/注音兼具的智慧型輸入法。由於學習容易及變換率高,推出時曾造成相當震撼。惟當時台灣市場規模不大,日本松下逐漸縮小開發投資。現已無販售與維護。(Ref: 中文輸入法) Current windows version: 5.02 unlimited trial.

蘋果作業系統

在 Mac OS X 之前蘋果電腦已搭售(or bundled)漢音輸入法多年,但此程式碼並沒有被轉換到 Mac OS X. 在 Mac OS X 10.3 之後蘋果電腦曾與台灣松下簽訂授權將此規格重新實作,但簽訂的授權只到 Mac OS X 10.5 不再續約 (citation needed), 較新作業系統則無漢音輸入法。

Technical Specification

規格 說明
系統字數 13,051 字
系統詞書 63,000 詞
學習字詞數 100 字詞數
自建詞登錄方式 線上
自建詞長度 5 字(MAX)/4,096 字
自建略語容量 外建 256 略語
編輯長度 5-40 字
注音鍵盤排列方式 標準注音、IBM 注音、倚天注音、注音第二式、羅馬拼音、自定鍵盤
In-Line 行內輸入
智慧型重複句庫
提示功能
自定快速鍵
專業辭庫功能 姓氏、全省街道名、軍事、資訊、商業等 15 種共計 130,000 詞
人名辭庫 15,000 詞
使用者自造字輸入
標點、特殊符號 用音或符號輸入
曖昧功能
線上環境設定
文字查詢功能
輔助說明視窗

Switching between 中文 and 英數 input modes.

按 shift 切換中/英文。Indicator change between 中 and a where a is a 2-byte version. Press shift to switch to EnNum and again back to Chinese.

Switching between more input modes.

另外,按 Ctrl+` 可在四種輸入模式間切換,其中另外包含了 英數全形 和 地址 兩種輸入模式,地址模式可以讓您在輸入地址時有較正確的選字,例如當輸入 "萬大陸" 會自動選成 "萬大路"。

Out of order override Bopomofo composing

對於注音輸入速度很快,但是經常按錯鍵的人來說,漢音最大的好處是「容錯度」非常高。 這裡指的並不是它的「模糊發音」功能,而是當多個注音碼中有錯誤時(舉例來說, 當要輸入「光」字,卻因為打太快而按成「ㄍㄧㄤ」時,不需要退回倒數第二個字, 只要再按「ㄨ」,就會變成正確的「ㄍㄨㄤ」。對於每天經常要在鍵盤上輸入上萬字、 又因為手指大而常按錯鍵的筆者來說,每個字可以少用一秒鐘來輸入,一天就可以省下十分可觀的時間。

Choosing between the commit candidates.

手動選字可將游標移到字的上面然後按 空白鍵 或 下方向鍵 ↓,再利用「方向鍵」或是「英文列號+數字行號」來選字。(Esc 鍵可關閉選字視窗), has a set of icons of arrows to indicate there are other page in the candidates window. 空白鍵選字:微軟的新注音輸入法 2007 雖然選字較以往版本聰明,但是仍有問題,如果需要選字,手指得要移開鍵盤熱區往右移點方向鍵,實在不太方便,漢音輸入法就像古老的中文輸入法般,以空白鍵呼叫選字視窗。

在候選詞 window 跳出現可有設定「滾動」次數 2 次或 4 次

行內跟隨 and 浮動組字視窗

提供嶄新的 In-Line(行內游標輸入)界面,免除視線移動,提供工作效率。

Error Correction / Tolerance

如果您想輸入 "吃飯",但不太會念,只知道近似的發音 (如 ㄘ ㄈㄢ‵),當輸入完近似的發音後將游標移到第一個字然後按 Ctrl+Q 就會顯示「曖昧音字詞」,也就是近音字。

Erase the buffer

Shift-Delete

Repetitive Commit

如果想再打剛剛輸入過的字詞不用麻煩地再重新輸入一遍,只要按 Ctrl+4 就可以快速重複輸入。

Buffer Commit History

智慧型重複句庫功能,可記憶最近輸入的八個句子,並可重複選用。

專業詞庫

系統辭彙 63,000 詞,外加 16 種總計有 145,000 詞的專業辭庫(內含常用街道、人名辭彙......)。有 14 個專業辭典, 如果內建辭典和辭庫仍無法滿足需求可以自己新增辭庫與系統預設辭庫切換使用。

自建詞庫

在詞首 shift + enter 可將詞新增入辭庫,在辭庫底下的辭底會有 ﹏ 符號

略語

可以自己創建略語

文字查詢功能 / Dictionary Looking up

Ctrl-2 遇到不會發音的字時,可以利用文字的筆畫或部首做字、音的查詢。

FALLBACK

Esc 鍵除了可以用來關閉「選字視窗」等彈出來的視窗之外,它還有「取消最後一次辭彙自動轉換」的功能。例如: 當我輸入「漢音」兩字,繼續輸入「樂」之後,它會變成「和音樂」,若前面兩個字我想保留剛剛的「漢音」,可以按 Esc 鍵做回復。

螢幕鍵盤

  1. Ctrl-5
  2. 零壹鍵盤(標準鍵盤)
    標準鍵盤
  3. 注音二式
    注音二式
  4. IBM 鍵盤
    IBM鍵盤
  5. 倚天鍵盤
    倚天鍵盤
  6. 羅馬拼音鍵盤
    羅馬拼音
  7. 倚天 26 鍵盤
    26key

工具箱

Ctrl-6

缺點:

只支援 Big5 字集

References

  1. 漢音復活計畫

Appendix: 中文全形標點符號與特殊符號

在中文輸入模式時預設的標點符號就是全形標點符號,只要按住 Shift 再按標點符號就可輸入 (部份可直接輸入不須按 Shift),這對中文輸入來說相當方便。(同樣可按 空白鍵 或 ↓ 來選字)

反例: 操作BBS有點不方便,由於在漢音中文輸出模式下,按住 shift 打出的英文字為全型,不比新注音方便,些換中英模式還得將前列字元刪去,在 bbs 很不方便

漢音輸入法對常輸入特殊符號者尤其方便,例如需要某些中文論文撰寫者或許得時常輸入書名號《》〈〉,或是經常輸出羅馬符號、單位符號的使用者,漢音輸入法是個好選擇。舉例而言,左書名號只要在中文情境下鍵入,(逗號),按空白鍵在根據排列按下一數字鍵便完成,雙手不離開鍵盤。羅馬數字則是鍵入羅,一樣按下空白鍵,便可輸出 Ⅰ、Ⅱ、Ⅲ ~ Ⅹ 等 Roman Numbers,而輸入 ㏕ ℉ ㎝ ℃ 等各類單位符號,鍵入鍵入單,按下空白鍵選擇。 另外像、 :;“”〝〃』「﹄等各類括號也很容易輸入,一切憑實體鍵盤上的符號表與稍微一點聯想。(還有鍵入記按空白可輸出#※♂﹏等 其他不一一列舉)

Symbols and Punctuation Table

此外,漢音輸入法還提供了 400 多個特殊符號讓您使用,只要按 Ctrl+3 便可開啟特殊符號表。

該表格由 Shiki Suen 於 2023-02-10 整理自 Windows 版漢音輸入法 5.0,每行六個符號。

有九個重複的符號。然而考慮到可能已經有使用者對這些符號的位置有肌肉記憶的可能,所以就沒有移除。

 ,、。.‧
;:?!︰…
‥﹐﹑﹒·﹔
﹕﹖﹗|–︱
—︳╴︴﹏(
)︵︶{}︷
︸〔〕︹︺【
】︻︼《》︽
︾〈〉︿﹀「
」﹁﹂『』﹃
﹄﹙﹚﹛﹜﹝
﹞‘’“”〝
〞‵′#&*
※§〃○●△
▲◎☆★◇◆
□■▽▼㊣℅
¯ ̄_ˍ﹉﹊
﹍﹎﹋﹌&﹠
﹡+-×÷±
√<>=≦≧
≠∞≒≡﹢﹣
﹤﹥﹦~∩∪
⊥∠∟⊿㏒㏑
∫∮∵∴♀♂
⊕⊙↑↓←→
↖↗↙↘∥∣
/\∕﹨$¥
〒¢£%@℃
℉﹩﹪﹫㏕㎜
㎝㎞㏎㎡㎎㎏
㏄°兙兛兞兝
兡兣嗧瓩糎▁
▂▃▄▅▆▇
█▏▎▍▌▋
▊▉┼┴┬┤
├▔─│▕┌
┐└┘╭╮╰
╯═╞╪╡◢
◣◥◤╱╲╳
012345
6789ⅠⅡ
ⅢⅣⅤⅥⅦⅧ
ⅨⅩ〡〢〣〤
〥〦〧〨〩十
卄卅ABCD
EFGHIJ
KLMNOP
QRSTUV
WXYZab
cdefgh
ijklmn
opqrst
uvwxyz
ΑΒΓΔΕΖ
ΗΘΙΚΛΜ
ΝΞΟΠΡΣ
ΤΥΦΧΨΩ
αβγδεζ
ηθικλμ
νξοπρσ
τυφχψω
ㄅㄆㄇㄈㄉㄊ
ㄋㄌㄍㄎㄏㄐ
ㄑㄒㄓㄔㄕㄖ
ㄗㄘㄙㄚㄛㄜ
ㄝㄞㄟㄠㄡㄢ
ㄣㄤㄥㄦㄧㄨ
ㄩ˙ˉˊˇˋ
╔╦╗╠╬╣
╚╩╝╒╤╕
╞╪╡╘╧╛
╓╥╖╟╫╢
╙╨╜║═╭
╮╰╯▓

General Symbols Input

Press backslash first , and press some key to display the candidates associated with the key. UI: candidate window. ( 按 \,此時輸入視窗會顯示一個 "符" 字。 按鍵盤上要顯示特殊符號的按鍵,然後按 空白鍵。 )

Updated 2023-02-10: 
* Fix two Greek characters in General Symbol Menu: Ρ and Ε.
* Replace all surrogate pairs to already-available Unicode Chars.
(	(	﹙	︵	○	●	9
)	)	﹚	︶	○	●	0
+	+	﹢	♀	♂	⊕	±	┼
,	,	﹐	、	﹑	ㄝ
-	-	ㄦ	﹍	‾	 ̄	÷	±	√	═	≡	⊥	–	—	╴	▔	─	△	▲
.	。	.	﹒	‧	·	ㄡ	÷	≒	∵	∴	☉	…	‥
/	/	∕	ㄥ	╱	≠	¢	?	﹖
0	0	)	ㄢ	﹚	︶	○	Ⅹ
1	1	!	ㄅ	Ⅰ
2	2	@	ㄉ	﹫	Ⅱ
3	3	#	ˇ	﹟	Ⅲ
4	4	$	ˋ	﹩	∫	∮	§
5	5	%	ㄓ	﹪	Ⅴ	Λ
6	6	↑	ˊ	︿	︽	Ⅵ
7	7	&	˙	Ⅶ	﹠
8	8	*	ㄚ	※	☆	★	﹡
9	9	(	ㄞ	﹙	︵	●	Ⅸ
:	:	;	ㄤ	︰	﹕
;	;	ㄤ	﹔	:	︰	﹕
<	<	,	﹐	﹑	ㄝ	﹤	〈	≦	←	∠	《	︽	︿	↖	◣	◤	Δ	┌	╭	╔	╒	╓	∟	↙	└	╰	╚	╘	╙
>	>	。	.	‧	﹒	ㄡ	÷	≒	∵	∴	☉	…	‥	﹥	〉	≧	→	》	︾	┘	╯	╝	╛	╜	↘	↗	﹀	⊿	┤	╣	╡	╢	◢	◥
=	﹦	=	═	≦	≧	≠	≒
?	?	﹖
a	A	a	ㄇ	Α	日	α
b	B	b	ㄖ	Β	月	β
c	C	c	ㄏ	℃	Γ	℅	金
d	D	d	ㄎ	Δ	δ	木
e	E	e	ㄍ	ε	Ε	水
f	F	f	ㄑ	火	℉
g	G	g	ㄕ	土
h	H	h	ㄘ	Η	竹
i	I	i	ㄛ	Ι	ι	戈
j	J	j	ㄨ	十
k	K	k	ㄜ	Κ	κ	大
l	L	l	ㄠ	Γ	㏒	㏑	λ	中
m	M	m	ㄩ	Ο	Μ	Σ	一
n	N	n	ㄙ	Ν	弓	η
o	O	o	ㄟ	○	●	◎	㊣	Θ	Ο	Φ	θ	ο	φ	人
p	P	p	ㄣ	π	Ρ	心
q	Q	q	ㄆ	手
r	R	r	ㄐ	γ	ρ	口
s	S	s	ㄋ	∫	∮	σ	尸
t	T	t	ㄔ	Τ	Υ	廿
u	U	u	ㄧ	∪	∩	Π	Ψ	μ	ψ	山
v	V	v	ㄒ	∪	∩	↓	┴	╩	╧	╨	ν	υ	女
w	W	w	ㄊ	Ω	ω	田
x	X	x	ㄌ	×	╳	Χ	χ	ξ
y	Y	y	ㄗ	卜	¥
z	Ζ	z	ㄈ	τ
[	【	﹝	︻	『	﹃	「	﹁	〔	︹
"	“	”	〝	〞	〃
'	、	﹑	‘	’
]	】	︼	』	﹄	」	﹂	〕	︺	﹞	□	■
_	_	ˍ
`	‵	′
{	{	︷	﹛
}	}	︸	﹜
~	~	︴	﹋
空白鍵	全形空白

該表格被 Shiki Suen 整理為如下格式(已去重複處理)、可直接用於 Swift 語言:

Shiki Suen 按:

  • Big5 有些符號也並非與 Unicode (非 Surrogate Pair) 一一對應。比如說全形逗號就有兩種,其中一種不是給中文用的。這種符號被 macOS 視為 Surrogate Pair,但 MS Edge Chromium 並不支援這種 Surrogate Pair、而是顯示成兩個字元。直接以整個字串的形式交給 Swift 然後再按字元拆分或者去重複的話,可能就會傷到這類 Surrogate Pair。雖然本人使用了一些新手段將這些 Surrogate Paired Characters 都換成了現在 Unicode 現成的一些單字元,但是……為了保險起見,這裡用 [String] 陣列處理。
  • 漢音輸入法 5.0 for Windows 在這個符號模式下會自動記憶使用者最近用過的字元、且該特性無法關閉。這會影響到這個符號模式的候選字順序。因此,上表也好、下文整理好的內容也好,都不保證候選字順序與漢音輸入法原廠設定一致。竊以為這個順序本身也失去了意義。
  • 下文亦有新增個別 漢音輸入法 5.0 for Windows 可能另外收錄的符號。
  • 威注音輸入法 3.3.6 的漢音鍵盤符號模式的觸發方式並非「\」鍵,而是連續敲兩下「Alt+波浪符號鍵」才會觸發。
  private static let mapHaninKeyboardSymbols: [String: [String]] = [
    " ": [" "],
    "(": ["", "", "", "", "", ""],
    ")": ["", "", "", "", "", ""],
    "+": ["", "", "", "", "", "±", ""],
    ",": ["", "", "", "", ""],
    "-": [
      "", "", "", "", "", "÷", "±", "", "",
      "", "", "", "", "", "", "", "", ""
    ],
    ".": ["", "", "", "", "·", "", "÷", "", "", "", "", "", ""],
    "/": ["", "", "", "", "", "", "", ""],
    "0": ["", "", "", "", "", "", ""],
    "1": ["", "", "", ""],
    "2": ["", "", "", "", ""],
    "3": ["", "", "ˇ", "", ""],
    "4": ["", "", "ˋ", "", "", "", "§"],
    "5": ["", "", "", "", "", "Λ"],
    "6": ["", "", "ˊ", "︿", "", ""],
    "7": ["", "", "˙", "", ""],
    "8": ["", "", "", "", "", "", ""],
    "9": ["", "", "", "", "", "", ""],
    ":": ["", "", "", "", ""],
    ";": ["", "", "", "", "", ""],
    "<": [
      "", "", "", "", "", "", "", "", "",
      "", "", "", "︿", "", "", "", "Δ", "", "",
      "", "", "", "", "", "", "", "", "", "",
    ],
    ">": [
      "", "", "", "", "", "", "÷", "",
      "", "", "", "", "", "", "", "",
      "", "", "", "", "", "", "", "",
      "", "", "", "", "", "", "", "", "", "",
    ],
    "=": ["", "", "", "", "", "", ""],
    "?": ["", ""],
    "a": ["", "", "", "Α", "", "α"],
    "b": ["", "", "", "Β", "", "β"],
    "c": ["", "", "", "", "Γ", "", ""],
    "d": ["", "", "", "Δ", "δ", ""],
    "e": ["", "", "", "ε", "Ε", ""],
    "f": ["", "", "", "", ""],
    "g": ["", "", "", ""],
    "h": ["", "", "", "Η", ""],
    "i": ["", "", "", "Ι", "ι", ""],
    "j": ["", "", "", ""],
    "k": ["", "", "", "Κ", "κ", ""],
    "l": ["", "", "", "Γ", "", "", "λ", ""],
    "m": ["", "", "", "Ο", "Μ", "Σ", ""],
    "n": ["", "", "", "Ν", "", "η"],
    "o": ["", "", "", "", "", "", "", "Θ", "Ο", "Φ", "θ", "ο", "φ", ""],
    "p": ["", "", "", "π", "Ρ", ""],
    "q": ["", "", "", ""],
    "r": ["", "", "", "γ", "ρ", ""],
    "s": ["", "", "", "", "", "σ", ""],
    "t": ["", "", "", "Τ", "Υ", "廿"],
    "u": ["", "", "", "", "", "Π", "Ψ", "μ", "ψ", ""],
    "v": ["", "", "", "", "", "", "", "", "", "", "ν", "υ", ""],
    "w": ["", "", "", "Ω", "ω", ""],
    "x": ["", "", "", "×", "", "Χ", "χ", "ξ"],
    "y": ["", "", "", "", ""],
    "z": ["Ζ", "", "", "τ"],
    "[": ["", "", "", "", "", "", "", "", ""],
    "\"": ["", "", "", "", ""],
    "\'": ["", "", "", ""],
    "]": ["", "", "", "", "", "", "", "", "", "", ""],
    "_": ["_", "ˍ"],
    "`": ["", ""],
    "{": ["", "", ""],
    "}": ["", "", ""],
    "~": ["", "", ""],
  ]