精華區beta Liu 關於我們 聯絡資訊
再補充一點:破折號應該要由「格子」的最左邊界延伸到最右邊界嗎? 換個方式講就是,破折號與左右的文字是否應該保持一點點間隙? U+2014 █—█ U+2500 █─█ 上面使用 U+2588 █ Full Block 在此例中,同樣以細明體顯示,但以不同的字型大小顯示,仍會有一些小差異, 請您自己在記事本中試試。 以我的電腦,安裝「新細明體更新套件」,「小字型」下, U+2500 之 12 點字與左右 U+2588 有 1pixel 的空隙, 但 72 點字卻沒有空隙,127 點字則又有一點點小小的空隙。 針對這個問題, 我認為應該要有一點間隙,像 U+2014 就與前後保有一點點間隙, 而 U+2015 (水平線) 則沒有保留間隙, 也因此使用接連兩個佔滿整個寬度的 U+2500,即使不考慮字義, 以字型外觀而言,仍然是不適當的。 如果破折號應該要固定使用兩個字元連接在一起使用的話, 我認為應該要設計一個「前破折號」與「後破折號」, 其中「前破折號」的左邊有留一點空間,但右邊延伸到邊界, 「後破折號」的左邊也延伸到邊界,以與「前破折號」相接,但右邊要留一點空間。 如此設計編碼的話,就變成有一個「語意上的符號」, 需要以兩個「字元」組合來表達出外觀。 我認為這並不合 Unicode 對文字/符號編碼的本意。 (「一字/一符號」應該對應於「一個編碼」) 我認為應該要以「非固定字寬」之「字型」的方式來解決這個問題, 也就是說在設計「字型」時,應該把 U+2014 這單一個字元設計為兩個字元寬。 其實早就有這樣的實例,比如在記事本或 Word 中,以「新細明體」看 WlWl 就會發現 W 比較寬 l 比較窄。 如果用「細明體」的話,W 與 l 的寬度都是一樣的, 而兩個英數半型符號加起來的寬度與一個全型文字或符號相等。 但即使是「細明體」,仍有違反固定字寬的字,如以嘸蝦米「‧‧」打出之: U+00D7 × ×× Multiplication Sign (乘號) U+00F7 ÷ ÷÷ Division Sign (除號) 在 Terminal 環境 (如 Telnet/BBS) 中有可能看不出上例的效果, 一定要在記事本或 Word 中觀察才行。 以我用的 MultiTerm 環境來說,上述文字看起來與記事本中並無不同, 但如果你是親自在裡面打字的話,會發現打出 × 之後, 游標的位置與文字出現的位置會有所差異,而且疊越多個 × 就差越多, 這一定要親自試驗打字才會體會得出來。 這兩個符號,我記得在以前 DOS 時代,以及 95/98 時代,是標準的全型字, 寬度與+-符號都一樣,但進到 2000/XP 時代卻變得不同了。 不過即使字寬比較窄, 在 Terminal 環境中只要左右空開適當的空間,就可以正確地顯示出該符號。 但字寬比一般全型更寬的話,在 Terminal 環境有可能會有更多顯示上的異常, 比如破折號的後半端與下一個字重疊, 或是後半端被下一個字截掉,僅剩前半顯示出來, 或者以 MultiTerm 的例子,可能是原本可以顯示在 80x25 內的文字,卻被擠出螢幕右側, 或造成其他程式在計算字型寬度上的錯誤。 因此我認為,Unicode 定義破折號的單一編碼為 U+2014 是合理的, 而字型廠商理應將此符號設計為兩個全型寬, 但考量到該字型用在不同的環境中 (主要是需要定寬字的環境), 有可能會造成錯誤的顯示結果, 因此仍然設計為一個全型寬,並且左右都已預留間隙。 也因此這個符號並不適合接連使用。 -- ChrisTorng http://groups.msn.com/ChrisTorng ChrisTorng 樣式訊息記錄 V2.1 正式推出 http://groups.msn.com/ChrisTorng/msn6messagelog.msnw -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 203.75.28.114
linpien:破折號達人!! 03/09 14:31
WMQ:U+2014或許是夾住號? 03/09 17:33
solaris10:真的是太厲害了! 03/09 20:46
oktryit:@@ 推~~ 03/09 21:27
MilchFlasche:破折號的那種橫線和夾註號似乎本來就是通用的? 03/12 20:21
chris:果然不負 Chris 這個名字?! 偉人!:D 03/18 18:22