CentOS 7で太字フォントを綺麗に表示する


概要

デフォルトではターミナルで太字フォントが次のように表示されます。

これをアンチエイリアスが効いていないから、と思うかもしれません。
ですが、実際にはフォントヒンティングという最適化技術が原因です。
フォントヒンティングを無効化すると次のように表示されるようになります。

フォントヒンティングを無効化する方法

  1. ~/.config/fontconfig/fonts.conf を作成します。

  2. 作成した fonts.conf に以下の内容を記述し保存します。

    fonts.conf
    <?xml version='1.0'?>
    <!DOCTYPE fontconfig SYSTEM 'fonts.dtd'>
    <fontconfig>
        <match target="font">
            <edit mode="assign" name="hinting">
                <bool>false</bool>
            </edit>
        </match>
    </fontconfig>
    
    
  3. 次のコマンドを実行します。
    $ fc-cache

成功していれば、ターミナル再起動で変更が反映されていることを確認できます。

備考

  • 上の例では全てのフォントがフォントヒンティングなしになります。
    特に違和感を感じることはないと思いますが太字フォントでのみ無効化させたい等の場合は
    この記事の下部、参考に詳しい情報が載っています。

  • Linuxのフォント設定をネットで調べると ~/.config/fontconfig/fonts.conf ではなく
    ~/.fonts.conf を編集する方法が見つかるかもしれません。
    ですが、こちらは最近は使われなくなっているらしく、
    その関係か ~/.fonts.conf があると ~/.config/fontconfig/fonts.conf として移動し
    ~/.fonts.conf がシンボリックリンクに変更されます。
    そのため、~/.fonts.conf を削除しても設定が残ることになるので注意してください。

ノート: 設定ファイルとディレクトリ: ~/.fonts.conf, ~/.fonts.conf.d, ~/.fontconfig/*.cache-* は fontconfig 2.10.1 から使われなくなりました (upstream commit) 次のバージョンのパッケージからデフォルトで読み込まれなくなります。代わりに $XDG_CONFIG_HOME/fontconfig/fonts.conf, $XDG_CONFIG_HOME/fontconfig/conf.d/NN-name.conf, $XDG_CACHE_HOME/fontconfig/*.cache-* を各々使って下さい。二番目のディレクトリを使う場合、ファイルの名前は NN-name.conf という決まりに従って下さい (NN は2桁の数字です、例: 00, 10, 99)。
— 引用元: arclinux/フォント設定#Fontconfig 設定


  • 確認バージョン: CentOS Linux release 7.3.1611 (Core)

参考

arclinux/フォント設定
arclinux/フォント設定/サンプル#斜体や太字でヒンティングを無効化
Qiita の記事の見出しに Font-Awesome を利用して見栄えを良くする #qiita