manjaro linux の日本語フォントを直す

manjaro linux を使用していて日本語フォントが適切に設定されていなかった為、対処していきます。

経緯

manjaro linux に乗り換えた後、稀にフォントがおかしいなと感じていましたが、特に気にせず使用していました。 しかし、ふと日本語を打った際によく使う漢字の表記が中国語表記になっており、一気に気になるようになってしまいました。

一度気になると直さないと気がすまなくなるため直そうと思い立ったわけです。

フォントの確認

linux では「fc-match」コマンドを使用することにより、フォントの優先順位確認ができます。

私の場合、下記の様に表示されました。

$ fc-match
SourceHanSansCN-Regular.otf: "Source Han Sans CN" "Regular"

デスクトップ環境では日本語フォントを使用する設定になっていますが、システムの方は中国語フォントになっています。 これが、稀にフォントがおかしくなる原因だと思います。

次に、システムにインストールされているフォントを確認します。 コマンドは同じく「fc-match」で、「-s」オプションをつけることにより使用できるフォントの一覧を取得できます。

$ fc-match -s

その他、serif フォントの場合に使われているフォントを知りたい場合は下記のように指定できます。

$ fc-match serif

フォントの設定

フォント設定の方法は安定の ArchWiki に詳しい解説があります。

https://wiki.archlinux.jp/index.php/%E3%83%95%E3%82%A9%E3%83%B3%E3%83%88%E8%A8%AD%E5%AE%9A#.E3.83.95.E3.82.A9.E3.83.B3.E3.83.88.E3.81.AE.E7.BD.AE.E3.81.8D.E6.8F.9B.E3.81.88

フォント設定のサンプルもあります。

https://wiki.archlinux.jp/index.php/%E3%83%95%E3%82%A9%E3%83%B3%E3%83%88%E8%A8%AD%E5%AE%9A/%E3%82%B5%E3%83%B3%E3%83%97%E3%83%AB

このサンプルの日本語フォント項目が非常に便利です。 Noto フォントを使う場合、このサンプルをコピペするだけで簡単に設定することができます。

私の場合、設定ファイルは以下となりました。

~/.config/fontconfig/fonts.conf

<?xml version='1.0'?>
<!DOCTYPE fontconfig SYSTEM 'fonts.dtd'>
<fontconfig>

<!-- Default font (no fc-match pattern) -->
 <match>
  <edit mode="prepend" name="family">
   <string>Noto Serif</string>
  </edit>
 </match>

<!-- Default font for the ja_JP locale (no fc-match pattern) -->
 <match>
  <test compare="contains" name="lang">
   <string>ja</string>
  </test>
  <edit mode="prepend" name="family">
   <string>Noto Serif CJK JP</string>
  </edit>
 </match>

<!-- Default sans-serif font -->
 <match target="pattern">
   <test qual="any" name="family"><string>sans-serif</string></test>
   <edit name="family" mode="prepend" binding="same"><string>IPAゴシック</string>  </edit>
 </match>

<!-- Default serif fonts -->
 <match target="pattern">
   <test qual="any" name="family"><string>serif</string></test>
   <edit name="family" mode="prepend" binding="same"><string>IPA明朝</string>  </edit>
 </match>

<!-- Default monospace fonts -->
 <match target="pattern">
   <test qual="any" name="family"><string>monospace</string></test>
   <edit name="family" mode="prepend" binding="same"><string>monospace</string></edit>
 </match>

この設定で問題なく日本語表示できるようになりました。

余談

linux を使っていると細かい問題がちょくちょく出現します。 これさえなければ OS の動作自体は安定しているのでデスクトップ環境としてもっと勧めることができるのですが......

最近は友人間でも apple 勢力に押されています。 iPhonemac が強い。