Ubuntu環境下,手動安裝思源字型
Script
已經寫好的「Script」。
說明
下載「Google版」。
$ wget -c https://noto-website.storage.googleapis.com/pkgs/Noto-hinted.zip
我是放在這個資料夾「/usr/local/share/fonts/Noto」,參考這篇提到的。
解壓縮
$ unzip Noto-hinted.zip -d Noto
移到「/usr/local/share/fonts/Noto」
$ sudo mv Noto /usr/local/share/fonts/
或是複製到「/usr/local/share/fonts/Noto」
$ sudo cp Noto /usr/local/share/fonts/ -a
設定擁有者
$ sudo chown root.staff /usr/local/share/fonts/Noto -R
或是執行,設定擁有者
$ sudo chown root:staff /usr/local/share/fonts/Noto -R
設定檔案權限
sudo chmod 644 /usr/local/share/fonts/Noto/* -R
sudo chmod 755 /usr/local/share/fonts/Noto
安裝字型
sudo fc-cache -fv
以上的步驟,就可以將字型安裝完成
你可以執行下面的指令驗證
fc-match -a | grep Noto
若要在「/etc/fonts/conf.d」做額外的設定,可以參考「這篇」和「這篇」,相關的gist - (1), (2),或是根據「這篇」的說明,改成自己的設定。 不過字型的名稱已經改變了,如下:
<string>Noto Sans CJK TC</string>
<string>Noto Sans CJK SC</string>
<string>Noto Sans CJK JP</string>
<string>Noto Sans CJK KR</string>
用下面的指令就可以查到
$ fc-match -a | grep CJK
另外在「這個PPA」也有看到一個套件「fonts-noto-cjk」,也可以參考他的設定
$ wget -c http://ppa.launchpad.net/createsc/3beol/ubuntu/pool/main/f/fonts-noto-cjk/fonts-noto-cjk_20140912-1~utopic0918~3beol_all.deb
$ dpkg -x fonts-noto-cjk_20140912-1\~utopic0918\~3beol_all.deb fonts-noto-cjk
$ vi fonts-noto-cjk/usr/share/fontconfig/conf.avail/90-fonts-noto-cjk.conf
目前Ubuntu 14.04也有一個套件叫「fonts-noto」,不過目前應該沒有包含「CJK」字型。
$ apt-get download fonts-noto
$ dpkg -x fonts-noto_2013-04-11-2_all.deb fonts-noto
$ ls fonts-noto/usr/share/fonts/truetype/noto/
輔助工具
在「「/etc/fonts/conf.d」裡面的設定檔,真的是「百家爭鳴」, 所以只好利用「Fontconfig Designer」這個工具,產生一個設定檔, 裡面建議的路徑是「~/.fonts.conf」。
不過目前「~/.fonts.conf」這個路徑, 要改放到「~/.config/fontconfig/fonts.conf」。
當你執行
fc-match
就會看到下面的訊息
Fontconfig warning: "/etc/fonts/conf.d/50-user.conf",
line 14: reading configurations from ~/.fonts.conf is deprecated.
please move it to ~/.config/fontconfig/fonts.conf manually
DejaVuSans.ttf: "DejaVu Sans" "Book"
觀看「/etc/fonts/conf.d/50-user.conf」的內容
$ vi /etc/fonts/conf.d/50-user.conf
就會看到
<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
<!--
Load per-user customization files where stored on XDG Base Directory
specification compliant places. it should be usually:
$HOME/.config/fontconfig/conf.d
$HOME/.config/fontconfig/fonts.conf
-->
<include ignore_missing="yes" prefix="xdg">fontconfig/conf.d</include>
<include ignore_missing="yes" prefix="xdg">fontconfig/fonts.conf</include>
<!-- the following elements will be removed in the future -->
<include ignore_missing="yes" deprecated="yes">~/.fonts.conf.d</include>
<include ignore_missing="yes" deprecated="yes">~/.fonts.conf</include>
</fontconfig>
也就是說個人的設定,要使用「~/.config/fontconfig/fonts.conf」和「~/.config/fontconfig/conf.d」裡面的檔。 而「~/.fonts.conf」和「~/.fonts.conf.d」這兩個地方就不建議使用了。
另外還有一個要注意的,就是,你有安裝「font-manager」這個套件。 當你執行這個程式的時候,會寫入「~/.config/fontconfig/fonts.conf」這個檔。
內容如下(假設使用者的帳號是「user」)。
<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
<!--
This file is maintained by Font Manager.
If you wish to make any changes it is suggested you do so using
/home/user/.config/font-manager/local.conf
Any changes made to this file will be automatically relocated there
at startup and any settings already in that file will be overwritten.
-->
<include ignore_missing="yes">/home/user/.config/font-manager/conf.d</include>
<include ignore_missing="yes">/home/user/.config/font-manager/directories.conf</include>
<include ignore_missing="yes">/home/user/.config/font-manager/local.conf</include>
<include ignore_missing="yes">/home/user/.config/font-manager/select.conf</include>
</fontconfig>
所以最佳的建議是寫到「~/.config/fontconfig/conf.d」裡面的檔案,可以參照「/etc/fonts/conf.d/」的作法。
例如你可以把剛剛利用「Fontconfig Designer」這個工具,所產生的內容。 寫到「~/.config/fontconfig/conf.d/70-select.conf」。
若你要確認「~/.config/fontconfig/conf.d/10-select.conf」有沒有真的被載入。 只要在「~/.config/fontconfig/conf.d/70-select.conf」第一行,第一字,雖便亂填一個字。例如:a。這樣就會導致xml格式錯誤。
然後在執行
$ fc-match
你就會看到下面的錯誤訊息。
Fontconfig error: "/home/user/.config/fontconfig/conf.d/70-select.conf", line 1: not well-formed (invalid token)
DejaVuSans.ttf: "DejaVu Sans" "Book"
也就是說,我們可以確定「~/.config/fontconfig/conf.d/70-select.conf」是有被載入的。
然後你要測試你的字型查找的順序是否跟你的設定檔相符合,可以用下面指令來測試
$ fc-match -s monospace | less
$ fc-match -s serif | less
$ fc-match -s sans-serif | less
$ fc-match -s mono | less
$ fc-match -s sans | less
也可以直接測試你某個「字型名稱」,確認查找的順序是不是你要的。
$ fc-match -s 標楷體 | less
結論
基本上,只要了設定檔的原理,還有查找的順序,就可以依照自己想要的設定去設摟,以上只是當作範例來說明,了解如何設定。