星期一, 7月 02, 2007

Wine / Crossover Office 中文設置

EDIT: 2007/11/05
重新整理了內容並另發新文,不想浪費時間的請直接看這篇


連續下了幾天雨, 今天難得放晴, 就是有點熱。我想我是喜歡晴天的, 看到陽光人就份外開心, 總想著向外面跑, 能來個效遊, 睡睡草地就更滿足了。

假期的第四天了, 到目前為止都是在搞電腦及興趣, 正事一件都沒有, 今天就搞定了 Crossover Office。雖然算是一個 linux 信徒, 也總是有一些拋不開的 Windows 軟件, 因為 M$ Office, Internet Explorer, ConvertZ... 選用 crossover 而不用 wine 是基於向易求的原則。其實年多前我就開始用 wine, 那時 wine 還沒現在成熟, 網上流傳的資料也較少, 所以也不是設置得很好, 能湊著用而已。雖然現在用的是 crossover, 但設置方法完全適用 wine, 只要找到相對應的設定檔。

1. UTF-8 環境下使用 wine / crossover 非常遲鈍
這方面大陸網友 huangjiahua 有了較理論的說明, 見這裡 。解法方法有二, 一是刪掉 XLC_LOCALE 裡不必要的 GBK/BIG5 區段, 檔案位置是:
/usr/share/X11/locale/zh_TW.UTF-8/XLC_LOCALE


另外一個方法是增加欠缺的 GBK/BIG5 字體。這個方法煩複得多, 所以我用了第一招, 如果有興趣可以參考 huangjiahua 的原文。

2. 停用 anti-alias
anti-alias 可以柔化 truetype 字型在小字體時斷斷續續的線條, 這本來是件好事, 但現在 uming (AR PL ShanHeiSun Uni) 及 opendesktop-fonts (AR PL New Sung) 的小字體已經內置 bitmap, 比 anti-aliased 出來的好得多又不模糊, 所以可以放心停用此特性。

2a) 終端機下輸入: $ ~/cxoffice/bin/cxrun
2b) 選好目標 bottle, 然后輸入 regedit
2c) 增加/修改以下兩項:
[HKEY_CURRENT_USER\Software\Wine\X11 Driver]
"ClientSideAntiAliasWithRender" = "N"
"ClientSideAntiAliasWithCore" = "N"

* 如果沒有 X11 Driver 目錄可以自行加上。
** wine 的話據說可以在終端機下輸入: $ wine regedit 就能編輯登錄檔
*** 也可以直接編輯~/.wine/ 目錄下相應的 user.reg & system.reg

3. 設置預設字體 & 字體大小
實在搞不清楚 wine / crossover 是基於什么準則去決定字體的先后次序。剛安裝好 crossover 時, 中文字要不就是楷體, 要不就是方塊 (不能顯示)。還好 linuxsir.org 的 Archetype 提示了可以通過 "IconTitleFaceName=字體" 指定預設字體, 相關設定檔是 ~/.cxoffice/bottlename/drive_c/Windows/win.ini。修改/加入以下內容:
[Desktop]
IconTitleFaceName=AR PL New Sung
menufontsize=13
messagefontsize=13
statusfontsize=13
IconTitleSize=13

** wine 的話是 ~/.wine/drive_c/windows/win.ini

第一行指定 AR PL New Sung 為預設字體, 用 Windows 本身的新細明體的話可以改成這樣 "IconTitleFaceName=MingLiU"。字體名稱也可以用中文表示, 如 "IconTitleFaceName=文鼎PL新宋" 或 "IconTitleFaceName=新細明體"。其下4行都是指定字體大小, 我覺得13的大小看得最舒服, Windows 新細明體的使用者要留意該字體在13大小時是沒有 bitmap 的, 結果字體將出現線條斷續的現像, 所以應該設為12或14, 或者轉用免費的 uming 或 opendesktop-fonts。

crossover 的文件指出也可以通過 registry 來指定字體大小, 方法是更改:

[HKEY_CURRENT_CONFIG\Software\Fonts]
"LogPixels"="0x00000060(96)" ;預設大小
;"LogPixels"="0x000000078(120)" ; 覺得字體大小的話可以試試這個

** 注意這是二選一的設定, ";" 表示註解

4. 設定替代字型
完成以上幾步后, 基本上中文顯示已經很理想了, 但當系統找不到指定字體時還是會出現方塊字, 所以個別字體還要預先設定好替代。
[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\FontSubstitutes]
"MS Shell Dlg"="AR PL New Sung"
"MS Shell Dlg 2"="AR PL New Sung"
"System"="AR PL New Sung"
"MingLiU"="AR PL New Sung"
"PMingLiU"="AR PL New Sung"
"simsun"="AR PL New Sung"
"Songti"="AR PL New Sung"


** 留意上面的描述是區分大小寫。

5. 中文輸入法
好像說 scim 跟 wine / crossover 都有一些相容性問題, 但我用的 gcin 一切正常也自然不懂得解決, 各位看倌如遇到問題請自行到各大討論區找找解決方法吧。

6. 補充資料
據說 mfc42.dll, msvcp60.dll, riched20.dll, riched32.dll 可以增加兼容性, 詳見此討論貼。然后下面是幾張截圖供參考。

(1) 這是預設的顯示效果。



(2) 這是 uming 12 大小



(3) 這是 uming 13 大小

1 則留言:

匿名 提到...

不错,好文章。