UbuntuL10n
出自Ubuntu 正體中文 Wiki
目錄 |
前言
ubuntu對於英文的使用者來說已經相當的方便,不需要額外安裝相對應的軟體。但是對於中文的使用者來說,你依舊會遭遇到幾個小問題。
- 中文字體不夠細緻 (ubuntu 8.04 已改進)
- 不合適的 fontconfig 設定 (ubuntu 8.04 已改進)
- 缺乏良好設定的中文輸入法 (ubuntu 8.04 預設 scim 輸入法程式,雖然設計概念良好,但偶而有C++程式衝突問題發生 )
這一篇文件就是為了克服這些問題而存在的。
中文字型不夠細緻
中文字體不夠細緻的原因很多,其中最主要的關鍵在於缺乏品質高又免費的字型。微軟的 Windows 系統裡面內建的新細明體跟標楷體當然是很好的字型,但是微軟公司已經買過這兩個字體的版權了。如果你已經向著名的字體廠商購買相關的Linux字型版權,那你當然可以在ubuntu上面使用,但是如果沒有,你一樣可以使用以下幾個字型。
- 文鼎PL新宋。New Sung 是 螢火飛先生有鑑於 Open Source 社群需要小字包含精美點陣字的字型,決定自行花下大量時間修改文鼎新宋體,修改完成之後免費釋出的字型。
- 文鼎PL上海宋Uni。一個 Unicode 的文鼎明體字型,目前日文和韓文仍缺了很多字,有待補齊,採 APL 授權,此字型也使用了 Firefly New Sung 的點陣字,CJKUnifonts 之一。
- 文鼎PL中楷Uni 。一個 Unicode 的文鼎楷體字型,目前日文和韓文仍缺了很多字,有待補齊,採 APL 授權,CJKUnifonts 之一。
- Opendesktop 字型。文鼎PL新宋(AR PL New Sung)的最新版本。其中包含完整易經符號共 79 個、超過一百個 True Type 錯字與相應的點陣字被修正、超過兩萬個常用點陣字比例修正、完整支援 Big5(正體中文)、GB2312(簡體中文)、JISX0208(日文) 字碼範圍、增加部份罕用字與Unicode Extend B部份用字等。如果使用較常中、日文,建議使用本字體。
- cwTTF。一套由 cwTeX 轉來的高品質字型,採 GPL 授權,沒有版權的疑虞,但有些常見字沒有收錄。
- 文泉驛點陣字型。這是大陸 文泉驛 組織所發展的一套點陣字,由社群使用者透過 wiki 開發模式所協同繪製的,補充、修正了大量Firefly的點陣。
- 文泉驛向量字型。同上。
CJKUnifonts
CJKUnifonts 計畫包含了文鼎 PL 上海宋 Uni (AR PL ShanHeiSun Uni) 以及 文鼎 PL 中楷 Uni (AR PL ZenKai Uni)。
CJKUnifonts 計畫是一位在台灣的德國人─高盛華(Arne Götje)所發起的,目的在於建立日、韓、港、越南通用漢字的字型,希望能從 unicode 結合中文、日文、韓文、越南語使用的漢字,也就是 CJKUnifont 這套字型,目前已完成兩萬五千多字,但距離 unicode 總共七萬多字還有段距離。希望有更多人加入此計畫,以待早日完成。
有興趣和熱誠的人可以和高盛華聯絡arne@linux.org.tw。
推薦連結:
- CJKUnifonts計畫介紹(英文)
- CJKUnifonts計畫主頁
- 高盛華訪問香港時的演講 英文內容無字幕,RMVB格式(壓縮比高)。
- 香港 Debian 社群自由字型網頁 這個 wiki 內容寫得很好,有興趣可以參考,其上的字型內容較本頁所介紹的內容多且詳盡,我就不重新發明輪子了(笑)。
缺乏設定好的輸入法
要使用中文輸入法,需要兩個步驟
- 安裝輸入法
- 設定輸入法
- 安裝輸入法,就是將輸入法的程式安裝進作業系統當中,有安裝才能使用
- 設定輸入法代表的是告訴系統你現在用的輸入法是那種,你輸入的語系是那個
以下有兩種方法,利用 im-switch 與 利用 .xsession 設定輸入法,請自行參考使用。
不合適的 fontconfig 設定
Linux 是由外國人開發,當然 fontconfig 的設定檔的內容也是設計給外國使用者的。中文使用者通常在字型顯示上遇到問題,字型糊糊的,或是歪歪斜斜,這即是因為設定檔是為英文字型量身打造的,只要套用上合適中文字型的設定,字型顯示一樣也能很美。
- 注意, ubuntu 8.04 已改進,下方範例可以自行斟酌使用。
中文字型
小秘訣:fc-cache -v 指令可在安裝完所有字型後再執行喔!
安裝 New Sung, UMing 與 UKai
- 執行指令
sudo apt-get update sudo apt-get install ttf-arphic-ukai ttf-arphic-uming ttf-arphic-newsung sudo fc-cache -v
- 新版的 AR PL New Sung 包含在 Opendesktop 字型中,官方套件仍為舊版,請自行斟酌安裝。
- 重新啟動 X-Window
安裝 Opendesktop 字型
firefly 前輩的最新力作!
wget ftp://ftp.opendesktop.org.tw/odp/ODOFonts/OpenFonts/opendesktop-fonts-1.4.2.tar.gz tar xvzf opendesktop-fonts-1.4.2.tar.gz cd opendesktop-fonts-1.4.2 sudo cp odosung.ttc odokai-ExtB.ttf odokai.ttf odosung-ExtB.ttf /usr/local/share/fonts sudo fc-cache -v
- 重新啟動 X-Window
- 您可以透過 Gnome 面板上的[系統]->[偏好設定]->[字型],將字型更改為 AR PL New Sung ,中文顯示會美觀許多。
安裝 cwTTF 字型
wget http://cle.linux.org.tw/fonts/cwttf/deb/ttf-cwtex-center-cwfs_1.0-1_all.deb wget http://cle.linux.org.tw/fonts/cwttf/deb/ttf-cwtex-center-cwheib_1.0-1_all.deb wget http://cle.linux.org.tw/fonts/cwttf/deb/ttf-cwtex-center-cwkai_1.0-1_all.deb wget http://cle.linux.org.tw/fonts/cwttf/deb/ttf-cwtex-center-cwming_1.0-1_all.deb wget http://cle.linux.org.tw/fonts/cwttf/deb/ttf-cwtex-center-cwyen_1.0-1_all.deb sudo dpkg -i ttf-cwtex-center-cwfs_1.0-1_all.deb sudo dpkg -i ttf-cwtex-center-cwheib_1.0-1_all.deb sudo dpkg -i ttf-cwtex-center-cwkai_1.0-1_all.deb sudo dpkg -i ttf-cwtex-center-cwming_1.0-1_all.deb sudo dpkg -i ttf-cwtex-center-cwyen_1.0-1_all.deb sudo fc-cache -v
- 重新啟動 X-Window
安裝文泉驛點陣字體
sudo apt-get install xfonts-wqy sudo fc-cache -v
安裝文泉驛正黑體
- ubuntu 8.04 "中文支援"已內建,在"語言支援(Language Support)" 選項中勾選 "中文" ,安裝後即可。
sudo apt-get install ttf-wqy-zenhei sudo fc-cache -v
安裝中文輸入法
SCIM
新版 ubuntu 已內建此輸入法程式。
中文輸入法支援,在"語言支援(Language Support)"中勾選中文,便會自動安裝簡體與繁體中文輸入法。
接著再由"系統"->"偏好設定"->"SCIM輸入法設定","停用所有輸入法"後,再勾選自己需要的即可。
注意,內建沒有"無蝦米輸入法"喔!
- 設定輸入法,請見下面兩小節來 利用 im-switch 或 利用 .xsession 設定輸入法
- 重新登入
- 按下 'Ctrl + Space' 啟動 SCIM
gcin
- 開啟終端機(當然,你想用"synaptic 管理員"來搜尋並安裝的話,我也沒有意見。)
sudo apt-get update sudo apt-get install gcin
- 設定輸入法,請見下面兩小節利用 im-switch 或 利用 .xsession設定輸入法
- 按下 'Ctrl + Space' 啟動 gcin
設定輸入法
利用 im-switch 設定輸入法
目前的 im-switch 已經能以簡單指令使載入輸入法,重新啟動後即生效〈僅個人設定,非全域〉。如果用了 im-switch 設定後,即不需要 .xsession 了,因為如果有自己的 .xinitrc 或 .xsession,系統不會自動執行 im-switch,然而不幸的是,有時候 im-switch 會錯亂,請參考 當 im-switch 錯亂時... 一文。
注意,若 "語文支援(Language Support)" 已選取 "中文" ,便不需設定了喔。
im-switch 指令如下:
- scim
im-switch -s scim
- gcin
im-switch -s gcin
參考資料:
- http://moto.debian.org.tw/viewtopic.php?t=11334 當 im-switch 錯亂時…
- http://moto.debian.org.tw/viewtopic.php?t=6964 官方輸入法選擇工具 im-switch
利用 .xsession 設定輸入法與桌面環境
如果您只打算設定個人使用者而不是全系統,那麼 xprofile/xsession/xinitrc 將會是一個很不錯工具。 在這裡我們將只討論 xsession(原因是因為 G/Kdm 啟動時皆會載入此檔,但 KDM 作業階段須選擇"預設(Default)")。
.xsession 提供使用者較進階的設定,能做到中文讀寫,然而是英文介面,甚至啟動桌面環境時自動執行某些動作/程式,參見"個人化的 X 環境設定"。
觀念:請見moto學園討論
- http://moto.debian.org.tw/viewtopic.php?t=6245 個人化的 X 環境設定
- http://moto.debian.org.tw/viewtopic.php?t=6213 locale 設定相關說明
- http://moto.debian.org.tw/viewtopic.php?t=9525 輸入法與環境變數 nano-Howto
- http://moto.debian.org.tw/viewtopic.php?t=9693 用 scim-bridge 取代 scim-gtk2-immodule
首先,在自己的"家資料夾"下,加入 .xsession 檔
- GNOME
gedit .xsession
秘訣:如果使用 GDM 或 Ubuntu 建議使用下列指令取上上列
gedit .gnomerc
- KDE
kwrite .xsession
.xsession 內容範例
scim
PS.如果有安裝 scim-bridge 可以下列改成
export GTK_IM_MODULE=scim-bridge export QT_IM_MODULE=scim-bridge
- GNOME(Ubuntu-desktop)
export LC_CTYPE=zh_TW.UTF-8 export XMODIFIERS=@im=SCIM export GTK_IM_MODULE=scim export QT_IM_MODULE=scim scim -d exec /etc/gdm/Sessions/Gnome
秘訣:若使用 .gnomerc 則去掉最後一行。
- KDE(Kubuntu-desktop)
export LC_CTYPE=zh_TW.UTF-8 export XMODIFIERS=@im=SCIM export GTK_IM_MODULE=scim export QT_IM_MODULE=scim scim -d exec startkde
gcin
PS.如果有安裝 gcin-qt3-immodule ,可將下列設為
export QT_IM_MODULE=gcin
- GNOME(Ubuntu-desktop)
export LC_CTYPE=zh_TW.UTF-8 export XMODIFIERS=@im=gcin export GTK_IM_MODULE=gcin export QT_IM_MODULE=xim gcin & exec /etc/gdm/Sessions/Gnome
- KDE(Kubuntu-desktop)
export LC_CTYPE=zh_TW.UTF-8 export XMODIFIERS=@im=gcin export GTK_IM_MODULE=gcin export QT_IM_MODULE=xim gcin & exec startkde
中文 fontconfig 設定檔
ubuntu 8.04 的中文支援內已將此做了改進,已不需設定便有好效果了,或許了解設定格式寫法,依照自己心意設定才是最好的。
入門指導與更多細節,請見如何運用 fontconfig 表現字體
- Ubuntu 用戶:
sudo gedit /etc/fonts/conf.d/10-myfonts.conf
- Kubuntu 用戶:
kdesu kwrite /etc/fonts/conf.d/10-myfonts.conf
內容如下:
<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<!-- conf.d/myfont.conf -->
<fontconfig>
<dir>/usr/share/fonts</dir>
<dir>/usr/share/fonts/local</dir>
<dir>/usr/local/share/fonts</dir>
<dir>~/.fonts</dir>
<!--加入點陣字體路徑-->
<dir>/usr/X11R6/lib/X11/fonts</dir>
<!--所有字型預設樣式-->
<match target="font">
<edit name="antialias" mode="assign">
<bool>true</bool>
</edit>
<edit name="hinting" mode="assign">
<bool>false</bool>
</edit>
<edit name="autohint" mode="assign">
<bool>false</bool>
</edit>
</match>
<!--打開中文粗體。註,這個問題似乎已不會再發生。所以以下設定也許是沒必要的。-->
<match target="font">
<test name="family" compare="contains">
<string>宋</string>
<string>明</string>
<string>楷</string>
<string>Song</string>
<string>Sun</string>
<string>Ming</string>
<string>Kai</string>
</test>
<test compare="more_eq" target="pattern" name="weight">
<int>180</int>
</test>
<edit mode="assign" name="embolden">
<bool>true</bool>
</edit>
</match>
<!-- 關閉小字AA -->
<match target="font">
<test name="pixelsize" compare="less">
<double>12</double>
</test>
<edit name="antialias" mode="assign">
<bool>false</bool>
</edit>
</match>
<!-- 關閉宋體、明體小字AA -->
<match target="font">
<test name="family" compare="contains">
<string>宋</string>
<string>明</string>
<string>Song</string>
<string>Sun</string>
<string>Ming</string>
</test>
<test name="pixelsize" compare="less_eq">
<double>20</double>
</test>
<edit name="antialias" mode="assign">
<bool>false</bool>
</edit>
</match>
<!-- 解決中文字體英文間距過寬 -->
<match target="font">
<test target="pattern" name="lang" compare="contains">
<string>zh-tw</string>
<string>zh-cn</string>
<string>ja</string>
<string>ko</string>
</test>
<edit name="spacing">
<const>proportional</const>
</edit>
<edit name="globaladvance">
<bool>false</bool>
</edit>
</match>
<!--設定中文最小字號-->
<match target="font">
<test name="family" compare="contains">
<string>宋</string>
<string>明</string>
<string>楷</string>
<string>Song</string>
<string>Sun</string>
<string>Ming</string>
<string>Kai</string>
</test>
<test name="pixelsize" compare="more_eq">
<double>8</double>
</test>
<test name="pixelsize" compare="less_eq">
<double>12</double>
</test>
<edit name="pixelsize" compare="eq">
<double>12</double>
</edit>
</match>
<!--適應中文用戶的用字習慣-->
<alias>
<family>serif</family>
<prefer>
<family>DejaVu Serif</family>
<family>Bitstream Vera Serif</family>
<family>Times New Roman</family>
<family>Times</family>
<family>AR PL New Sung</family>
<family>AR PL ShanHeiSun Uni</family>
<family>Kochi Mincho</family>
<family>UnBatang</family>
<family>Baekmuk Batang</family>
</prefer>
</alias>
<alias>
<family>sans-serif</family>
<prefer>
<family>DejaVu Sans</family>
<family>Bitstream Vera Sans</family>
<family>Lucida Grande</family>
<family>Helvetica</family>
<family>Arial</family>
<family>Verdana</family>
<family>AR PL New Sung</family>
<family>AR PL ShanHeiSun Uni</family>
<family>AR PL New Kai</family>
<family>AR PL ZenKai Uni</family>
<family>Kochi Gothic</family>
<family>UnDotum</family>
<family>Baekmuk Dotum</family>
</prefer>
</alias>
<alias>
<family>monospace</family>
<prefer>
<family>DejaVu Sans Mono</family>
<family>Bitstream Vera Sans Mono</family>
<family>Andale Mono</family>
<family>Courier New</family>
<family>Courier</family>
<family>AR PL New Sung Mono</family>
<family>AR PL New Sung</family>
<family>AR PL ShanHeiSun Uni</family>
<family>Kochi Gothic</family>
<family>Baekmuk Dotum</family>
</prefer>
</alias>
<alias>
<family>細明體</family>
<prefer>
<family>AR PL New Sung</family>
<family>AR PL ShanHeiSun Uni</family>
</prefer>
</alias>
<alias>
<family>新細明體</family>
<prefer>
<family>AR PL New Sung</family>
<family>AR PL ShanHeiSun Uni</family>
</prefer>
</alias>
<alias>
<family>標楷體</family>
<prefer>
<family>AR PL New Kai</family>
<family>AR PL KaitiM Big5</family>
<family>AR PL KaitiM GB</family>
<family>AR PL ZenKai Uni</family>
</prefer>
</alias>
</fontconfig>
console 中文顯示
zhcon
- zhcon 支援的編碼有: big5, gb2312, gbk, jis, ksc
- 安裝 zhcon
sudo apt-get install zhcon
- 若要 zhcon 預設顯示 big5 編碼,請修改 /etc/zhcon.conf, 將 defaultencode 改為 big5
defaultencode = big5
jfbterm
- jfbterm 支援顯示 unicode 編碼。
- 安裝
sudo apt-get install jfbterm
- 若 locale 非 unicode, 請將之設為 unicode, 如:
export LC_ALL=zh_TW.UTF-8
- 執行 jfbterm
- 若出現找不到 unifont.pcf.gz 的錯誤時, 請
locate unifont.pcf.gz
- 尋找出正確的 unifont.pcf.gz 字型路徑後, 請修改 /etc/jfbterm.conf 將路徑設為正確。
- 例如:
+fontset: iso10646.1,pcf,U,/usr/X11R6/lib/X11/fonts/misc/unifont.pcf.gz
- 註:jfbterm 需要核心的 framebuffer 支援。