作者ChrisTorng (ChrisTorng)
看板Liu
標題Re: [問題] 補破網中補進的全形破折號
時間Thu Mar 9 14:15:46 2006
再補充一點:破折號應該要由「格子」的最左邊界延伸到最右邊界嗎?
換個方式講就是,破折號與左右的文字是否應該保持一點點間隙?
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