Takashi Hiromatsu
matsu****@ca2*****
2005年 11月 13日 (日) 17:50:04 JST
本庄さん、 解説有難うございます。英語MLで、議論が有るのは知ってましたが、この所、本業 に手を取られて、メール追えてませんでした。 > 英語 ML のやりとり中に fixed-width-fontset について、ちょっとした問題 > を発見したので報告します。 > 10pt 以下のフォントを使用する場合に、set-default-font を指定しないで > default-frame-alist で指定するか、initial-frame-alist で 10pt より大き > いフォントを指定し、default-frame-alist で 10pt より小さいフォントを指 > 定した場合、bold face に幅(サイズ?)の異なるフォントが使用されるよう > です。 > > 以下に設定例と結果を記載します。 > これは正常に表示されます。 > > (set-default-font "-*-*-medium-r-normal--10-*-*-*-*-*-fontset-hiraginomin") > (add-to-list > 'default-frame-alist > '(font . "-*-*-medium-r-normal--10-*-*-*-*-*-fontset-hiraginokaku")) set-default-font は、set-frame-font の alias で、名前の default に反して、 単純に、カレントフレームの、font を変更するだけなんです。なので、.emacs に 書いた場合は、initial-frame の、font を変更します。 又、この時、fixed-fontset が、face-font-rescale-alist を、適切な値に設定し ます。 default-frame-alist のみに設定した場合、initial frame の、 face-font-rescale-alist は設定されません。これは、2番目以降の、Frame に有効 です。 ということで、以下の現象は、仕様的には正しい動作です。 > これは bold face の幅がおかしくなります。 > > (set-default-font "-*-*-medium-r-normal--12-*-*-*-*-*-fontset-hiraginomin") > (add-to-list > 'default-frame-alist > '(font . "-*-*-medium-r-normal--10-*-*-*-*-*-fontset-hiraginokaku")) 上に書いたように、set-default-font で、12point用の、 face-font-rescale-alistが設定されますが、その後で、default-frame-alist で、 10point に書き換えられたために、適切な幅になりません。 > これも bold face の幅がおかしくなります。 > > (set-default-font "-*-*-medium-r-normal--10-*-*-*-*-*-fontset-hiraginomin") > (add-to-list > 'initial-frame-alist > '(font . "-*-*-medium-r-normal--12-*-*-*-*-*-fontset-hiraginokaku")) > (add-to-list > 'default-frame-alist > '(font . "-*-*-medium-r-normal--10-*-*-*-*-*-fontset-hiraginokaku")) これは、上と逆で、initial-frame に対して、10point 用の face-font-rescale-alist が設定された後で、initial-frame のfont が変更されて います。 > これは新しいフレームを開くまで、最初のフレームの bold face の幅がおか > しくなります。 > > (add-to-list > 'initial-frame-alist > '(font . "-*-*-medium-r-normal--10-*-*-*-*-*-fontset-hiraginokaku")) > (add-to-list > 'default-frame-alist > '(font . "-*-*-medium-r-normal--10-*-*-*-*-*-fontset-hiraginokaku")) initial-frame に対して、 (set-default-font "-*-*-medium-r-normal--10-*-*-*-*-*-fontset-hiraginomin") が、必要です。 もし、initial-frame と、二番目以降の frame で font を変えたい場合は、次に様 にする必要が有る筈です。 ;; 12 point on the initial-frame (set-default-font "-*-*-medium-r-normal--12-*-*-*-*-*-fontset-hiraginomin") (add-to-list 'initial-frame-alist '(font . "-*-*-medium-r-normal--12-*-*-*-*-*-fontset-hiraginokaku")) ;; 10 point on other frames (add-to-list 'default-frame-alist '(font . "-*-*-medium-r-normal--10-*-*-*-*-*-fontset-hiraginokaku")) 現状では、これを完全に改善するには、C source code を弄らないと駄目なので、 手が止まってます。 その内、もう少し、ましな動作にしようと思ってますので、お待ち下さい。 又、銭谷さんの、パッケージで、2番目のフレームを作るときに、エラーが出る件に 関しては、原因が判りましたので、時間の有るときに手を入れます。 ;; site-start.el の中で fixed-fontset を呼ぶと、initial-frame のポイン ;; タの取得に失敗するようですので、別の手を考えます。 廣松