Emacsからアンチエイリアスが有効なフォントを使う

Last-modified: 2007-12-31 (月) 14:44:03
 

Emacsでアンチエイリアス?

Emacsは豊富なキーバインドやカスタマイズ機能が多いため、非常に便利なエディタです。というか、一度使うと離れられません。python-modeや、pycompleteといった補完機能も追加できるのでpythonプログラミングにも非常に便利です。

しかし、GnuEmacsはフォントの表示に、X Windowのコアフォントシステムを利用しているために、フォント設定が非常に面倒かつ、最近のWYSIWYGエディタに比べると画面が汚く見えます。Windowsに移植されたMeadowや、MacOS XのCarbon Emacsなどではアンチエイリアスが有効なフォントを使用できるので、一度それらに慣れてしまうとGnuEmacsには非常に不満が募ります。

というわけで、Emacsからアンチエイリアスなフォントを使う環境を構築しました。

具体的に何を使うのか

アンチエイリアスが有効なフォントを使うために、フォント表示にXftをEmacsから使えるようにします。
XftとはFreeTypeフォントをX Windowで使う比較的新しいフォントシステムで、GnomeやKDEアプリの多くがXftを利用しています。
Xftではフォントの設定が手軽にできるのも利点です。

従来のコアフォントシステムでは、フォント設定にXFLD名で記述しなければなりませんでした。

-apple-osaka-medium-r-normal--16-160-75-75-m-160-jisx0208.1983-sjis

こんな感じです。

しかし、Xftを利用すればもっと簡単にフォントを設定することができます。

.Xresources
   Emacs*font: M+2VM+IPAG cirecle

こんな感じです。

EmacsでXftを使用するには、オプションを有効にしてコンパイルしなければなりません。
よって、Emacsの最新版のソースをDLする必要があります。

Emacsの最新版を手に入れる

Emacsの最新版は23.0.0.1です。
バージョン番号から、Version.23の初期ビルドなのでかなり不安定なバージョンだと思われます。

Emacs WikiのXftGnuEmacsページを参考にソースをDLします。
インストール前に一度このページをざっと目を通したほうがいいでしょう。
ソースをCVSリポジトリからチェックアウトします。
CVSを入れていない場合はapt-getしてください。

$ cvs -z3 -d:pserver:anonymous@cvs.savannah.gnu.org:/sources/emacs co -r emacs-unicode-2 emacs

このemacs-unicode-2というのが最新版の23を表しているようです。
22でもオプションを有効にすることでXftとアンチエイリアスは使えますが、CJKフォントが文字化けするので、23を使うのがいいでしょう。

./configure

ソースをチェックアウトしたディレクトリに移動して、おきまりの./configureを唱えます。
このとき、オプションに

  • '-enable-font-backend
  • --with-gtk
  • --with-xft
    を設定します。
    あと、お好みでインストールパスを指定します。
  • --prefix=$DIR
$ ./configure --with-gtk --enable-font-backend --with-xft --prefix=/usr/local/emacs_xft

しばらくすると、設定が終わります。(5分程度かかりました)
もし、ここでエラーが出る場合は、(エラー内容にもよりますが)コンパイル環境が整っていないことが原因の場合が多いです。

$ sudo apt-get build-dep emacs (またはemacs-current)

あたりを実行して、依存しているライブラリをインストールしてください。

コンパイルする

設定が終わったらコンパイルします。
ここで、makeにboorstrapオプションを付けてコンパイルします。
これは、コンパイルしてできたEmacsを使用して、elispコードをバイトコンパイルするオプションです。
もし、make boorstrapでメモリエラー(Check for pure space overflowとか)が出る場合は、elispのバイトコンパイルを分けてコンパイルするとうまくいくかもしれません。

$ sudo make bootstrap

X21では1時間強かかりました。
メモリ384Mですが、vmstatで監視しているとかなりギリギリのようでした。
コンパイルが終わったらインストールしましょう。

$ sudo make install

prefixオプションで指定したディレクトリにemacsがインストールされます。

Xftを有効にして起動する

Xftを有効にして起動するには、--enable-font-backendを指定します。

$ $INSTALLED-DIR/bin/emacs --enable-font-backend -fn "Monospace-10"

とか、こんな感じです。$INSTALLED-DIRはその名のとおり、Emacsをインストールしたディレクトリです。

また、.Xresourcesに書いても良いようです。

.Xresources
  Emacs*font: Xftフォント名

こんな感じで。
Xftフォント名はfc-listコマンドで調べられます。

しかし、上の起動コマンドでは長いので、aliasを書きます。
今回、$INSTALLED-DIRは/usr/local/emacs_xftなので、

.bashrc
  alias emacs="/usr/local/emacs_xft/bin/emacs --enable-font-backend -fn Monospace-10"

このあとsourceコマンドで設定を読み込みます。

$ source .bashrc

これで、ターミナルから以下のコマンドでアンチエイリアスが有効なEmacsを利用できます。

$ emacs &

参考資料