Monday, February 9, 2009

Emacs pretest 23.0.90 / NTEmacs 23 のフォント設定

Emacs 23 のリリースへ向けて pretest が始まっています。

NTEmacs をビルドしてみましたが、表面上は NTEmacs 22 とあまり変わりなく使えそうです。
なにも設定しなくても、だいたいの各国語の表示と日本語入力ができるのもスゴイです。

NTEmacs 23 の作り方は上記の NTEmacs 22 のときと同じでいけました。Cygwin 1.7 や Cygwin 1.5 + gcc 4.3 の環境は作っていないので、どうなるのか分かりませんが…。

心配していたフォントまわりについては、w32fns.c にだいぶ手がはいっているようで ntemacs-font.el (fixed-width-set-fontset) が使えなくなってしまいました。
(2009/03/11 頃以降の NTEmacs については追記へ。)

pretest が始まってからいろいろと試してみたものの、正直、ほんとにきちんと設定できるのか分かりません。
NTEmacs 22.1 のフォント設定 の「3. default のフォントセットを変更する」と「4. フォントセットを予め定義する」の方法で設定を試みたんだけど、さっぱり思い通りにならず…。
こればっかりにかまけているわけにもいかないから、とりあえず現時点ではへこたれて create-fontset-from-fontset-spec を使う方法で逃げました。

フォント選びの好みもあるでしょうけれど、これから NTEmacs 23 を設定するひとのとりあえずの参考にもなるかもしれないので fontset のところを載せておきます。

;;
;; font
;;
(create-fontset-from-fontset-spec
 "-*-Consolas-normal-r-*-*-13-*-*-*-c-*-fontset-u,
  latin-iso8859-1:-*-Courier New-normal-r-*-*-13-*-*-*-c-*-iso8859-1,
  latin-iso8859-2:-*-Courier New-normal-r-*-*-13-*-*-*-c-*-iso8859-2,
  latin-iso8859-3:-*-Courier New-normal-r-*-*-13-*-*-*-c-*-iso8859-3,
  latin-iso8859-4:-*-Courier New-normal-r-*-*-13-*-*-*-c-*-iso8859-4,
  cyrillic-iso8859-5:-*-Courier New-normal-r-*-*-13-*-*-*-c-*-iso8859-5,
  latin-iso8859-9:-*-Courier New-normal-r-*-*-13-*-*-*-c-*-iso8859-9,

  japanese-jisx0208:-*-MS Gothic-normal-*-*-*-13-*-*-*-c-*-jisx0208-sjis,
  katakana-jisx0201:-*-MS Gothic-normal-*-*-*-13-*-*-*-c-*-jisx0208-sjis,
  latin-jisx0201:-*-MS Gothic-normal-*-*-*-13-*-*-*-c-*-jisx0208-sjis,
  japanese-jisx0208-1978:-*-MS Gothic-normal-*-*-*-13-*-*-*-c-*-jisx0208-sjis,
  mule-unicode-0100-24ff:-*-MS Gothic-normal-*-*-*-13-*-*-*-c-*-iso10646-1,
  mule-unicode-2500-33ff:-*-MS Gothic-normal-*-*-*-13-*-*-*-c-*-iso10646-1,

  korean-ksc5601:-*-Malgun Gothic-normal-*-*-*-13-*-*-*-p-*-ksc5601.1987-0,
  chinese-gb2312:-*-Microsoft Yahei-normal-*-*-*-13-*-*-*-p-*-gb2312.1980-0,
  chinese-big5-1:-*-Microsoft JhengHei-normal-*-*-*-13-*-*-*-p-*-big5-0,
  chinese-big5-2:-*-Microsoft JhengHei-normal-*-*-*-13-*-*-*-p-*-big5-0")

(set-fontset-font "fontset-u" 'greek-iso8859-7
                  "-*-Lucida Console-normal-r-*-*-13-*-*-*-c-*-iso8859-7")

(add-to-list 'default-frame-alist '(font . "fontset-u"))
(add-to-list 'initial-frame-alist '(font . "fontset-u"))

但しこれは、「9. 気をつけたい設定」にもあるとおり好ましくない設定らしいです。
とはいえ、font-face は反映されてるので、状況が変わってこれでも構わないのかも?と思わなくもなく…。ヨク ワカリマセンガ。

NTEmacs pretest 22.0.90

Consolas, Malgun Gothic, Yahei, JhenHei の入手は以下から。

期待されている文字セットに合ったフォントできちんと表示されるのはいいんですけど、(view-hello-file) を表示するのにやたら時間がかかるので、ドコかのナニかがたぶんおかしいんだと思います。他の(ぼくの望み通りではない) fontset だと、NTEmacs 22 のときのようにさっと表示されるんですよね…。

しばらくは使いながら設定をいじくっていくようです…。

参考

追記@Thu Mar 12 2009

2009/03/11 頃以降、この記事の設定はうまく効かない。
CJK(中文2種、日本語、ハングル)で好みのフォントをうまく混在させる設定方法が分からないので、とりあえずは以下で。

;;
;; fontset-u0
;; Cosolas + MS Gothic + fallback(fontset-default)
;;
(create-fontset-from-ascii-font
 "-*-Consolas-normal-r-*-*-13-*-*-*-c-*-iso8859-1" nil "u0")
(set-fontset-font "fontset-u0" 'latin-iso8859-1 "Consolas")
(set-fontset-font "fontset-u0" 'latin-iso8859-2 "Consolas")
;;(set-fontset-font "fontset-u0" 'latin-iso8859-3 "Courier New")
(set-fontset-font "fontset-u0" 'latin-iso8859-3 "Consolas")
(set-fontset-font "fontset-u0" 'latin-iso8859-4 "Consolas")
(set-fontset-font "fontset-u0" 'cyrillic-iso8859-5 "Consolas")
(set-fontset-font "fontset-u0" 'greek-iso8859-7 "Consolas")
;;(set-fontset-font "fontset-u0" 'hebrew-iso8859-8 "Courier New")
(set-fontset-font "fontset-u0" 'latin-iso8859-9 "Consolas")

(set-fontset-font "fontset-u0" 'japanese-jisx0208 "MS Gothic" nil 'append)
(set-fontset-font "fontset-u0" 'katakana-jisx0201 "MS Gothic" nil 'append)
(set-fontset-font "fontset-u0" 'japanese-jisx0208-1978 "MS Gothic" nil 'append)
(set-fontset-font "fontset-u0" 'latin-jisx0201 "MS Gothic" nil 'append)
(set-fontset-font "fontset-u0" 'mule-unicode-0100-24ff "MS Gothic" nil 'append)
(set-fontset-font "fontset-u0" 'mule-unicode-2500-33ff "MS Gothic" nil 'append)

キリル文字、ギリシャ文字で Consolas を使わない場合は、コメントアウトしておけば、後続の MS Gothic が効く。

追記@Wed Apr 22 2009

;; 1 dame
(create-fontset-from-ascii-font "Consolas 10" nil "u0")
;; 2 dame
(create-fontset-from-ascii-font "Consolas-10" nil "u0")
;; 3 oke
(create-fontset-from-ascii-font
 "-*-Consolas-normal-r-*-*-13-*-*-*-c-*-iso8859-1" nil "u0")

昨日くらいの修正で、Consolas では 1 や 2 の指定方法では bold + italic になっちゃうので 3 の指定で。フォントによるようです。

追記@Fri Jan 21 23:00:52 2011

No comments:

Post a Comment