cht電腦資訊文書排版
adm Find login register

關於標點符號的「對齊」

本人已不在此站活動
1 關於標點符號的「對齊」
Promote 1 Bookmark 02008-11-02quote  

目前的中文標點符號可概分兩種系統,一種是置於字框中間,另一種是置於底線左方(和英文的標點符號類同)。

本來這些東西,嚴格而言是應該排版系統本身去控制才對,但現在通常是由字型本身製作上來處理。當然避頭點及對齊,這仍然是要回歸到排版系統本身。以下這篇 blog 有提到一些。以前在 bbs TeX 版,記憶中是有人提出來過,不過沒有引起討論。

 http://apansharing.blogspot.com/2008/02/cjk.html

中文的標點符號系統是晚近才學洋文產生的,所以歷史並不長,也通常沿用洋文標點符號的基本規則,但由於中文是方塊字,因此會有一些不盡相同的地方。

在英文的話,如果大家有接觸過 Micro-typography 的話,就會知道,文章右邊界如果有標點符號的話,讓他幾何式的對齊,並不符合人類視覺上的流利感。這是因為字型製作,標點符號也是置於字框內,glyph 本身以外,會多出空白,這些空白在文稿右邊出現時,會讓這行產生凹下去的感受,因為我們所謂的「對齊」,他的作用是針對字框而言的。

Micro-typography 的作用之一,就是把這些凹下去的標點符號凸出來些,讓我們的眼睛不會感覺凹進去。這個請參考以下這篇文件,裡頭有範例顯示要不要凸出標點(請用 acroread 閱讀):

 http://tug.ctan.org/get/macros/latex/contrib/microtype/microtype.pdf

在第四頁的地方,按 Protrusion 標點會稍微凸出(其實這才是真正的「對齊」),再按一次回復正常。 

換成中文的話也是一樣,尤其中文是全型字的標點,留出的空白就更明顯了,但目前為止似乎還沒有軟體可以對中文標點做 Micro-typography 的控制。所以也只好讓他留白,或像 cwTeX 一樣使用半型的中文標點了。也因為這樣,我個人的話會採置中間的中文標點系統,這樣在右邊至少不會凹進去太過份。

至於避尾點,這個我個人倒是認為沒有這個必要,反可能而會增加排版上的局限性。

不知道大家的看法如何? 

 

ps.我已去信請教 Werner 及 microtype package 的作者討論這個問題,目前尚無確切的結果。Werner 是認為目前的 pdftex 尚無法對中文標點做這樣的處理,要看以後 luatex 是否有可能。 

edited: 3
guest
2
Promote 0 Bookmark 02008-11-02quote  

類似這樣的效果嗎?

 標點符號的「對齊」

本人已不在此站活動
3
Promote 0 Bookmark 02008-11-02quote  

有範圍更大一點的圖嗎?因為無從判斷那個句點原來真正的位置。

的確就是類似這樣子的處理。但有一點不一樣的是,上面的圖第二行尾的句點左邊多出了空白了。理想上的 micro 處理是由於句點向右邊突出一點,所以這一行整行要做字間距微調,讓他看起很平均。

請問一下,這是軟體本身就有的功能嗎?在 LaTeX 是可以特意去調整,但我這篇文件所說的是在更低階的時候軟體本身就把這個問處理好了,而不是在高階去控制。

guest
4
Promote 2 Bookmark 12008-11-02quote  

這是利用 XeTeX 排的,TeX Live 2008 附的 XeTeX/XeLaTeX 提供針對不同字碼範圍的字做特殊處理的方法,因此可以替符號提供特製的 kerning 與 line breaking 設定。不過這和你描述的 microtype 可能不太一樣,不是延伸而是壓縮。

以下是 XeCJK 提供的三種常用符號排列:

  1. fullwidth,也就是符號置中的情況
  2. fullwidth,另一種字體
  3. halfwidth,符號放在左下
  4. mixedwidth,符號在左下,對於句號等有特殊處理
範例 1 是使用 cwTeXHeiBold-Center,範例 2, 3, 4 是使用 cwTeXHeiBold-Baseline

luatex 的話,ConTeXt 有類似的支援但還不完整,LaTeX 還未採用 luatex 所以無法比較。

- Kanru
本人已不在此站活動
5
Promote 0 Bookmark 02008-11-09quote  

以下轉 Werner 的信件給大家參考,這是 LaTeX CJK + microtype 的可能解法,有興趣的朋友,可以參與他們的討論(我個人是還沒能抓到重點)。我知道目前 Adobe InDesign 有這方面的功能(但他的中文版是否有此功能就不確定了)。

----- Forwarded message from Werner LEMBERG <wl@gnu.org> -----

From: Werner LEMBERG <wl@gnu.org>
Subject: Re: [Cjk] How about CJK miro-typography?
To: w.m.l@gmx.net
Cc: cjk@ffii.org
Date: Sat, 08 Nov 2008 09:31:36 +0100 (CET)
List-Archive: <http://lists.ffii.org/pipermail/cjk>


>   * The second step, namely to create the protrusion settings, is by
> far more difficult. Somebody would have to write files for each font
> family (e.g. mt-song.cfg), containing the settings derived from
> carefully checking for all symbols how much they should be protruded
> into the margin; this takes time.

Actually, this is quite easy, since only a very limited set of CJK
punctuation characters can protude (less than 20 characters, I think).

> Then, I am not sure how to reference the symbols: the (technically)
> simplest possibility would be to just write out the slot numbers
> from the fonts numerically -- not very user-friendly, since it would
> involve finding out those numbers in the first place;
> from the fonts numerically -- not very user-friendly, since it would
> involve finding out those numbers in the first place;

This is done in CJK already, so it's not necessary to have a better
interface.  Note that *all* CJK fonts of a given encoding, regardless
of the family or shape, would use the same set of protruding
punctuation characters.  The protrusion amount would be (slightly)
different, however.

> Furthermore, microtype doesn't yet account for the so-called planes
> that CJK adds to the NFSS, hence changes to my package would also be
> necessary.

This is rather straightforward: For a given CJK encoding like C00 or
C10, you have a set of subfont postfixes, each one normally consisting
of two trailing decimal digits.  Here some standard examples, always
assuming a font name `foo':

  C00 (Big 5 encoding):
    foo01, foo02, ..., foo58
  C40 (JIS X 0208 encoding):
    foo01, foo02, ..., foo35

And here some non-standard ones:

  C42 (JIS X 0208 encoding with DNP subfonts):
    foosy, fooroma, ..., fookeisen, fooka, fookb, ..., fookz
  C70 (Unicode encoding with Unicode subfonts):
    foo00, ..., fooff, foo0100, ..., foo10ff

Note that CJK punctuation characters are located only in very few
planes; for example, only planes `30', `fe', and `ff' in C70 are used
-- this is three planes out of 4370).


   Werner

_______________________________________________
Cjk maillist  -  Cjk@ffii.org
https://lists.ffii.org/mailman/listinfo/cjk

----- End forwarded message -----

 

edited: 3
guest
6 關於標點符號的「對齊」
Promote 0 Bookmark 02008-11-15quote  
LGJ

至於避尾點,這個我個人倒是認為沒有這個必要,反可能而會增加排版上的局限性。

 

在西文排版中,避尾點應該常常出現,例如英文的左單或左雙引號。除了 TeX,其它排版系統、或是網頁瀏覽器,也是如此。若延續英文如此避尾點的方法,我個人覺得,中文也應該進行避尾點,尤其是在中英文混排的文章之中。

本人已不在此站活動
7 關於標點符號的「對齊」
Promote 0 Bookmark 02008-11-15quote  

guest
在西文排版中,避尾點應該常常出現,例如英文的左單或左雙引號。除了 TeX,其它排版系統、或是網頁瀏覽器,也是如此。若延續英文如此避尾點的方法,我個人覺得,中文也應該進行避尾點,尤其是在中英文混排的文章之中。

這是我的錯,沒有表達清楚。

這裡只是單指避尾「點」,而不是指避尾「標」,也就是嚴格定義的點及標是不同的符號。引號、括號這些是屬於「標」,而不是「點」,所以這這裡只是單純指「點」的部份,行尾無需避這些「點」,不包含引號、括號這類「標」的部份。

 

ps. 我還說清楚一點好了。句號、問號、嘆號、逗號、頓號、分號和冒號,這些稱為點符號,引號、括號、書名號,這些是屬於標符號,合稱為標點符號。

edited: 2
guest
8 關於標點符號的「對齊」
Promote 0 Bookmark 02008-11-15quote  
LGJ

 

這是我的錯,沒有表達清楚。

這裡只是單指避尾「點」,而不是指避尾「標」,也就是嚴格定義的點及標是不同的符號。引號、括號這些是屬於「標」,而不是「點」,所以這這裡只是單純指「點」的部份,行尾無需避這些「點」,不包含引號、括號這類「標」的部份。

 

ps. 我還說清楚一點好了。句號、問號、嘆號、逗號、頓號、分號和冒號,這些稱為點符號,引號、括號、書名號,這些是屬於標符號,合稱為標點符號。

 

謝謝你的回應。受教了。

Garfileo
9
Promote 0 Bookmark 02009-03-24quote  

我对 ConTeXt MkIV 做了一些hack,在行内字符之间插入 glue,将行尾的中文标点挤到边界处。

edited: 1

cht電腦資訊文書排版
adm Find login register
views:34785