はじめに
OS XのEmacsで下記の通り動作するようにinit.el
にフォント設定を追加する。
- 欧文フォントはXcodeやターミナルでデフォルトのMenloを使用する。
- 日本語フォントはヒラギノ角ゴ ProNを使用する(JIS X 0213:2004対応)。
- 一般的な等幅フォント(半角:全角 = 1:2)の設定とする。
動作確認環境
- OS X 10.11.5
- X11 Emacs 24.5.1(Cocoa Emacsでは未確認)
設定内容
init.el
に追加したフォント設定は以下の通り。
(when (and (>= emacs-major-version 24) (not (null window-system)))
(let* ((font-family "Menlo")
(font-size 9)
(font-height (* font-size 10))
(jp-font-family "ヒラギノ角ゴ ProN"))
(set-face-attribute 'default nil :family font-family :height font-height)
(let ((name (frame-parameter nil 'font))
(jp-font-spec (font-spec :family jp-font-family))
(jp-characters '(katakana-jisx0201
cp932-2-byte
japanese-jisx0212
japanese-jisx0213-2
japanese-jisx0213.2004-1))
(font-spec (font-spec :family font-family))
(characters '((?\u00A0 . ?\u00FF) ; Latin-1
(?\u0100 . ?\u017F) ; Latin Extended-A
(?\u0180 . ?\u024F) ; Latin Extended-B
(?\u0250 . ?\u02AF) ; IPA Extensions
(?\u0370 . ?\u03FF)))) ; Greek and Coptic
(dolist (jp-character jp-characters)
(set-fontset-font name jp-character jp-font-spec))
(dolist (character characters)
(set-fontset-font name character font-spec))
(add-to-list 'face-font-rescale-alist (cons jp-font-family 1.2)))))
内容の説明
-
1行目の
when
マクロでemacs-major-version
が24
以上でかつwindow-system
がnil
でない場合を指定。system-version
の制約は特になし。 -
2〜5行目で欧文フォントと日本語フォントを指定。
-
ファミリーはemacs上で確認
(dolist (font-family (font-family-list)) (print font-family))
-
-
6行目の
set-face-attribute
でデフォルトフレームのフェイスの属性(フォントファミリーと高さ)を指定。 -
9〜13行目で今回対象とする日本語文字セットを指定。
- JIS X 0201、JIS X 0213とJIS X 0212の未重複部を網羅するように指定。1
- JIS X 0201、JIS X 0213とJIS X 0212の未重複部を網羅するように指定。1
-
15〜19行目で上記日本語文字セットに含まれるが、欧文(半角)として表示したい文字を指定。
- ラテン文字やギリシア文字など。
-
デフォルトでは半角:全角 = 1:2とならないため、最終行の
face-font-rescale-alist
で日本語フォントは1.2倍で表示するよう指定。
結果
Emacsの通常使用において期待する結果を得られた。
注意点
- ヒラギノ角ゴ ProNに含まれないグリフは正しく表示されない(推測)。
- 「Apple カラー絵文字」を使って絵文字表示対応を試みたが、Emacsがクラッシュするため未実施。