| adm | Find | login register |
yih joined: 2008-12-03 posted: 12 promoted: 3 bookmarked: 3 |
LGJ 在 2008-11-02 發表的 "關於標點符號的「對齊」" 提到: > 目前的中文標點符號可概分兩種系統,一種是置於字框中間,另一種是置於底線左方
>(和英文的標點符號類同)。 > 如果有標點符號的話,讓他幾何式的對齊,並不符合人> 類視覺上的流利感。外,會多出空白, .......................................
我用一個另類的方法可 使句號(full period) 在一行右邊界有不凹進去的結果, 方法是 "。" 用 "\hspace*{-.5ex}。\unskip\hspace*{-1.90ex}\hphantom{a} " 取代 (雙引號去掉. 注意 \hphantom{a}後面須有一空白 ) 當然上面的 \hspace* 的負空白之大小與所用中文字型有關與大小無關, 下面的例子是用 Windows 的 mingliu.ttc 字型 看下面的例子: 將下列一段:
\noindent 換為:
本數學文本件顯示,利用 ChiTeX 可以輕鬆地編寫% 就可得到所希望的近似結果 (行尾的 % 不一定需要, 像 chitex 就不需要) 請見附檔. 就實用而言可用 prepocessor 或寫進讀取中文的 macros
Hung-Yih Chen
| |||||||||
本人已不在此站活動 joined: 2007-09-19 posted: 4946 promoted: 325 bookmarked: 206 歸隱山林 |
陳老師,這樣的話等於是沒有邊界的標點符號也會進行調整了?雖然字框大小可能是一樣的,但那個標點符號在這個字框的位置會偏左(以橫排而言)。 而我在〈關於標點符號的「對齊」〉一文中想表達的是:
中文標點,目前的話,xetex 可以部份做得到。要真正能做到的話,據 Werner 的說法,是要等 luatex 成熟的時候。所以,microtype pacakge 的作者就沒有更進一步的動作使用 macro 去控制了。
| |||||||||
yih joined: 2008-12-03 posted: 12 promoted: 3 bookmarked: 3 |
在 "\hspace*{-.5ex}。\unskip\hspace*{-1.90ex}\hphantom{a} " 的前面的 \hspace*{-.5ex} 是可以不需要的, 因 mingliu.ttc 的句號為全字型, 才用之以調整 不用也可以, 這樣句號就不會向左移, 當然會把句號後面的字稍往前或往後拉, 但這不重要, 因為本來 字與字之間的 skip 本來就是有彈性的
| |||||||||
yih joined: 2008-12-03 posted: 12 promoted: 3 bookmarked: 3 |
在第一篇中有關標點符號的「對齊」的 macros 不夠精確, 下列是改良的 macros 不會受到中文左右字距改變設定的影響 : \usepackage{calc} % 放在 \begin{documet} 之前
\makeatletter % 然後將 "。" 換為 "。\unskip\hspace*{-1.90ex}\hphantom{a}\hskip\chskipa" 例如:
本數學文本件顯示,利用 ChiTeX 可以輕鬆地編寫% P.S. 上面的 \hspace*{-1.90ex} 中的 -1.90ex 有時須視所用字型而調整. -1.90ex 是適合 Windows 的 \mingliu.ttc 及 kaiu.ttf 但是如 \uming 中的 句號 。 可為 -2.25ex , 而 , 及 ; 可為 -2.62ex P.S. 這只是提供一可行的方法 也許不是 LGJ 或其他一些人要的結果 我將其原理說明如下: 。\unskip\hspace*{-1.90ex}\hphantom{a}\hskip\chskipa 若"虛擬"的 a (有 a 之寬的空白)在行尾, 則在行尾"對齊", 此時。與"虛擬"的 a 重疊, 原來。在a 右邊的部分被擠壓為"null" 若 。 在行中, \hskip\chskipa 在行中會多出 \chskipa 的空白, 補足"null"部分
edited: 1
|
| adm | Find | login register |