[廢文] east asian width

作者: an94mod0 (an94mod0)   2022-09-21 16:57:27
在PTT理想的排版裡 用的是等寬字體 每個字的寬度不是1就是2
中文日文這些全形字是2 英文數字這些半形字是1
中文用的全形逗號,是2 英文用的半形逗號,是1
這個寬度1或是2,在Unicode定義叫East Asian Width
現實是除中文英文外,還有很多特殊符號,既被中文使用,同時又被英文使用
依照出現在不同場合,寬度可能是1也可能是2
像Ω,δ,π等希臘字母,在PTT上是全形(寬度2)
但在其他非中文的場合,又跟其他英文字母一樣被當作半形(寬度1)
這類不確定寬度1或2的字元,被稱為Ambiguous character
根據UAX#11建議,在遇到Ambiguous時,得讓這個字同時支援顯示成半形寬或全形寬
https://www.unicode.org/reports/tr11/#Recommendations
https://i.imgur.com/0PGoOPw.png
最常見的是在看板選單,有未讀文章時會出現的勾勾符號U+02C7 ˇ
得用全形顯示,才會符合排版
但像我現在用的這個字型,被定義成半形,所以整個介面會歪一格
https://i.imgur.com/HKM2R46.png
另外在PTT輸入時,如果遇到Ambiguous,除了排版,還可能發生游標錯位問題
隨便找幾個Ambiguous的符號測試
如果完全遵守UAX#11建議,每個符號都應該顯示成全形
U+2018 |‘|
U+25CF |●|
U+00A7 |§|
U+00B6 |¶|
U+00BD |½|
U+00BC |¼|
U+0391 |Ω|
U+027C |ˇ|
U+03C3 |σ|
6個字體就有4種不同的呈現方式,實作根本一團亂
https://i.imgur.com/4K3Hmjn.jpg
一個比較實際的解決辦法是不要用PTT
狗屎爛骨董論壇= =
作者: doramon888 (貝爾汪)   2022-09-21 16:59:00
呵~
作者: emptie ([ ])   2022-09-21 16:59:00
等人架設一個更好用的站
作者: Jaka (Jaka)   2022-09-21 17:55:00
大師

Links booklink

Contact Us: admin [ a t ] ucptt.com