W3C home > Mailing lists > Public > public-html-ig-zh@w3.org > November 2013

Re: 整理:縱橫對齊的「行為」及優先順序

From: 梁海 <lianghai@gmail.com>
Date: Fri, 15 Nov 2013 12:11:21 +0800
To: John Hax <johnhax@gmail.com>
Cc: octw chen <oc.tw.mail@gmail.com>, Bobby Tung <bobbytung@wanderer.tw>, "xushengs@gmail.com" <xushengs@gmail.com>, "Kang-Hao (Kenny) Lu" <kanghaol@oupeng.com>, W3C HTML5 中文興趣小組 <public-html-ig-zh@w3.org>, BelleveInvis <infinte.cdda@hotmail.com>, Jjgod Jiang <gzjjgod@gmail.com>
Message-ID: <D81AC2166B654802B139E4773C41D2A7@gmail.com>
「标点悬挂」和「纵横对齐」,这是两个排版手法/风格,可以组合使用,也可以独立使用,请各位理清。  

通常的,允许调整字距、有标点挤压的版面中(齐头尾与否都不一定,可以是齐头,也可以齐头尾),可以用标点悬挂(并且有 allow-end 和 force-end 两种风味)。
如果遇到「》。」这样的情况,如果标点挤压后能在行尾放下而不必悬挂,就两个标点都不悬挂。如果放不下,就连同前一个字一起换行。如果没有标点挤压,常常就是书名号在最后一个字的空间里,句号悬挂出去。主流的悬挂方案无论如何都不会把书名号悬挂出去的。
常规的标点悬挂只会在行末悬挂顿号、逗号、句号。没有行首悬挂,也没有各种括号引号问号之类的悬挂。

而纵横对齐、无标点挤压的版面中,如果要保障避头尾,则必须用标点悬挂。但纵横对齐对标点悬挂带来了更多的挑战,比如行末的「》。」会带来「牺牲避头尾」与「牺牲栏边整齐」的抉择。

- - -

「反過來,置中標點突出來,又遇到下一行末是逗號,有點兒怪。」
——面对这些情况,选择 allow-end 还是 force-end,是排版者的设计考量问题。Spec 只要提供这两个取值可选并保证它们行为正常就行了。

「first last为什么中文不用?我理解first last可以达到这个效果……還是有許多這樣用的吧!」
——正文排版里没有这么用的。在一些局部的设计中有这种手法,但普遍来说是没有这种做法的。但西文常见把引号悬挂出去,所以 `first` 和 `last` 包含了所有的那些引号字符。但 () 圆括号这种体积较大的字符其实在西文里也通常是不悬挂的,spec 里把所有 Ps 和 Pe 都包含进去恐怕会导致西文没法用 hanging-punctuation 这个属性。

「因此我想,可懸掛標點應該是可增減的,不同人有不同決策。」
——是的。随着 CSS 试图提供越来越高级的排版特性,这些排版特性在专业排版者手中如果不允许自定义其实是很难用的。真正在乎这些特性的人已经习惯 InDesign 或 TeX 的灵活程度了。但如果一开始就试图做那么复杂的 spec,就更没法指望浏览器支持了。

「按照現在草案,只有stops和commas可以懸掛!括號啥的,包括這裏的書名號都是不能的!」
——是的,这是 CJK 标点悬挂的习惯。因为只有顿号、逗号、句号非常小巧,在最后一个字的格子里放着会导致栏边空洞,而如果悬挂出去会让栏边更整齐。除此以外所有的标点都太大了,那些引号、书名号、括号、问号之类的东西,我们避免它们破坏栏边整齐的手法是行端标点挤压。

「我沒有很明白在JLREQ這裏 http://www.w3.org/TR/jlreq/#positioning_of_opening_brackets_at_line_head 的Fig. 3.15中,中間那個例子第二段落開始引號的懸掛是否能達成,難道是使用first?」
——那不是通常意义的标点悬挂,是专门用于段首的一种手法。如果依据 spec 的「hangs and may be placed outside the line box (or in the indent) at the start or at the end of a line of text」这一句,的确可以用 `first` 来实现,但 `first` 会导致非首行的引号也悬挂出去,这不符合 CJK 的习惯。
所以 spec 在这里需要确认一下具体的行为。

--
LIANG Hai 梁海


On 2013年11月15日 Friday at 10:31, John Hax wrote:

> 當然如果開啓了標點壓縮 trim-end,則“》。”可壓縮標點時實際只佔了一個全角位。
>  
> 但是,這裏其實最重要的問題是,按照現在草案,只有stops和commas可以懸掛!括號啥的,包括這裏的書名號都是不能的!
>  
> 另外,我沒有很明白在JLREQ這裏 http://www.w3.org/TR/jlreq/#positioning_of_opening_brackets_at_line_head  
> 的Fig. 3.15中,中間那個例子第二段落開始引號的懸掛是否能達成,難道是使用first?
>  
>  
>  
> 2013/11/15 octw chen <oc.tw.mail@gmail.com (mailto:oc.tw.mail@gmail.com)>
> > 書名號如果不懸掛的話,那會變成次行首字,感覺視覺
> > 衝擊更大。這變成兩種衝擊的選擇。
> >  
> > 因此我想,可懸掛標點應該是可增減的,不同人有不同  
> > 決策。
> >  
> > oc
> >  
> >  
> >  
> > 2013/11/15 John Hax <johnhax@gmail.com (mailto:johnhax@gmail.com)>
> > >  
> > >  
> > >  
> > > 2013/11/15 梁海 <lianghai@gmail.com (mailto:lianghai@gmail.com)>
> > > > 我个人想不出还有什么在「stops and commas」中需要加的符号了。
> > > >  
> > > > 另外,`first`, `last`, `force-end`, `allow-end` 这四个取值一直让我有点困惑。
> > > > 实际上,CJK 领域只需要用后两个取值是吧?我看到前两个取值是按 Unicode character categories 来设定的,而 Ps 和 Pe 这两个 category 包含很多在 CJK 排版中通常不应当悬挂的标点。
> > > >  
> > > >  
> > >  
> > >  
> > > first last为什么中文不用?我理解first last可以达到这个效果:
> > >  
> > > 「这里是一段
> > >  正好可以排
> > >  三行的内容」
> > >  
> > > 還是有許多這樣用的吧!(爲了輸入直角引號安裝了鼠鬚管,所以現在開始打出來都係繁體字啦……)  
> > >   
> > > > (比如 @Bobby 你刚才那个「》。」的组合,在纸面排版时一般不会悬挂出去的吧,书名号太大块了,不利于栏边视觉效果整齐。
> > > >  
> > >  
> > >  
> > > 看當前草案最多只允許懸掛出去一個字符,我理解這個例子正好是縱橫對齊產生了兩個標點要懸掛,而日文其實按照JLREQ是沒縱橫對齊,所以只允許一個懸掛也比較合理。所以這懸掛兩個的算不算中文的新需求?
> > >   
> > >  
> > >  
> > >  
> > >  
> >  
> >  
> >  
>  
Received on Friday, 15 November 2013 04:11:53 UTC

This archive was generated by hypermail 2.3.1 : Tuesday, 6 January 2015 20:43:53 UTC