Graphvizで日本語を扱えるようにする

以下は、cygwin/Win2000環境において、Graphvizで日本語フォントを扱えるように適当にいじってみた結果です。あくまでご参考ということで。ここここの記述を参考にしました。感謝。

  • 下ごしらえ
    • freetypeが必要。gdGraphvizのパッケージに含まれているので別途インストールする必要はなし。
    • freetypeコンパイル時に、日本語フォントを扱えるようにしておく必要がある。ここ参照。
  • Graphvizパッケージを展開して、以下の2つのパッチをあてる(TABをスペースで置き換えているのでご注意)。
 --- graphviz-1.9.orig/gd/Makefile.in	
 +++ graphviz-1.9/gd/Makefile.in
@@ -322,7 +322,7 @@
 CCLD = $(CC)
 LINK = $(LIBTOOL) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
     $(AM_LDFLAGS) $(LDFLAGS) -o $@
 -CFLAGS = @CFLAGS@
 +CFLAGS = @CFLAGS@ -DJISX0208 -DHAVE_ICONV -DHAVE_STDARG_H -DHAVE_ERRNO_H
 DIST_SOURCES = $(libgdconvenience_la_SOURCES) $(fontsizetest_SOURCES) \
     $(fontwheeltest_SOURCES) $(gddemo_SOURCES) $(gdtestft_SOURCES)
 HEADERS = $(include_HEADERS)
 --- graphviz-1.9.orig/dotneato/common/gdgen.c
 +++ graphviz-1.9/dotneato/common/gdgen.c
@@ -446,6 +446,7 @@
         fontlist = "Courier-New Courier_New Courier cour";
     else if (strcasecmp(font,"Courier_New")==0)
         fontlist = "Courier_New Courier-New Courier cour";
 +   fontlist = "mikachan-P";
     return fontlist;
 }
    • フォントはみかちゃんフォントのプロポーショナルきめうちになってます。お手持ちの適当なフォントに書き換えてください。
    • ここで指定したフォントは、gdがデフォルトで探す/usr/share/fonts/truetype/以下に置いておきます。他の場所に置いてあるフォントを使いたい場合、GDFONTPATH環境変数で指定してあげてください。gdがフォントを認識しているかどうかは、graphviz-1.9/gd/gdtestftで確認できます。
  • makeしてmake install。
    • Xがなかったりなんだりでエラーが大量に出ますが、今回はdotだけ使えればよいのですべて無視。気になる方はこれ(圧縮ファイル)を参考になんとかしてください。

以上です。
これで、とりあえずpngjpegで日本語が表示されるのは確認できました。psには未対応ですが、毛深そうなので無視です。