Raspberry Pi(stretch)フォント設定 noto font

Raspbian Stretch(2018-03-13)がリリースされていますね。

Raspbianをインストールすると一応日本語もきれいに表示してくれます。

デフォルトのシステムフォントはDroidSansFallbackFull.ttfが使われていてandroid端末用の軽量フォントのようです。

$ fc-match sans
DroidSansFallbackFull.ttf: "Droid Sans Fallback" "Regular"
$ fc-match serif
DroidSansFallbackFull.ttf: "Droid Sans Fallback" "Regular"
$ fc-match monospace
DroidSansFallbackFull.ttf: "Droid Sans Fallback" "Regular"

これは日本語フォントをインストールするとすぐ取って代わられる運命にあるものと思います。

今回は少しフォントを変更してnoto(no tofu)フォントをインストールしてみました。
notoフォントはパッケージからもインストールできます。
fonts-notoは全世界用の巨大なパッケージになります。ここはアジア圏のfonts-noto-cjk (China、Japanese、Korea)をインストールします。

# apt install fonts-noto-cjk

インストールが済むとシステムフォントは変更されます。

$ fc-match sans
NotoSansCJK-Medium.ttc: "Noto Sans CJK JP" "Medium"
$ fc-match serif
NotoSansCJK-Medium.ttc: "Noto Sans CJK JP" "Medium"
$ fc-match monospace
NotoSansCJK-Regular.ttc: "Noto Sans Mono CJK JP" "Regular"

パッケージにはserif(明朝体)が含まれてないですね。
Google Noto FontsのページからNoto Serif CJK JPを検索してダウンロードします。ダウンロードしたファイルは展開すると7ファイル(otf)あります。
ファイルはパッケージからインストールしたディレクトリ/usr/share/fonts/opentype/notoに一緒に置くことにします。

$ unzip NotoSerifCJKjp-hinted.zip
# mv *otf /usr/share/fonts/opentype/noto

展開したファイルのパーミッションは640になっていると思います。644に変更しないと読み取ることができません。

# chmod 644 /usr/share/fonts/opentype/noto/*
-rw-r--r-- 1 root root 18604592  6月 17  2015 NotoSansCJK-Black.ttc
--------- snip ---------
-rw-r--r-- 1 root root 22926508  3月 24 13:38 NotoSerifCJKjp-Black.otf
-rw-r--r-- 1 root root 24694400  3月 24 13:38 NotoSerifCJKjp-Bold.otf
-rw-r--r-- 1 root root 21313820  3月 24 13:38 NotoSerifCJKjp-ExtraLight.otf
-rw-r--r-- 1 root root 23468788  3月 24 13:38 NotoSerifCJKjp-Light.otf
-rw-r--r-- 1 root root 23900156  3月 24 13:39 NotoSerifCJKjp-Medium.otf
-rw-r--r-- 1 root root 23624340  3月 24 13:39 NotoSerifCJKjp-Regular.otf
-rw-r--r-- 1 root root 23888120  3月 24 13:39 NotoSerifCJKjp-SemiBold.otf

パッケージからインストールしたfonts-noto-cjkは設定ファイルもインストールされています。
serifの箇所のNoto Sans CJK JPをNoto Serif CJK JPに変更します。
ほかKR,SC,TCも変更しましょう(計4箇所)
/etc/fonts/conf.avail/70-fonts-noto-cjk.conf

-------
<string>serif</string>
---------
<string>Noto Serif CJK JP</string>

インストールしたフォントを読み込みます。notoのところで時間がかかります(5分位)

# fc-cache -fv

Serifも認識されました。

$ fc-match sans
NotoSansCJK-Medium.ttc: "Noto Sans CJK JP" "Medium"
$ fc-match serif
NotoSerifCJKjp-Medium.otf: "Noto Serif CJK JP" "Medium"
$ fc-match monospace
NotoSansCJK-Regular.ttc: "Noto Sans Mono CJK JP" "Regular"


若干、線が細めのところが気になりますがなかなかきれいで可読性も良さそうです。

但し、当サイトの環境ではこのままシステムデフォルトとして使用することができないんですね。
これまでの経緯からlibreofficeなどで作成した文書はipaフォントを使用しておりnotoフォントをつかって見ると崩れてしまいます。
ipaフォントをインストールするとインストールしただけでシステムフォントはipaにいってしまいます。

いろいろ検討したところやはりシステムデフォルトとしてはipaフォントを、ユーザーデフォルトとしてnotoフォントを設定してみることにしました。

ipaフォントの設定

インストールはipafontとipaexfontそしてricty-diminished

# apt install fonts-ipafont fonts-ipaexfont fonts-ricty-diminished

設定ファイル
以下のファイル(拡張子.conf)を/etc/fonts/conf.availにおきます。
65-fonts-ipa-mincho.conf
65-fonts-ipa-pgothic.conf
65-fonts-monospace.conf
リンク作成

# cd /etc/fonts/conf.d
# ln -s ../conf.avail/65-fonts-ipa-mincho.conf
# ln -s ../conf.avail/65-fonts-ipa-pgothic.conf
# ln -s ../conf.avail/65-fonts-monospace.conf
# fc-match sans
ipagp.ttf: "IPA Pゴシック" "Regular"
# fc-match serif
ipamp.ttf: "IPA P明朝" "Regular"
# fc-match monospace
RictyDiminished-Regular.ttf: "Ricty Diminished" "Regular


IPAのプロポーシャナルフォントはnotoフォントと比べると字幅も少ないせいかこぢんまりまとまってこれもなかなかいい感じですね。

ユーザー設定

ユーザーの~/.config/以下にディレクトリfontconfigを作成、新たにfonts.confを作成
monospaceにはRicty Diminishedを設定しています。
fonts.conf

$ fc-match sans
NotoSansCJK-Medium.ttc: "Noto Sans CJK JP" "Medium"
$ fc-match serif
NotoSerifCJKjp-Medium.otf: "Noto Serif CJK JP" "Medium"
$ fc-match monospace
RictyDiminished-Regular.ttf: "Ricty Diminished" "Regular"


Ricty Diminishedのターミナルからシステムデフォルトとユーザーpiの設定を確認

各ユーザーの設定はfonts.confで変更が可能になります。
インストールされているフォント名はfc-listで確認できます。


デフォルトフォントはメニューなどすべてに影響があります。
デフォルトフォント設定後は基本sans,serif,monospaceに割り当てて用途、好みに応じて変更していけば設定も楽になるものと思います。