炸蝦碎碎念。

[Notes, GNU/Linux, Open Source, Ruby on Rails, Computer Science, Archlinux]

[Linux] Fontconfig - Linux系統的中文字型設定、解決console程式缺字問題

其實在桌面環境中,用KDE或其他DE提供的字型設定就很足夠了,我偏好Adobe的Source Han Sans TWHK 好看、又有台灣的中文寫法。

但是在console裡用的中文,比如說在vim裡的中文字型或者是有些沒有吃到桌面字型設定的程式,就會有缺字或很難看的情形。

在Linux下是透過fontconfig這個套件來管理跟控制字型,所以這個問題主要是因為預設的Font Config中的很多中文字型可能已經過時,或者是沒裝,或者因為是中國的簡體字型所以不好看或者是會缺字。

/etc/fonts/conf.d下能看到主要的字型設定檔,用xml的方式設定。這裡不贅述設定的細節,可以自己參考man fonts-config。而中文以及其他非拉丁字母字型的對應在65-nonlatin.conf裡頭。這些檔案是整個系統的全域設定,我建議可在 ~/.config/fontconfig/fonts.conf 裡用同樣的格式設定,如果沒有 fontconfig 資料夾的話要自己建立。

長的像這樣:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
    <alias>
        <family>serif</family>
        <prefer>
            <family>字型名稱</family>
        </prefer>
    </alias>
    <alias>
        <family>sans-serif</family>
        <prefer>
            <family>字型名稱</family>
        </prefer>
    </alias>
    <alias>
        <family>monospace</family>
        <prefer>
            <family>字型名稱</family>
        </prefer>
    </alias>
</fontconfig>

所以要讓系統能顯示正確的字型,就在指定font family(sans, sans-serif, monospace)底下的prefer裡加上自己喜歡的字型。因為套件庫裡找不到台灣寫法的等寬黑體,所以就將用了文泉驛等寬微米黑(WenQuanYi Micro Hei Mono, wqy-microhei)。重開應用程式(如Konsole)就能看到正確的字型摟。

Comments