Emacs.app (Mac OS X ネイティブ Emacs 23)

Mac OS X の Emacs.app Version 9.0-rc2 をインストールした。Mac 用の Emacs も Cocoa 対応になり,Emacs Version 23 になっている。

私は Mac OS X では通常,X11-Emacs を利用している。BDF フォントが使えて多言語環境としては最適であると思う。一方 Mac OS X のアプリケーションとのデータのやり取りでは Mac OS X ネイティブの Emacs が優れている。

Emacs 初期設定ファイル .emacs に以下を追加して,X11-Emacs と Emacs.app で使い分けるようにした。.emacs-23.el に Emacs.app 用の定義を記述しておく。

(if (string-match  "^23" emacs-version)
    ;; For Emacs.app 
    (load "~/.emacs-23.el")
  (if (string-match "^22" emacs-version)
      ;; For X11-Emacs 22.1 
      (load "~/.emacs-22.el")
    )
  )

なんといっても,Emacs.app は仮名漢字変換として「ことえり」が使えるところが嬉しい。初期状態では日本語が表示できなかったが,Option メニューからフォント設定を「Monaco - Regular - 12pt」に変更したら表示できるようになった。この場合も,通常の日本語フォントにある「・」(中黒) や「▼」などの一部記号がいわゆる豆腐になってしまうのが難点である。多言語入力・表示に拘らないならフォントを Mac OS X 標準日本語フォント「ヒラギノ角ゴシック」に設定することをお勧めする。

Monaco フォントではロシア語も古典ギリシア語もタイ語もヴェトナム語も表示できる。教会スラヴ語,古スラヴ文字はダメだったけれど,実用において十分である。教会スラヴ語,古スラヴ語をきちんと表示したい場合は,「Optima - Regular - 12pt」を選択すればよい。

多国語インプットメソッドについては通常の Emacs と同じである。私の書いたスラヴ語/古典ギリシア語インプットメソッドも OK であった。

旧仮名遣い・旧字変換支援 misima (SOAP Web Service) も,Utf82TeX 多言語文字 TeX コンバーターも問題なく動作した。ただし,/usr/local/bin にある外部コマンドを Emacs.app から呼び出すには,標準設定ではダメで,Emacs 設定ファイル (上記例に即して言えば .emacs-23.el) に対し,以下のようにコマンドパスを追加しておかなければならない。

;; コマンドパスの追加
(setq exec-path (cons "/usr/local/bin" exec-path))
(setenv "PATH"
        (concat '"/usr/local/bin:" (getenv "PATH")))

misima, Utf82TeX を Emacs.app から使うには,次のような設定をしておく。それぞれの Emacs Lisp を Emacs が参照できるロードパスに格納しておくのはもちろんである。

;;
;; UTF-8 多言語 -- TeX コード変換支援 Utf82TeX
;; - utf82tex コマンドの絶対パスを utf82tex-path に設定する。
;;
(require 'utf82tex)
(setq utf82tex-path "/usr/local/bin/utf82tex")
(setq utf82tex-rc   "/usr/local/etc/utf82tex/utf82texrc")
(setq utf82tex-out-encoding 'utf-8)
 
;;
;; 旧仮名遣い・旧字変換支援 misima SOAP Web Service 版
;; - misima.jar を CLASSPATH に設定しておく。
;; - misima.sh の絶対パスを misimasoap=path に設定する。
;;
(require 'misimasoap)
(setq misimasoap-path "/Users/isao/bin/misima.sh")
 
;;
;; 旧仮名遣い・旧字変換支援 misima ローカル版 (現在非公開)
;; - misima コマンドの絶対パスを misima-path に設定する。
;;
(require 'misima)
(setq misima-path "/usr/local/bin/misima")
(setq misima-rc "/Users/isao/.misimarc")
 

Safari との間でコピー&ペーストもできるし,これからはこちらがメインとなりそうである。以下のスナップショットは,多言語混在文書 (日本語,フランス語,ドイツ語,ロシア語,古典ギリシア語,韓国語,タイ語) の表示例である。

emacsapp23.png

※ 2009/09/07 付記
その後,Mew 作者で有名な山本氏のブログで Emacs-23 のフォント設定を知り,日本語をヒラギノ丸ゴシック,キリル文字を DejaVu Sans Mono に設定してみた。これで「・」(中黒) や「▼」などの一部記号がいわゆる豆腐になる問題が解消した。キリル及びギリシア文字は ISO 国際標準にあるものは英字と同じ DejaVu を,Unicode にしかない古スラヴ文字や古典ギリシア語複式アクセントのギリシア文字は Lucida Grande で表示する設定である。

;; フォントフェースの設定
;; see http://d.hatena.ne.jp/kazu-yamamoto/20090122/1232589385
;;; デフォルトフォント: DejaVu Sans Mono
(set-face-attribute 'default nil
                    :family "DejaVu Sans Mono"
                    :height 120)
;;; 日本語フォント: ヒラギノ丸ゴシック 
(set-fontset-font
 (frame-parameter nil 'font)
 'japanese-jisx0208
 '("Hiragino Maru Gothic Pro" . "iso10646-1"))
(set-fontset-font
 (frame-parameter nil 'font)
 'katakana-jisx0201
 '("Hiragino Maru Gothic Pro" . "iso10646-1"))
(set-fontset-font
 (frame-parameter nil 'font)
 'japanese-jisx0212
 '("Hiragino Maru Gothic Pro" . "iso10646-1"))
;;; Unicode フォント: Lucida Grande
(set-fontset-font
 (frame-parameter nil 'font)
 'mule-unicode-0100-24ff
 '("Lucida Grande" . "iso10646-1"))
;;; キリル,ギリシア文字 
;;; - iso に定義されているものは DejaVu Sans Mono で表示
;;; - そうでない Unicode 独自のものは Lucida Grande で表示 
;;; - mule-unicode-0100-24ff より後に定義すること
;;; キリル文字フォント: DejaVu Sans Mono
(set-fontset-font
 (frame-parameter nil 'font)
 'cyrillic-iso8859-5
 '("DejaVu Sans Mono" . "iso10646-1"))
;;; ギリシア文字フォント: DejaVu Sans Mono
(set-fontset-font
 (frame-parameter nil 'font)
 'greek-iso8859-7
 '("DejaVu Sans Mono" . "iso10646-1"))

なお,set-fontset-font 関数,set-face-attribute 関数で指定するフォントファミリー名は,fc-list コマンドで表示される一覧から選択するとよい。fc-list コマンドは fontconfig パッケージをインストールすると利用できる。MacPorts などで導入しておく。

フォント・ファイル名の次のカラム,":" の前まで(複数ある場合はカンマで区切られたもののいずれか)がファミリー名として使用できる。たとえば,ヒラギノ丸ゴシック ProN otf フォントを使いたいのなら,その fc-list エントリ /Library/Fonts/ヒラギノ丸ゴ ProN W4.otf: ヒラギノ丸ゴ ProN,Hiragino Maru Gothic ProN,Hiragino Maru Gothic ProN W4,ヒラギノ丸ゴ ProN W4:style=W4,Regular から,Hiragino Maru Gothic ProN を指定すればよい。

上記フォント設定で得られる多言語表示例のスナップショットを以下に示す。

emacs-app-fonts.png