15
10

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Emacs on OS Xのフォント設定

Posted at

はじめに

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-version24以上でかつwindow-systemnilでない場合を指定。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文字集合の関係概念図
  • 15〜19行目で上記日本語文字セットに含まれるが、欧文(半角)として表示したい文字を指定。

    • ラテン文字やギリシア文字など。
  • デフォルトでは半角:全角 = 1:2とならないため、最終行のface-font-rescale-alistで日本語フォントは1.2倍で表示するよう指定。

結果

Emacsの通常使用において期待する結果を得られた。

sample.png

注意点

  • ヒラギノ角ゴ ProNに含まれないグリフは正しく表示されない(推測)。
  • 「Apple カラー絵文字」を使って絵文字表示対応を試みたが、Emacsがクラッシュするため未実施。
  1. 文字コード講座 第1回―文字コードの歴史(Unicode前史)

15
10
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
15
10

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?