Re: 'text-spacing' 有關中英間隔部份的問題探討(原: 中英文字中的間隔)

On 2012年4月28日Saturday at 7:32, Kang-Hao (Kenny) Lu wrote:
> 反正舊規範這邊唯一能想辦法改善的恐怕也只有也只有 7),IE 的話應該可以把使
> 用者樣式加上這個當作「為什麼你們就是不能加個空格呢?」的替代品。我平常沒
> 用 IE(也沒用 Windows),不知道能不能找一些朋友(octw?)幫忙做一點測試,
> 不知道 IE 要加使用者樣式是不是很蠻煩、、、
>  
>  

嗯,我先和开发者朋友们讨论看看。
  
> 好像之前的版本 'text-autospace' 和 'punctuation-trim' 是兩個屬性,所以弄
> 成 'text-spacing' 和 'punctuation-trim' 兩個屬性也是一個選擇。
>  
>  

这样分开确实也不错,似乎会更符合人的直觉一些。
怎么能查到当初合并的原因呢?在 www-style 的存档里吗?
  
> 原來這樣叫做賣萌啊。我一般的確是覺得 CSS 取值用的單字應該在國中英文的等
> 級。另外這也不只是難度的問題,'ideograph' 比 'cjk' 或是 'han' 長很多啊。
>  
> 反正這種東西怎麼稱呼都會有一部分的字符不嚴謹,所以我個人是覺得好記就好
> 了,'alpha' 是 'alphabet' 的縮寫這事我一直沒有注意到(絕對不是賣萌,我相
> 信有很多人沒注意到 'w' = 'double u' 的),我一直只意識到 'alpha' 是
> 'alphanumeric' 的前面,所以感覺不是很好記。
>  
> 所以、、、我們說「中英混雜」嘛,'western' 怎麼樣?
>  
> 'numeric' 應該是 'alphanumeric' 的後半部吧,不過拆成這樣我看也沒有比較好
> 記、、、
>  
> 'numeral' 的確比較好,那 'digit' 如何?
>  
> 如果可以的話不知道有沒有辦法做個統計。我的意見不怎麼重要,反正我也不是做
> Web 開發的。
>  
>  

刚才又去看了下 Unicode 的 General_Category Values [1],确实「numeric」这个术语在 Unicode 里也挺常用……可能就说「numeric」也挺好……我得去看看编辑是从哪里取的这个术语……
「digit」似乎也太狭义了些,如果没有巨大的好处,还是尽量和 Unicode 术语一致吧,否则规范里介绍 character class 的时候怕是讲不清楚了……「western」同理……

[1] http://unicode.org/reports/tr44/#General_Category_Values

> 但是你在你的回答裡:
>  
> [[
> InDesign 的默认设置是 1/4 的全角空格宽度,也就是约等于一个半角空格。
> ]]
>  
> 你也是加了一個空格。這個假設成立與否有沒有專業人士可以幫忙提供一下意見?
我是属于统一加空格的一派,因为手动区分加不加空格的规则很麻烦。
这个事情主要还是排版者的习惯问题。其实很多排版者根本就不管这个细节,所以按照 InDesign、Word 等软件的默认设置就是都有空格的。

> 一個類似的問題:MS Word 和 InDesign 的預設處理是怎麼樣的情形?「為什麼你
> 們就是不能加個空格呢?」呢?
>  
>  

嗯,我去看看……
  
> 等等,這個地方我們對這裡的狀況好像有不同的認識,Python3.2 是這樣告訴我的:
>  
> [[
> >>> unicodedata.category("'")
> 'Po'
> >>> unicodedata.category("\"")
> 'Po'
> >>> unicodedata.unidata_version
> '6.0.0'
> ]]
>  
> 所以是一個 [Po]。
>  
> 同樣,這些部份好像都是 [P*] 的東西。
抱歉,当时回这段邮件的时候我还没完全搞清楚 General_Category Values,所以误解了。
这么看来确实有必要增加 non-ideographic punctuations 这一 class,或者并入 non-ideographic letters。

> 具體一點,你的意思是說規範這裡:
>  
> # ‘ideograph-alpha’
> #
> # 在 ideographs 和 non-ideographic letters 的 run 之间增添 1/4em 的额
> # 外间距。
>  
> 應該改成
>  
> | ‘ideograph-alpha’
> |
> | 在 ideographs 和 non-ideographic letters 的 run 之间增添當前字型一個
> | 的空白(U+0020)的间距。
>  
> ?
>  
> 支持,不過這個和日文排版標準不合,有得吵的。
是的,或者就提供一个 value 来指定这个行为。
不过这个确实和排版领域通常的习惯不同——主要是纸面排版通常也不会遇到 Web 排版里空格宽度千变万化的字体。

> CSS3 'letter-spacing'[1]這裡有一個很好的例子:
>  
> # EXAMPLE 15
> #
> # For example, given the markup
> #
> # <P>a<LS>b<Z>cd</Z><Y>ef</Y></LS>g</P>
> #
> # and the style sheet
> #
> # LS { letter-spacing: 1em; }
> # Z { letter-spacing: 0.3em; }
> # Y { letter-spacing: 0.4em; }
> #
> # the spacing would be
> #
> # a[0]b[1em]c[0.3em]d[1em]e[0.4em]f[0]g
>  
>  

啊……想起来了,其实是看了的,但是忘了…… XD

> 'letter-spacing' 這個就有瀏覽器開發者在說不好實作了,所以就是實作難度問
> 題。順道問一下 InDesign 可以做這種行內一部分的「标点挤压」嗎?
>  
>  

InDesign 的标点挤压设定是段落样式(类似于 block)。字符样式(类似于 inline)无法设定标点挤压,但可以手动设定字符前后的空格宽度。
InDesign 的字符样式(inline)通常不嵌套,所以也没有元素边界一说,所有字符样式(inline)都是应用到具体字符上的。所以似乎也实现不了 letter-spacing 和 text-spacing 对元素边界的要求。
不过我还需要试试 InDesign 的一些高级特性才好确定。


梁海(LIANG Hai)

Received on Saturday, 28 April 2012 05:57:36 UTC