2008年9月3日 星期三

OpenOffice中無法使用scim輸入法的解決方法

OpenOffice在Linux中使用XIM(X Input Method)作為輸入中文的方法,scim即是架構在XIM上。

為了要讓OpenOffice知道可以用scim輸入,需要在環境變數中加入下面這些項目。這幾行可以放在xorg啟動時會讀取的 ~/.xsession 之中,或是設定成全域變數。
export XMODIFIERS=@im=SCIM
export GTK_IM_MODULE="scim"
export QT_IM_MODULE="scim"

最後再用 "scim -d" 啟動輸入法即可。

如果這樣還不能在OpenOffice中啟動scim。則檢查一下在其他程式,如gnome-terminal中是否可以啟動scim。如果其他程式裡面可以啟動scim的話,代表OpenOffice有問題。可以到 ~/.xsession-error 中搜尋 "soffice" 看看是否有錯誤訊息。如果看到如下面所列的錯誤訊息:
(soffice:8397): Gtk-WARNING **: Loading IM context type 'scim' failed

(soffice:8397): Gtk-WARNING **: usr/lib/openoffice/program/libstdc++.so.6: version `GLIBCXX_3.4.9' not found (required by /usr/lib/gtk-2.0/immodules/im-scim.so)

代表OpenOffice內附的libstdc++.so與libgcc_s.so與scim所編譯的版本不匹配。解決方法就是找出系統上的libstdc++.so與libgcc_s.so並且做個symbolic link過去。在一個使用4.3.1版gcc的gentoo linux中,指令會像下面這樣:
ln -s /usr/lib/gcc/i686-pc-linux-gnu/4.3.1/libstdc++.so.6 /usr/lib/openoffice/program/libstdc++.so.6
ln -s /usr/lib/gcc/i686-pc-linux-gnu/4.3.1/libgcc_s.so.1 /usr/lib/openoffice/program/libgcc_s.so.1

沒有留言: