OSXWSで提供されるCocoa Emacsのフォント設定

2011年1月16日に修正

Cocoa Emacs のフォント設定の新しい情報は MacEmacs 参照。


以下の設定はこちらをほぼそのまま使わせてもらっています。違う所は、é といったunicode文字の一部を日本語フォントではなくasciiフォントと同じにしたことと、画面の大きさに応じてフォントのサイズが変更されるようになっていることです。

ascii 文字などをMenlo。その他の unicode 文字はヒラギノ丸ゴ。

フォントサイズをショートカットで変更した時に、ヒラギノのフォントサイズを変えるには face-font-rescale-alist を使う必要があると、sakitoさんに教えていただいた。
以下では、Mac の標準的なショートカット(⌘+、⌘ー、⌘0)を定義している。

(when window-system
  (let* ((fontsize (if (< (display-pixel-height) 900) "12" "14")))
    (create-fontset-from-ascii-font 
     (concat "Menlo-" fontsize ":weight=normal:slant=normal") nil "menlomarugo"))
  (set-fontset-font "fontset-menlomarugo"
		    'unicode
		    (font-spec :family "Hiragino Maru Gothic ProN")
		    nil 
		    'append)
  (set-fontset-font "fontset-menlomarugo"
		    '(#x0080 .  #x024F)
		    (font-spec :family "Menlo")
		    nil
		    'prepend)
  (add-to-list 'default-frame-alist '(font . "fontset-menlomarugo"))
  (setq face-font-rescale-alist '((".*Hiragino.*" . 1.2)
				  (".*Menlo.*" . 1.0)))

  (global-set-key [(s ?+)] (lambda () (interactive) (text-scale-increase 1)))
  (global-set-key [(s ?-)] (lambda () (interactive) (text-scale-decrease 1)))
  (global-set-key [(s ?0)] (lambda () (interactive) (text-scale-increase 0))))

追記:MacEmacsJPのメーリングリストに投稿