gnuplotでCould not find/open font when opening font “フォント名” と言われる時の対処法

   2015/07/13

ターミナル上で表示するならうまくできるのだけれども、png出力しようとすると Could not find/open font when opening font alial とエラーが出てうまく行かなかったのでメモ

元々は set tics font “フォント名,フォントサイズ” でフォントとフォントサイズをしていました。

これができないとフォントサイズを大きくできないので、発表用資料を作っているときは死活問題である。

手順

今回使うフォントのインストールディレクトリを確認する。今回は

/usr/share/fonts/alias/TrueType/Gothic-Medium.ttf

を使用することを想定

実行時に指定する場合

まず端末でフォントがインストールされているディレクトリを指定する

次にgnuplotで

20はフォントサイズなので適宜変える。

デフォルトフォントを指定する場合

 

 

後はいつもどおり

とでもしてやればOK

注意点

http://takeno.iee.niit.ac.jp/~shige/unix/gnuplot/gpinfo-2005.htmlによると

gnuplot のフォント名には 64 文字まで、という暗黙の制限があります (X11 multi byte patch を作ったときに知りました) ので、 ‘/usr/local/…’ のように長いパス名のフォントを指定すると 失敗することがあります (gnuplot が core dump することもあるようです)。 回避策としては環境変数 GDFONTPATH にそのパス名を指定し、 フォント名はファイル名のみを記述することです。 GDFONTPATH は gnuplot の機能ではなく GD ライブラリの機能で、 そちらに長くパスを指定しても問題はありません。 しかし GNUPLOT_DEFAULT_GDFONT は gnuplot の機能なので やはり 64 文字より長いフォント名を書くことはできません。

とのことなのでフォント名が長くなる場合には注意が必要です。

※コメントより:gnuplot-4.2.6 以降は解消されている模様

コメント一覧

  1. 匿名 より:

    gnuplot の gd ドライバでのフォント名に 64 という制限があったのは実はかなり前 (gnuplot-4.2.3 以前) のことで、gnuplot-4.2.6 以降は解消されています。

    この問題が起こる原因は、むしろデフォルトのフォント設定である arial が開けない、ということです。これは、使っている gdlib にもよるのですが (fontconfig 対応かとか)、例えば arial の代わりのデフォルトフォントを環境変数GNUPLOT_DEFAULT_GDFONT に設定すれば解消します。

    しかし、GDFONTPATH を設定して、明示的にフォント名を指定することはもちろん間違っておらず、それはそれで正しい対応だと思います。

    • nvnote より:

      指摘ありがとうございます。

      64文字制限は解消されているのですね、公式リファレンスを見るべきでした。
      フォントの設定も環境変数でデフォルトフォントを設定したほうが遥かに楽ですね。

コメントを残す