Ubuntu環境下,探究 fontconfig 相關的套件
測試環境
以下所提的測試環境是在「Xubuntu 14.04 64位元」測試。我使用的界面是英文。所以一些相關的術語是使用英文摟。
fontconfig 相關的套件
Package
- fontconfig
- fontconfig-config
- language-selector-common
- language-selector-gnome (這個套件基本上不算是,只是剛好有相關,順帶一提)
Source Package
剛剛才發現一個「查詢某個檔案或是資料夾,屬於哪個套件」的指令下法。
原來可以執行下面的指令阿,就可以知道「30-cjk-aliases.conf」是屬於哪個套件。參考這篇提到的。1
$ dpkg -S 30-cjk-aliases.conf
fontconfig
在ubuntu手動安裝font。通常會接觸到一個指令「fc-cache」。「fc-cache」的用法,可以參考「這篇」的說明範例來練習。
通常會這樣下。
1 | $ sudo fc-cache -fv |
而這個指令是屬於「fontconfig」這個套件。
當然這個套件還包含其他相關的指令。
- fc-cache
- fc-cat
- fc-list
- fc-match
- fc-pattern
- fc-query
- fc-scan
- fc-validate
這裡值得一提的指令「fc-match」。
當你在設定「/etc/fonts/conf.d」裡面的檔的時候,若有寫錯。執行下面的指令,就會告訴你哪裡寫錯了。1
$ fc-match
下面這個指令下法,可以讓你了解系統尋找font的順序。「fc-match」的用法會在另一篇文章來討論。
1 | $ fc-match -s nonospace | less |
fontconfig-config
通常我們在設定font的時候,也常到「/etc/fonts」去做些修改。
而這個資料夾裡面的檔案則是來自於「fontconfig-config」這個套件。
例如「65-nonlatin.conf」。
1 | $ dpkg -S 65-nonlatin.conf |
language-selector-common
在這一頁提到的「30-cjk-aliases.conf」
正常的檔放在「/etc/fonts/conf.avail/30-cjk-aliases.conf」
通常會有一個symbolic link放在「/etc/fonts/conf.d/30-cjk-aliases.conf」。
這個是屬於「language-selector-common」這個套件。而不是放在上面提到的「fontconfig-config」。
這個套件也包含了幾個常看到的檔。
- 30-cjk-aliases.conf
- 69-language-selector-zh-cn.conf
- 69-language-selector-zh-hk.conf
- 69-language-selector-zh-mo.conf
- 69-language-selector-zh-sg.conf
- 69-language-selector-zh-tw.conf
- 99-language-selector-zh.conf
額外提的,還有一個套件叫「language-selector-gnome」,和「language-selector-common」都是屬於「language-selector」這個「原始碼套件(Source Package )」。
這個套件,就是我們常看到的「Language Support」哪隻程式。
在「Xubuntu」,展開「開始選單(Whisker)」,選單右下方有一個按鈕「All Setting」,會跳出「Settings」這隻程式。在「Psersonal」就會看到「Language Support」。
或是你用的是「Applications Menu」。則是展開後,選擇「Settings Manager」,同樣會跳出會跳出「Settings」這隻程式。
或是直接在Termianl,執行「xfce4-settings-manager」也行。在「Whisker選單」查詢「xfce4-settings-manager」或是「Settings Manager」,也查的到,基本上你打「se」大概就會跑出來「Settings Manager」了。
而剛剛提到的「language-selector-gnome」,裡面有一個程式叫做「gnome-language-selector」,就是剛剛提到的「Language Support」。在「Terminal」下「gnome-language-selector」這個指令就行了,就不用透過剛剛選單的方式。
先驗證上面提到的
先準備一個暫時工作的資料夾
1 | mkdir ~/tmp/font -p |
準備好等會所有要工作的資料夾。
1 | mkdir fontconfig/download -p |
下載「fontconfig」的「package」,並解開。
1 | cd ~/tmp/font/fontconfig/download |
觀看有哪些執行檔。
1 | $ ls fontconfig/usr/bin -1 |
就會看到
1 | fc-cache |
你可以觀看最重要的文件「fontconfig-user.html」,不過我也還沒看,只是要寫這篇,才無意間發現有這個文件。
1 | $ lynx fontconfig/usr/share/doc/fontconfig/fontconfig-user.html |
或是
1 | $ firefox fontconfig/usr/share/doc/fontconfig/fontconfig-user.html |
或是
1 | $ sensible-browser fontconfig/usr/share/doc/fontconfig/fontconfig-user.html |
觀看有哪些「Manual」可以查詢。
1 | $ ls fontconfig/usr/share/man/man1 -1 # 這裡是下「-1」喔,不是「-l」 |
就會看到
1 | fc-cache.1.gz |
這些就是上面那些程式的相關文件
所以就可以查詢。
man 1
- $ man 1 fc-cache
- $ man 1 fc-cat
- $ man 1 fc-list
- $ man 1 fc-match
- $ man 1 fc-pattern
- $ man 1 fc-query
- $ man 1 fc-scan
- $ man 1 fc-validate
注意以上的路徑是在我們目前工作的資料夾裡。當然你也可以對應到「/」底下。
因為系統應該有裝「fontconfig」這個套件。所以相對在「/」底下應該都有這樣的檔案。
上面的作法,只是要讓你看到「fontconfig」有安裝了什麼檔案在「/」底下。
下載「fontconfig」的「Source Package」,並解開。
1 | cd ~/tmp/font/fontconfig/source |
你就會看到相關的原始碼檔案了。
下載「fontconfig-config」的「package」,並解開。
1 | cd ~/tmp/font/fontconfig-config/download |
觀看有哪些檔。
1 | $ ls fontconfig-config/etc/fonts/conf.d -1 # 這裡是下「-1」喔,不是「-l」 |
就可以看到這下面這幾個symblic檔
1 | 10-antialias.conf |
觀看有哪些「Manual」可以查詢。
1 | $ ls fontconfig-config/usr/share/man/man5 |
可以看到1
fonts-conf.5.gz
也就是說安裝了「fontconfig-config」,就會安裝「fonts-conf」這個manual。
所以可以直接下
1 | $ man fonts-conf |
就可以看到相關文件了。內容應該跟剛剛的「fontconfig-user.html」是一樣的。
下載「fontconfig-config」的「Source Package」,並解開。
1 | cd ~/tmp/font/fontconfig-config/source |
你就會看到相關的原始碼檔案了。
「fontconfig」和「fontconfig-config」,都是屬於「fontconfig」這個「Source Package」。
1 | $ vi fontconfig-2.11.0/debian/control |
就可以看到拆成幾個package的相關資訊。
下載「language-selector-common」 的「package」,並解開。
1 | cd ~/tmp/font/language-selector-common/download |
觀看有哪些設定檔。
1 | $ ls language-selector-common/etc/fonts/conf.d -1 |
就可以看到這下面這幾個symblic檔1
2
3
4
5
6
730-cjk-aliases.conf
69-language-selector-zh-cn.conf
69-language-selector-zh-hk.conf
69-language-selector-zh-mo.conf
69-language-selector-zh-sg.conf
69-language-selector-zh-tw.conf
99-language-selector-zh.conf
下載「language-selector-common」的「Source Package」,並解開。
1 | cd ~/tmp/font/language-selector-common/source |
你就會看到相關的原始碼檔案了。
下載「language-selector-gnome」的「Package」,並解開。
1 | cd ~/tmp/font/language-selector-gnome/download |
觀看有哪些執行檔。
1 | $ ls language-selector-gnome/usr/bin/ |
可以看到只有一個檔1
gnome-language-selector
是用Python3寫的
1 | $ vi language-selector-gnome/usr/bin/gnome-language-selector |
觀看有哪些「Manual」可以查詢。
1 | ls language-selector-gnome/usr/share/man/man1 |
可以看到1
gnome-language-selector.1.gz
所以就可以看相關的文件
man 1
- $ man 1 gnome-language-selector
下載 language-selector-gnome 的「Source Package」,並解開。
1 | cd ~/tmp/font/language-selector-gnome/source |
「language-selector-common」和「language-selector-gnome」,都是屬於「language-selector」這個「Source Package」。