永井@知能.九工大です. From: haruichi yabuki <hyabuki / zb.ztv.ne.jp> Subject: [ruby-list:46804] ruby/tk のアンチエイリアス表示 Date: Sat, 23 Jan 2010 21:09:38 +0900 Message-ID: <20100123.210958.251075726.hyabuki / zb.ztv.ne.jp> > Ruby/Tkを勉強しています。 > ubuntu9.10 を使っています。 > libtcltk-ruby1.8 および 1.9 のそれぞれに応じた設定で実験しましたが、 > --- apt-get でinstallしています:自分でコンパイルしていません --- > いずれの場合も フォントがギザギザで アンチエリアス・フォント の表示 > が出来ません。 > tk8.5 と 一緒に tk8.4 も入っています > (tk8.4 を削除しようとすると、libtcltk-ruby1.8 も1.9 も 一緒に削除 > と言うメッセージが出ますので)。 > tcltk では アンチエリアス・フォント の表示が出来ています。 Linux というか X 版の Tcl/Tk でアンチエイリアスが機能するのは, 8.5 以降のはずです. Tcl/Tk8.4 を削除しようとすると libtcltk-ruby まで削除しようとすることからも, 現在 install されている ruby の tcltklib.so は Tcl/Tk8.4 のライブラリを使用するようになっていると思います. もし stub が使えるなら自動的により新しいバージョンを使うはずですので, ライブラリパスでうまく見付けることができていないか, stub 非対応になっているかのいずれかでしょう. 確実にするには,Tcl/Tk8.5 を使うように tcltklib.so を 作りなおす必要があると考えた方がいいでしょう. # 本来であれば,stub を利用すれば 8.4 用に make された tcltklib.so で # 8.5 でも使えるはずなのですが,どういうわけか 8.4 と 8.5 とでは # 相性が悪くてうまく機能しないケースがあるようです. # そのケースでは 8.5 と 8.6 との間もダメですが, # 8.4 と 8.6 の間では機能したりします. > 以下のプログラムを実行しました。 > 対処方法をお教え頂けないでしょうか。 > > ソースからコンパイルしょうと思いますが、どのようなオプションを付けて > 実行すれば良いのか、どのソースファイルを用意すれば良いのか > 分かりません。ネット上 および 書籍 で探し回りましたが、 > 古い情報しかありませんでした。 configure オプションについては, ruby のソースの ext/tk/README.tcltklib を参照ください. どのような環境になっているのかわかりませんので, Tcl/Tk8.5 のヘッダやライブラリを適切に見付けるために どこまで指定してやる必要があるかはわかりませんが, Tcl/Tk8.4 のヘッダやライブラリとの曖昧さが出ないように 指定してあげれば大丈夫だと思います. 例えば 8.4 が /usr/lib に,8.5 が /usr/local/lib に インストールされているようなら, --with-tcltkversion=8.5 --with-tcl-dir=/usr/local --with-tk-dir=/usr/local くらいの指定で OK かもしれません. -- 永井 秀利 (nagai / ai.kyutech.ac.jp) 九州工業大学 大学院情報工学研究院 知能情報工学研究系 知能情報メディア部門