[ruby-list:46806] Re: ruby/tk のアンチエイリアス表示

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

[ruby-list:46806] Re: ruby/tk のアンチエイリアス表示

Hidetoshi NAGAI
永井@知能.九工大です.

From: haruichi yabuki <[hidden email]>
Subject: [ruby-list:46804] ruby/tk のアンチエイリアス表示
Date: Sat, 23 Jan 2010 21:09:38 +0900
Message-ID: <[hidden email]>

> 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 かもしれません.
--
永井 秀利  ([hidden email])
九州工業大学 大学院情報工学研究院 知能情報工学研究系 知能情報メディア部門

Reply | Threaded
Open this post in threaded view
|

[ruby-list:46811] Re: ruby/tk のアンチエイリアス表示

haruichi yabuki
永井 様、

迅速に対応していただき、有難うございました。

>...
>確実にするには,Tcl/Tk8.5 を使うように tcltklib.so を
>作りなおす必要があると考えた方がいいでしょう.

tcl8.5.8, tk8.5.8, ruby-1.8.7-p.249
3つとも無事に コンパイル・インストール 出来ました。
antialiased fonts の表示が出来ました。

>configure オプションについては,
>ruby のソースの ext/tk/README.tcltklib を参照ください
ruby を今まで自分でコンパイルしたことが無かったものですから、
丁寧な README がちゃんと用意されていたことを 知りませんでした。
最後の方の記述 '--enable-pthread' にも助けられました。
はじめ 以下のメッセージが出たので、
 /usr/local/lib/ruby/1.8/i686-linux/tcltklib.so: warning: Inconsistency.
 Loaded Tcl/Tk libraries are enabled nativethread-support.
 But `tcltklib' is not. The inconsistency causes SEGV or other
 troubles frequently.
再度 '--enable-pthread' を付けて コンパイルし直しました。
これで、warning が出なくなりました。

丁寧なご指導に感謝致します。
--
h.y.