Emacsできれいな日本語フォントを使いたい【解決編】

多くの人のサポートがあり、ついに解決しました。アドバイスを下さった皆様ありがとうございました。
結局ひげぽんがXやフォント周りの仕組みを一切理解していなかったことが原因ではまっていたというオチでした。
ただ同じようにはまる人はいると思うのでできるだけ詳しく書いておこうと思います。

実現したかったことと経緯

coLinuxubuntuをセットアップして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にいくらフォントをインストールしようともまったく意味がない。
解決策としては

  • 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で何度でも動的に変更を確認できる。(これでいいのかなぁ)

画像比較

結果の画像比較です。多少マシになりました。

フォント変更前

フォント変更後

事前に知っておくべきだったこと

よく分かっていないところ

  • xfsとxfs-xttの関係。xfsで十分?
  • 最高のフォント(おすすめがあったら教えてください。導入方法とか。)

Emacs 辞典 (DESKTOP REFERENCE)
佐藤 竜一
翔泳社
売り上げランキング: 189694