Emacsできれいな日本語フォントを使いたい【解決編】
多くの人のサポートがあり、ついに解決しました。アドバイスを下さった皆様ありがとうございました。
結局ひげぽんがXやフォント周りの仕組みを一切理解していなかったことが原因ではまっていたというオチでした。
ただ同じようにはまる人はいると思うのでできるだけ詳しく書いておこうと思います。
実現したかったことと経緯
coLinuxのubuntuをセットアップしてcygwinのXWin.exeでデスクトップ環境の利用をはじめた。
その際にemacsの日本語フォントがとても不恰好でどうにかしたいと思った。
そこで以下のようにフォントをインストールした。
apt-get install ttf-sazanami-gothic
apt-get install ipafont
apt-get install xfonts-shinonome
で、.Xdefaultsに使用するフォントを書けばよいらしいということが分かったので
Emacs*font: -shinonome-gothic-medium-r-normal--32-*-iso8859-1
などと書いて見たもののフォントがぜんぜん変わらず、お手上げとなった。
解決編
まず前提として、知っておくべきだったのが「cygwinのXWinを使っているので、フォントはcygwin上のものが使われていた」という事実。
ubuntuにいくらフォントをインストールしようともまったく意味がない。
解決策としては
の2通りが思いついたのですが、後者でうまくいきました。
まずubuntuのフォントがcygwinから参照できるようにフォントサーバー(xfs)をインストールします。
apt-get install xfs
次にxfsの設定ファイルをいじります。
/etc/X11/fs/configを編集してTCPでのListenを有効にしフォントパスを追加する
以下のようにコメントアウトする
no-listen = tcp ↓ #no-listen = tcp
フォントパスを追加する
# paths to search for fonts catalogue = ・・・のところに以下のPATHを追加 /var/lib/defoma/x-ttcidfont-conf.d/dirs/TrueType
設定完了後、再起動
/etc/init.d/xfs restart
次にcygwinです。XWinの起動時に -fp オプションでフォントの場所を指定します。
XWin -query 192.168.99.2 -clipboard -fullscreen -fp tcp/192.168.99.2:7100
これでログインすると今までと違いubuntuにインストールされたフォントが使用されるようになります。
簡単に確認するには
xfontsel
を起動して、fndryの選択肢にインストールしたフォントが見えていればOKです。(xlsfontsでも良い)
で、次に.Xdefaultsの設定に入るのだが再設定後、 xrdb -merge ~/.Xdefaults で再起動して
結果を見ても設定が変わったのかよく分からない。
なので.emacsで
(cond (window-system (set-default-font "-*-fixed-medium-r-normal--12-*-*-*-*-*-*-*") (progn (set-face-font 'default "-shinonome-gothic-medium-r-normal--12-*-*-*-*-*-*-*") (set-face-font 'bold "-shinonome-gothic-bold-r-normal--12-*-*-*-*-*-*-*") (set-face-font 'italic "-shinonome-gothic-medium-i-normal--12-*-*-*-*-*-*-*") (set-face-font 'bold-italic "-shinonome-gothic-bold-i-normal--12-*-*-*-*-*-*-*") )))
で設定してみた。これならeval-regionで何度でも動的に変更を確認できる。(これでいいのかなぁ)
事前に知っておくべきだったこと
- Xにおける「誰がどのフォントを利用しているか」
- Xにおけるフォントの扱い(要熟読:http://wiki.fdiary.net/font/?unixuser200403-2)
よく分かっていないところ
- xfsとxfs-xttの関係。xfsで十分?
- 最高のフォント(おすすめがあったら教えてください。導入方法とか。)