seventeen 的意思是請你附上你所看到的螢幕畫面,例如你說你用文字編輯器,是怎麼樣可以透過切換字型,來看到輸入法選字窗內無法顯示的字。我先前的意思是,請你提供安裝字型後,仍無法顯示的 Unicode 字碼以及他們的屬性,例如在哪個字面。
提供詳細的字碼資料、操作步驟、螢幕截圖,還有正確的 URL 下載連結,別人比較好幫你。:)
你可以試試看在終端機下輸入以下指令,看看是否有用:
defaults write org.openvanilla.inputmethod.OpenVanilla CandidateTextFontName TW-Sung-Plus-98_1
或是如果要使用楷體:
defaults write org.openvanilla.inputmethod.OpenVanilla CandidateTextFontName TW-Kai-Plus-98_1
我目前猜測問題的癥結是這樣的:macOS 對於 CJK Ext 字面的字,會去從既有字型目錄中,尋找有收錄該字的字型來繪製。但對於 PUA 字面的字,並不作這樣的處理。
我測試的 codepoint 有三個,分別是:
- U+20F9B Ext. B (macOS 內建字型有收錄)
- U+20E61 Ext. B (macOS 內建字型無收錄,有收在 TW-Kai-Ext-B-98_1 中)
- U+FCF79 PUA-A (macOS 內建字型無收錄,有收在 TW-Kai-Plus-98_1 中)
為了除錯方便,我先用 TextEdit 將這三個字打出,如附圖 samples.png 所示。第三個字必須用 TextEdit 特別選取 TW-Kai-Plus 這個字體才能顯示,TextEdit 自己不會換到該字型,與第二個字不同,如同同一張附圖所示。
這三個字的頭兩個字分別是用你附的 .cin 打「ㄏㄨㄤˊ」後, 找到第一個有「𠾛」(一個口加一個黃, U+20F9B) 的候選字頁面,第二個字在「𠾛」上方。第三個字在候選字最後一頁面最後一字,如附圖 before1.png 及 before2.png 所示。
在安裝了上述兩個 TTF 檔後,第二個字會正確顯示,如 after1.png 所示。但選字窗最後一頁那些收錄在 PUA 字面中的字仍無法正確顯示,與 before2.png 相同。
我用了以上終端機指令,強制 OpenVanilla 使用 TW-Kai-Plus-98_1 或 TW-Sung-Plus-98_1 顯示所有候選字後,收錄於 PUA 字面中的字就都出現了,如 after2.png 所示。
我之所以懷疑 macOS 不對 PUA 字面做相同處理,是因為在安裝了上述字型後,用內建的 Unicode 表格瀏覽器 (可從鍵盤選單中「顯示表情符號與其他符號」進入) 看 Ext. B 字面的字,都有正確顯示(如附圖 CJK-Ext-B.jpg 所示,上述測試用例中頭兩字,分別以藍圈及紅圈標示出)。但 PUA-A 字面的字並無相對應處理(如附圖 PUA-A.jpg 所示,上述測試用例第三字,用紅圈標出)。
同時,即使輸入法選字窗會出現第三字,該字輸出到 TextEdit 後,仍然要手動修改字型至 TW-Kai-Plus ,才會顯示該字。
因此我認為 macOS 內建的文字系統及字型引擎,對於 PUA 字面(至少是 PUA-A 字面)的字碼,在處理方式上與 CJK Ext. B 字面有所不同。
Lukhnos