2009/09/11

2009-09-11:Emacs23 font setting

Emacs23 でのフォント設定でいろいろ格闘した。せっかくなのでメモ。
前提としての私の環境を書くと、Vine 5 を WindowsXP 上の VMwareServer 内で動かし、Windows 上で Xming を起動して、Vine の中の Emacs23 を X 飛ばしで利用している。xfs は Vine の中のを参照する設定。

最初は Vine のデフォルト設定で VL Gothic を使っていたのだが、なぜかこのフォントは半角英数が等幅フォントにならない不具合があった。

画面キャプチャは wanderlust のメールのスレッド一覧画面。縦棒がずれてしまっていることがお分かりいただけると思う。
しばらくは我慢して使っていたのだけど、やっぱり桁が揃ってない画面はいらいらするので、フォント設定の格闘を始めた次第。

ネットでフォントを探して以下のものを用意し、いくつか組み合わせて試してみた。

  • Inconsolata
  • M+ と IPA フォントの混在
  • DejaVu Sans Mono

Vine の場合、/usr/share/fonts/ 以下に otf や ttf や ttc といったファイルを置いて、

xset fp rehash

とすることで、フォントが使えるようになる。カンタンらくちん。

フォントを組み合わせて表示を試すものの、いいものが見つかるまでは時間がかかった。
そもそも等幅にならないものもあれば、等幅になっても半角英数と全角(?)日本語との横幅比が1:2になってなかったり、無理やり1:2にさせようとするとバランスがいまいちすぎたり、、、と。
結局、1時間以上の格闘の結果、「DejaVu Sans Mono + MS Gothic」が今日のところの妥協点になった。
以下、スクリーンショット。

.emacs.el は以下のような設定に。

(setq vine-default-faces nil)

(set-frame-font "DejaVu Sans Mono 9")
(set-fontset-font (frame-parameter nil 'font)
		  'japanese-jisx0208
		  (font-spec :family "MS Gothic" :size 14))

半角英数の DejaVu を9ポイント、日本語フォントを14ポイント指定でちょうど折り合いがついた。

ちなみに、Vine ではユーザーが .emacs-hoge を用意しなくても最低限の環境になるように、vine-default というのが用意されている。
実はこいつ、ユーザーの .emacs-hoge の後に評価されるのだ。
知らないと、起動時に自分の設定がなぜか効かないという現象にしか見えない。残念だが、おせっかいが迷惑になっているパターン。
そこで、上では vine-default-faces を nil にして、face 関係のデフォルト設定を抑制している。

参考:http://trac.vinelinux.org/wiki/Emacs

あと、どうも C-x 5 2 でウィンドウを増やしたときに、フォント設定が受け継がれないのか、でかいフォントが出てしまうようだ。
これは .Xresources に

Emacs*font: DejaVu Sans Mono-9

と書くことでうまくいった。