f

2016-07-02

How to install fonts on Linux

Linuxでフォントをインストールする方法はいくつかある。手動でインストールするにあたっては,Linuxでのフォント管理のライブラリであるFontconfigの設定ファイルについても知っておく必要がある。この記事では以下の順番で内容を記していく。

  1. パッケージマネージャーを利用
  2. フォントビューアーでインストール
  3. 手動でインストール
  4. Fontconfigの設定
  5. まとめ

動作はUbuntu 16.04で確認した。他のディストリビューションでも大きな違いはないと思われる。

結論として,ユーザーが手動でインストールする場合,以下の場所にフォントファイルを配置すればよい。

システム全体
/usr/local/share/fonts/
ユーザー専用
~/.local/share/fonts/

パッケージマネージャーを利用

多くの場合,パッケージマネージャーでコマンドなどのパッケージをインストールするのと同じようにフォントもインストールできる。例えば,Ubuntu 16.04ではaptコマンドでfontと検索するとフォントがヒットする。

apt search font

フォント名がわかっていれば,フォント名で検索してもよい。

apt search takao
Sorting... Done
Full Text Search... Done
fonts-takao/xenial,xenial 003.02.01-9ubuntu3 all
  Japanese TrueType font set, Takao Fonts

fonts-takao-gothic/xenial,xenial,now 003.02.01-9ubuntu3 all [installed]
  Japanese TrueType font set, Takao Gothic Fonts

fonts-takao-mincho/xenial,xenial,now 003.02.01-9ubuntu3 all [installed]
  Japanese TrueType font set, Takao Mincho Fonts

fonts-takao-pgothic/xenial,xenial,now 003.02.01-9ubuntu3 all [installed]
  Japanese TrueType font set, Takao P Gothic Fonts

パッケージ名がわかれば,インストールできる。

sudo apt install fonts-takao

フォントビューアーでインストール

パッケージマネージャーで提供されていないフォントや,最新のフォントをインストールする場合は,自分でフォントファイルからインストールする。自分でインストールする場合には,以下の2通りの方法がある。

  1. フォントビューアーを利用。
  2. 手動でフォントを配置。

ここでは,1. のフォントビューアーでインストールする方法を記す。

デスクトップLinuxではgnome-font-viewerコマンド(Font Viewer)が使える。Ubuntu 16.04ではDashからfont viewerで検索すればヒットする。

フォントビューアーでフォントをインストールする手順を示す。サンプルとして,あおぞら明朝フォントを利用する。

  1. gnome-font-viewerコマンドにフォントファイルを指定して実行。または,ファイルマネージャー(Nautilusなど)からフォントファイルを右クリック>[Open With]>[Font Viewer]から起動。
    gnome-font-viewer AozoraMincho-bold.ttf

  2. ウィンドウの右上の[install]をクリックするとインストールされる。

  3. フォントは$XDG_DATA_HOME変数が設定されていれば,$XDG_DATA_HOME/fontsに,設定されていなければ,~/.local/share/fonts/にインストールされる。

フォントビューアーを使ったフォントのインストールでは以下2点の問題がある。

  • デスクトップの無い,サーバーでフォントをインストールできない。
  • システム全体にフォントをインストールできない。

この問題を解決するには,自分で手動でフォントをインストールする必要がある。

手動でインストール

手動でインストールする際には,用途に応じて以下のどちらかのディレクトリにフォントファイルを配置すればよい。

システム全体
/usr/local/share/fonts/
ユーザー専用
~/.local/share/fonts/

fontsディレクトリの下にさらにフォント名のディレクトリを作っても問題ない。

mkdir ~/.local/share/fonts/Aozora/
cp Aozora*.ttf ~/.local/share/fonts/Aozora/

基本的にはこれだけでフォントが有効になる。万が一フォントが選べなければ,以下のコマンドでキャッシュを更新する。

fc-cache -f

Fontconfigの設定

手動でインストールするにあたって,Linuxでのフォント管理の仕組みについて調べたので記しておく。

Linuxでのフォントの管理には,Fontconfigというライブラリーを使っている。Fontconfigのマニュアルは以下のコマンドで確認できる。

man font-conf

fontconfigとセットでインストールされるコマンドのマニュアルの末尾(例:man fc-list)を見るとわかる通り,/etc/share/doc/fontconfig/fontconfig-user.htmlにもマニュアルが配置されている。また,最新のマニュアルを公式サイトでも確認できる。

Fontconfigの設定ファイル

マニュアルにかかれている通り,fontconfigの設定ファイルは以下となっている。

   /etc/fonts/fonts.conf
   /etc/fonts/fonts.dtd
   /etc/fonts/conf.d
   $XDG_CONFIG_HOME/fontconfig/conf.d
   $XDG_CONFIG_HOME/fontconfig/fonts.conf
   ~/.fonts.conf.d
   ~/.fonts.conf

設定ファイルがたくさんあるが,注目すべきは/etc/fonts/fonts.confだけだ。$XDG_CONFIG_HOME~から始まるファイルは存在しないことがあるからだ。

  • 最後の~/.fonts.conf.d~/.fonts.confは廃止予定となっている([Files]セクション参照)。
  • 真ん中の$XDG_CONFIG_HOMEから始まる設定ファイルは存在しないことがある。XDG_CONFIG_HOME変数は指定されていなければ,$HOME/.configを指す(参照:XDG Base Directory Specification)。Ubuntu 16.04では存在しなかった。
フォントのインストールディレクトリ

/etc/fonts/fonts.confを確認するとフォントのインストール場所が書かれている。

<!-- Font directory list -->

 <dir>/usr/share/fonts</dir>
 <dir>/usr/local/share/fonts</dir>
 <dir prefix="xdg">fonts</dir>
 <!-- the following element will be removed in the future -->
 <dir>~/.fonts</dir>

マニュアルの[Configuration File Format]セクションを確認するとわかるが,<dir prefix="xdg">と書かれている要素は,環境変数XDG_DATA_HOMEで指定されているディレクトリを指す。そして,XDG_DATA_HOME環境変数は基本的には空となっており,空の場合は$HOME/.local/shareを指す。(参照:XDG Base Directory Specification)。

これらを考慮すると,Linuxでのフォントのインストール場所と役割は以下となる。

Linuxでのフォントインストール場所
ディレクトリ説明
/usr/share/fontsシステム全体フォント(パッケージマネージャー用)。
/usr/local/share/fontsシステム全体フォント(ユーザーカスタマイズ)。
$XDG_DATA_HOME/fonts(~/.local/share/fonts)ユーザー用フォント。
~/.fontsユーザー用フォント。廃止予定。

ここで,注意したいのは~/.fontsディレクトリだ。ネット上での記事をみると,未だに~/.fontsにフォントをインストールしているものがたくさんでてくる。しかし,~/.fontsは廃止予定なので,このディレクトリーにフォントを配置すべきではない。

Fontconfigの付属コマンド

fontconfig には、フォント設定を管理する8つのコマンドラインユーティリティが付属している:

  • fc-list: fontconfigが把握しているすべてのフォントまたはパターンにマッチするすべてのフォントの一覧を表示する。
  • fc-match: fontconfigのマッチングルールに従ってフォントパターン(デフォルトで空のパターン)のマッチングを行い、利用可能なフォントのうち最も適切なものを見つける。
  • fc-cache: 指定されたディレクトリまたは設定ファイルで指定されたすべてのディレクトリから、FreeTypeが扱えるすべて
  • のフォントのキャッシュを作成する。
  • fc-cat: キャッシュファイルまたはフォントディレクトリからフォント情報を読み込み、それをASCII 形式で出力する。
  • fc-query: フォントファイルについて問い合わせ、結果を表示する。
  • fc-scan: フォントファイルまたはディレクトリをスキャンし、結果を表示する。
  • fc-pattern: 指定したパターンに最も近いフォントを表示する。
  • fc-validate: フォントファイルを検証し、結果を表示する。

Fontconfig - Wikipedia

上記のコマンドでよく使うのは,fc-listfc-cacheだ。fc-listで現在インストールされているフォントを確認できる。フォントをインストールして,認識されなかったらfc-cacheコマンドでキャッシュを更新する。

まとめ

Linuxでのフォントのインストール方法をまとめた。このまとめで,Linuxでのフォントインストール方法は完璧だろう。Ubuntu 16.04で動作を確認したが,CentOSやDebianなど他のディストリビューションでも基本は同じだろう。

ネット上の記事では~/.fontsにインストールしているものが多く,~/.local/share/fontsとどちらにインストールしたらいいかわからなかった。また,~/.local/share/fontsが設定ファイルのどこで指定されているのか,根拠を見つけるのに時間がかかってしまった。結局のところ,設定ファイル/etc/fonts/fonts/confに全て情報が書かれていた。一時情報に当たることはやはり重要だ。

参考:UbuntuTips/Desktop/InstallFont - Ubuntu Japanese Wiki

0 件のコメント:

コメントを投稿