標籤:

為什麼在有些軟體環境下中文裡的中圓點(間隔號)是半形的?


@錢爭予 和 @Chen Yijun 說得都沒錯。再補充一些:

首先一定要搞清楚我們說「中圓點」、「間隔號」時到底說的是什麼字元,很多問題其實出在字元上:

  • 大陸這邊的標準是「·」(U+00B7 MIDDLE DOT),這是一個不常用但也不算罕見的西文標點符號的字元(有時能看到拉丁語格言用它來分詞)。簡體中文字體把它借來用了,並且做成一個漢字的寬度。簡體中文輸入法也全都輸出這個字元。繁體中文字體通常不把它做成一字寬。

  • 許多港台用於拿「.」(U+FF0E FULLWIDTH FULL STOP)當間隔號用。這是語義不合適的 hacking。U+FF0E 是 ASCII 字元「.」(U+002E FULL STOP,即我們日常使用的西文句點)對應的全形字元,本來應該用作中文科技文獻的句點。而港台以標點在字框內居中為準,於是一個全字寬的西文句點就成了在字框內居中的圓點,於是就被拿來當間隔號用了。

  • Windows 里的港台字體常常還把西文標點「?」(U+2027 HYPHENATION POINT)當間隔號用。但這個做法不太通用,至少 Mac OS X 里的港台字體不支持。U+2027 本來是字典里分音節用的點,從語義上也不應該用作中文的間隔號。

  • 日文字體都支持「?」(U+30FB KATAKANA MIDDLE DOT),它是日文里用片假名轉寫外文人名時用的間隔號。我個人其實最希望中文世界能推廣使用它……但至今很多中文字體都不支持它,必須依賴系統 fallback 到日文字體才能顯示出來。

  • 當然,還有人直接偷懶用西文句點「.」(U+002E FULL STOP)甚至連字元「-」(U+002D HYPHEN-MINUS)來替代專門的間隔號字元。

港台常用的 FULLWIDTH FULL STOP 和 HYPHENATION POINT 在不同字體中的樣式差別極大(比如前者在大陸字體里位於一字空白的左下角,在港台字體里常位於正中),遇到不同的字體時就很容易出兼容問題。

大陸通用的 MIDDLE DOT 在中西文字體里都是居中的,區別主要在於空格的寬度。

所謂「全/半形」(或港台術語「全/半形」)是用來區分字元(character)的,但具體某個字元顯示成什麼樣的字形(glyph)主要是由字體(font)控制的。

人們常常說「全形間隔號」、「全形彎引號」,這不恰當,而且很誤導。「·」(U+00B7 MIDDLE DOT)和「「 『 』 」」都不存在全形版本,只不過有的字體中把它們做成和漢字一樣寬的。

所以也不存在「U+00B7 是半形的」這種問題。事實上只是它有時因中文字體而顯示為一字寬,有時因西文字體而顯示為大概半字寬。

注意:

微軟雅黑等微軟 ClearType 新字體都不再把 U+00B7 做成一字寬了,不知是為了和西文字體兼容還是什麼。另外聽說 GB/T 15834-2011 里好像對間隔號的樣式也有調整,我還沒查證。

參考圖,展現 U+00B7 MIDDLE DOT、U+2027 HYPHENATION POINT、U+FF0E FULLWIDTH FULL STOP 和 U+30FB KATAKANA MIDDLE DOT 受操作系統主要介面字體的支持情況:

http://d.pr/i/T3is


一般來說,字體 fallback 順序列表中,西文字體在前時,會出現問題中所說的「半形」情況。常見西文字體里,大多包含了「·」(U+00B7)這個 glyph。


有些標點在Unicode中並未分成半、全形二個字元,間隔號和大陸標準的彎引號都與西文標點共用(有些西文字體還包含中文篇名號)。如果設計師或系統、瀏覽器採用「西文字體在前、中文字體在後」的fallback順序,就會導致這幾種標點變成半形的樣子。

在CSS3中,可以用@font-family的「unicode-range」屬性搭配中文字體來解決這個問題。最近版本的Webkit和IE8都已經支援。


在Indesgin中設置 「複合字體」時碰到間隔號的問題,只要複合字體中的羅馬字設置了西文字體後,間隔號就變成了半形字元,雖然在「標點」、「符號」兩項設置的都是中文字體。學習了這篇回答之後,似乎明白了問題所在:U+00B7在西文字體中是半形的,而因為系統fallback順序是「西文字體在前,中文字體在後」,所以造成了複合字體中其他標點符號都是中文的全形字元,只有間隔號變成了西文的半形字元。現在問題來了,怎麼解決在indesign中應用複合字體後的間隔號問題呢?我還不知道怎麼設置系統fallback順序,另外就算自己的系統設置了fallback順序,那麼如果把這個indesign文件發給別人,在別人的電腦上豈不是還有問題?如何解決呢,請諸位指點一二。


@梁海

我查了一下:GB/T 15834―2011 標點符號用法 電子版

4.14.3.5

以月、日為標誌的事件或節日,用漢字數字表示時,只在一、十一和十二月後用間隔號;當直接用阿拉伯數字表示時,月、日之間均用間隔號(半形字元)。

示例 2:「一二·九」運動

示例 3:「3·15」消費者權益日 

……

5.1.7 間隔號標在需要隔開的項目之間,佔半個字位置,上下居中,不出現在一行之首。

知乎有審核,所以我去掉了一些敏感詞。


推薦閱讀:

為什麼英語中常用分號(;)但沒有頓號(、),而漢語會使用頓號(、)?
為什麼在知乎顯示的前引號和後引號不是「全形」?
標點符號應該放在引號內還是引號外?
iOS 6 以及之前版本的簡體中文標點鍵盤為何將「」作為默認引號,而不是中國大陸更常用的彎引號(「」)?
如何正確使用和打出英文的破折號?

TAG:標點符號 |