Ubuntu 18.04 LTSでGoogle Noto Fontsを使う

.Net Coreを使って日本語を描画した画像を作りたかった。
日本語だけでなく韓国語、中国語までかなりきれいに使えるということでGoogle Noto Fontsをチョイス。英字もデザインが統一されていてとっても使いやすい。

■フォントをダウンロード

Google Noto Fonts
https://www.google.com/get/noto/

インストール方法は上記サイトに載っている通りだが、CLIで使ってるためfontconfigのインストールが必要だった。

フォントファイルはwgetでもなんでも適当に。

mkdir -p /usr/share/fonts/opentype/noto
cp *otf *otc /usr/share/fonts/opentype/noto

システムで有効にするためfontconfigを入れてキャッシュ再生成。

apt install fontconfig
fc-cache -f -v

【2020/07/14追記】
Amelia氏が商用利用可能な無料でお洒落なフォント集を教えてくれたので紹介するよ!
同じ手順で使用できるみたい。ありがとう、Amelia!

70+ Best Free Fonts for Designers – Free for Commercial Use in 2020 https://www.websiteplanet.com/blog/best-free-fonts/

■fontconfigの設定

下記のサイトを参考に設定ファイルを作成した。

参考:ぽぬぽぬ: fontconfigの設定

vi /etc/fonts/local.conf
<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
    <alias>
        <family>serif</family>
        <prefer>
            <family>Noto Serif</family>
            <family>Noto Serif CJK JP</family>
        </prefer>
    </alias>
    <alias>
        <family>sans-serif</family>
        <prefer>
            <family>Noto Sans</family>
            <family>Noto Sans CJK JP</family>
        </prefer>
    </alias>
    <alias>
        <family>monospace</family>
        <prefer>
            <family>Noto Sans Mono CJK JP</family>
        </prefer>
    </alias>
</fontconfig>

あとは適当にrebootしてやればよい。

.NET CoreでUbuntu上でフォント名を指定する場合は、「sans-serif」などとしてあげると上記設定を見てくれる模様。

上記設定だと日本語フォントを優先としていて、
ハングルなどが入力された場合はCJK KRのほうを自動で見に行くなど予期に計らってくれる。賢い。