[Message Prev][Message Next][Thread Prev][Thread Next][Message Index][Thread Index]
Re: [MD:3578]フォントの設定
- X-ml-count: 3796
- Subject: Re: [MD:3578]フォントの設定
- From: MIYOSHI Masanori <miyoshi@xxxxxxxxxxxxxxxx>
- Date: Tue, 15 Oct 2002 22:19:00 +0900
- User-agent: T-gnus/6.15.8 (based on Oort Gnus v0.08) SEMI/1.14.3 (Ushinoya) LIMIT/1.14.7 (Fujiidera) APEL/10.3 Emacs/21.2 (i386-mingw-nt5.1.2600) MULE/5.0 (SAKAKI)
少し進展がありました。
>>>>> [meadow-develop : No.3578] にて
>>>>> "三好" = MIYOSHI Masanori <miyoshi@xxxxxxxxxxxxxxxx> さんは書きました:
三好> WindowsXP 上の Meadow2 で、フォント設定がうまくいかなくて、ずいぶ
三好> ん悩んでいました。
三好> TrueType フォントの bold を normal と等幅にしたいのですが、等幅に
三好> はなるものの bold にならないのです。
三好> ところが、Windows2000 で、同じ設定を試したところ、うそのように思
三好> い通りに設定できました。
三好> 具体的には、下記の設定です。
三好> これは、OS 依存の話なのでしょうか?
三好> それとも、それ以外の環境依存の話なのでしょうか?
三好> (w32-add-font
三好> "fontset-std"
三好> '((strict-spec
三好> ((:char-spec ascii :height any)
三好> (w32-logfont "Courier New" 8 16 400 0 nil nil nil 0 1 3 49))
snip
色々試した結果、次のことがわかりました。
・OS に関係なく、フォント設定(bold, italic, bold + italic の選択)
がうまくいかない。TrueType でも BDF でもだめ。
・上記で Windows2000 で OK だったと書いてあるが、これは誤り。実際
は、少し古めの Meadow2 では、OK だった。
ちょっとだけソース(mw32font.c)を調べたところ、フォント選択用のハッ
シュテーブルに問題がありそうなことがわかりました。
試しに、mw32_lf_equal() が常に偽を返すように変更したら、思い通り
にフォントを選択できるようになりました。
この関数は、登録しようとする logfont (MW32LogicalFont) が、ハッシュ
テーブルの中に存在するか判定するときに呼ばれる関数です。この判定
が甘くて誤作動しているような気がします。
この関数では、MW32LogicalFont のメンバしか比較の対象としていない
のですが、他に weight や slant の情報も対象とすべきではないでしょ
うか?
;; 上記の情報を pphys 経由で引っ張ってくる?
--
三好 雅則 mailto:miyoshi@xxxxxxxxxxxxxxxx
http://www.boreas.dti.ne.jp/~miyoshi/