UbuntuL10n

出自Ubuntu 正體中文 Wiki

跳轉到: 導航, 搜尋



前言

ubuntu對於英文的使用者來說已經相當的方便,不需要額外安裝相對應的軟體。但是對於中文的使用者來說,你依舊會遭遇到幾個小問題。

  1. 中文字體不夠細緻 (ubuntu 8.04 已改進)
  2. 不合適的 fontconfig 設定 (ubuntu 8.04 已改進)
  3. 缺乏良好設定的中文輸入法 (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。

推薦連結:

缺乏設定好的輸入法

要使用中文輸入法,需要兩個步驟

  1. 安裝輸入法
  2. 設定輸入法
  • 安裝輸入法,就是將輸入法的程式安裝進作業系統當中,有安裝才能使用
  • 設定輸入法代表的是告訴系統你現在用的輸入法是那種,你輸入的語系是那個

以下有兩種方法,利用 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



設定輸入法

利用 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

參考資料:

  1. http://moto.debian.tw/viewtopic.php?t=11334 當 im-switch 錯亂時…
  2. http://moto.debian.tw/viewtopic.php?t=6964 官方輸入法選擇工具 im-switch

利用 .xsession 設定輸入法與桌面環境

如果您只打算設定個人使用者而不是全系統,那麼 xprofile/xsession/xinitrc 將會是一個很不錯工具。 在這裡我們將只討論 xsession(原因是因為 G/Kdm 啟動時皆會載入此檔,但 KDM 作業階段須選擇"預設(Default)")。

.xsession 提供使用者較進階的設定,能做到中文讀寫,然而是英文介面,甚至啟動桌面環境時自動執行某些動作/程式,參見"個人化的 X 環境設定"。

觀念

請見moto學園討論

  1. http://moto.debian.tw/viewtopic.php?t=6245 個人化的 X 環境設定
  2. http://moto.debian.tw/viewtopic.php?t=6213 locale 設定相關說明
  3. http://moto.debian.tw/viewtopic.php?t=9525 輸入法與環境變數 nano-Howto
  4. http://moto.debian.tw/viewtopic.php?t=9693 用 scim-bridge 取代 scim-gtk2-immodule

scim-bridge

scim-bridge 可以避免由 C++ 寫成的 scim 和許多程式衝突的發生。目前有:scim-bridge-agent、scim-bridge-client-gtk、scim-bridge-client-qt、scim-bridge-client-qt4 等套件,請自行安裝您所需要的。

首先,在自己的"家資料夾"下,加入 .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/20-myfonts.conf
  • Kubuntu 用戶:
kdesu kwrite /etc/fonts/conf.d/20-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>

<!--所有字型預設開AA關hinting-->
<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>

<!-- 關閉大於6級,小於16級的AA -->
<match target="font">
        <test name="size" compare="more">
                <double>6</double>
        </test>
        <test name="size" compare="less">
                <double>16</double>
        </test>
        <edit name="antialias" 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>

<!-- 解決中文字體英文間距過寬 -->
<match target="font">
        <test target="pattern" name="lang" compare="contains">
                <string>zh</string>
                <string>ja</string>
                <string>ko</string>
        </test>
        <test name="spacing" compare="eq">
                <const>dual</const>
        </test>
        <edit name="spacing">
                <const>proportional</const>
        </edit>
        <edit name="globaladvance">
                <bool>false</bool>
        </edit>
</match>

<!--可忽略的設定,設定宋明楷體大於6級9級以下為9級-->
<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="size" compare="more">
                <double>6</double>
        </test>
        <test name="size" compare="less_eq">
                <double>9</double>
        </test>
        <edit name="size" compare="eq">
                <double>9</double>
        </edit>
</match>

<!--適應正體中文用戶的用字習慣,可依個人喜好修改。-->
<alias>
        <family>serif</family>
        <prefer>
                <family>Times New Roman</family>
                <family>Times</family>
                <family>DejaVu Serif</family>
                <family>Bitstream Vera Serif</family>
                <family>AR PL New Sung</family>
                <family>AR PL UMing TW</family>
                <family>AR PL UMing TW MBE</family>
                <family>AR PL UMing HK</family>
                <family>AR PL UMing CN</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>Lucida Grande</family>
                <family>Helvetica</family>
                <family>Arial</family>
                <family>Verdana</family>
                <family>DejaVu Sans</family>
                <family>Bitstream Vera Sans</family>
                <family>AR PL New Sung</family>
                <family>AR PL UMing TW</family>
                <family>AR PL UMing TW MBE</family>
                <family>AR PL UMing HK</family>
                <family>AR PL UMing CN</family>
                <family>AR PL ShanHeiSun Uni</family>
                <family>文泉驛正黑</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>Andale Mono</family>
                <family>Courier New</family>
                <family>Courier</family>
                <family>DejaVu Sans Mono</family>
                <family>Bitstream Vera Sans Mono</family>
                <family>AR PL New Sung Mono</family>
                <family>AR PL New Sung</family>
                <family>AR PL UMing TW</family>
                <family>AR PL UMing TW MBE</family>
                <family>AR PL UMing HK</family>
                <family>AR PL UMing CN</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 UMing TW</family>
                <family>AR PL UMing TW MBE</family>
                <family>AR PL UMing HK</family>
                <family>AR PL UMing CN</family>
                <family>AR PL ShanHeiSun Uni</family>
        </prefer>
</alias>

<alias>
        <family>新細明體</family>
        <prefer>
                <family>AR PL New Sung</family>
                <family>AR PL UMing TW</family>
                <family>AR PL UMing TW MBE</family>
                <family>AR PL UMing HK</family>
                <family>AR PL UMing CN</family>
                <family>AR PL ShanHeiSun Uni</family>
        </prefer>
</alias>

<alias>
        <family>標楷體</family>
        <prefer>
                <family>AR PL New Kai</family>
                <family>AR PL ZenKai Uni</family>
                <family>AR PL KaitiM Big5</family>
                <family>AR PL KaitiM GB</family>
        </prefer>
</alias>

</fontconfig>