Emacsのフォント設定は独特なので設定が難しく感じますが、慣れてしまえば、意外と簡単です。ここでは、もっと簡単に設定できるような設定を紹介します。

フォントの基本設定

最初に基本の設定を説明します。(試される場合は動作環境をご確認ください)

ここではfontsetを使います。もしdefaultフェイスでサイズを指定している場合は削除してください。

まず変数default-frame-alist と initial-frame-alist には次の設定を追加します。

((font . "fontset-standard"))

私はカスマイズ機能で設定しています。独自のfontsetを使う方法でも問題ないと思います。

次に ~/.emacs.d/init.el で次のように設定しています。

(set-fontset-font "fontset-standard"
                     'ascii
                     (font-spec :family "VL Gothic" :size 20) nil 'prepend)  ;; ここでサイズを指定
(set-fontset-font "fontset-standard"
                   'japanese-jisx0213.2004-1
                    (font-spec :family "VL Gothic") nil 'prepend)

ポイントはasciiのほうだけ :size を記述しているところです。

もしjapanese..のほうにもサイズを記述すると、次で紹介する text-scale-mode でフォントサイズの変更しようとしても、変更が反映されないため、このようにしています。

動的にサイズを変更する

文字のサイズを動的に変更するtext-scale-modeを使います。

text-scale-modeは相対的に文字サイズを拡大縮小することができます。

このメリットは

  • インタラクティブに変更できる
  • 特定のバッファだけを変更できる
  • 一時的な変更である

という点です。

一時的に変更するだけなので、バッファを閉じて開き直すと最初の状態に戻ります。

text-scaleは次のショートカットを覚えてしまうのがいいです。 次のどれか一つを覚えさえすればOKです。

C-x C-+ 文字の拡大
C-x C-- 文字の縮小
C-x C-0 標準に戻す

上のどれを一つを実行した後は、+,-,0のキーだけを押すことでインタラクティブに変更できます。

あとは私の場合、org-mode用に

(add-hook 'org-mode-hook
          (lambda ()
            (text-scale-set 1)))

としてorg-mode時だけ、少し大きめで表示するにようしています。

カスマイズ機能を使う

次の方法は、Emacsのカスタマイズ機能を使って、特定のfaceだけ文字サイズを変更します。

defaultフェイスを変更すれば、全体のフォントのサイズが変更できますが、その方法はおすすめしません。最初に説明したfontsetを使って指定するほうが他の機能とのバランスがいいように思います。

手順としては、最初にカーソルを変更したいテキスト上に移動させておいて次を実行します。

M-x customize-face

するとテキストのfaceが自動的に選ばれているはずです。

Customize face (default `org-level-2'): 

問題なければ、そのままエンターを押してカスタマイズの画面へ移動します。

ここで属性:heightの値を修正して保存すれば、表示へ即反映されます。 保存するときはに、 C-x C-c とした場合は一時的に反映が変更されますが、 C-x C-s を実行した場合は、設定がファイルに保存されます。

注意してほしいのは、必要のない属性のチェックはオフにしておいたほうがいいと思います。チェックしたまま保存してしまうと、

M-x customize-theme

でテーマを変更した時に、表示がおかしくなる場合があるからです。

設定ファイルで設定する

これは上述のcustomize-faceと同等ですが、違いは設定ファイル(~/.emacs.d/init.el や ~/.emacs)で設定する点です。

~/.emacs.d/init.elや.emacsに直接次のようなコードを記載します。

(set-face-attribute 'default nil :height 140)

しかし私の方針として、customizeでいじれる項目は、あえてinit.elに書きたくないのでこれはやりませんが、こっちのほうがいいと思う人もいると思います。

オリジナルのfontsetを使う

自分用のfontsetを独自に用意しておいて、必要に応じて切り替える方法です。 まず最初にfontsetを新規で作成しておきます。

(create-fontset-from-fontset-spec
 "-unknown-IPAゴシック-normal-normal-normal-*-25-*-*-*-*-0-fontset-large")

この例では、 フォントサイズを大きめにした fontset-large という新しいfontsetを作成しています。

fontsetを切り替えたい場合は M-x set-frame-font を実行して fontset-large を指定してあげればOKです。

テーマを使う

最後の方法は、テーマを変更する方法です。

テーマを使うと、複数のfaceの設定をまとめて一つのテーマとして管理することができます。最初から標準的なテーマがインストールされているのでそれを変更するだけで全体の色調を簡単に変更できます。

自分独自のテーマをつくることができるので、試してみるといいと思います。

テーマを切り替えるだけなら、

M-x customize-theme

としてください。

自分のテーマをつくる場合は、

M-x customize-create-theme

を使って自分専用のテーマをつくることもできます。

themeはfaceだけでなく変数も一括で管理できますので、さらに高度な使いかたが可能です。

私の場合、背景色がホワイト系とブラック系かを気分によって結構きりかえます。あまり自作のテーマでフォントサイズをいじってしまうとかえって管理がややこしくなりそうなので色の設定だけに当面は使おうと思っています。(気のせいか?)

動作確認

参考までに動作環境を書いておきます。MacとLubuntuどちらも設定内容は同じです。

GNU Emacs 25.0.50.1
Mac OS X 10.10.3 / lubuntu 14.10