[Message Prev][Message Next][Thread Prev][Thread Next][Message Index][Thread Index]

[MD:2020]change-fontset-from-request can't change Japanese-italic-fonts.



ちょっと、体調を崩してしまって、お返事が遅れました。

小関 吉則 (KOSEKI Yoshinori) <kose@xxxxxxxxxxxxxxxxxx> writes:

> change-fontset-from-request を追っかけると、
> 
> (w32-select-logfont-from-required
>  (w32-enum-logfont-from-charset 'japanese-jisx0208)
>  '((italic . t)))
> 
> で、italic が nil ならば"MS ゴシック"がリストアップされま
> すが、t の時は"MS ゴシック"がリストアップされません。
> 
> これは built-in の w32-score-logfont-candidates を呼んでいま
> した。
> 
> これが italic と bold-ltalic の設定がされない原因だと思いま
> す。

うーん、結論から言うと、これは、バグじゃないんです。

(mapcar
 (lambda (x)
   (w32-logfont-italic-p (nth 3 x)))
 (w32-enum-logfont-from-charset 'japanese-jisx0208))

を試してみればお分かりのように、systemは、"MS ゴシック" を
名前とするfontでitalicのものは存在しないって、言ってくるんですね。
だから、通常、italicをtにすると、japanese-jisx0208 charset用の
fontは登録されないというおそろしいことになります。で、通常は
property 0が強制選択されて、めでたく普通の表示になってしまうと
いうわけです。

実際、italicというのは、斜体という意味とはことなっていて、latin
fontにしか普通は適用されないものであるのでしょうから、日本語fontに
それを言うのはお門違いといえるんでしょうね。ですので、requiredでなく、
recommendedに入れるのが正しいといえるんでしょう。

でも、無理やり、italicを指示したlogfontだと、GDIが斜めにして
表示するみたいですけどね。こういうのもsupportするべきですかね?

from himi