Skip to content

Instantly share code, notes, and snippets.

@MiyamonY
Last active November 24, 2019 13:12
Show Gist options
  • Save MiyamonY/cd72b994b4a63de296761acca7a6f5de to your computer and use it in GitHub Desktop.
Save MiyamonY/cd72b994b4a63de296761acca7a6f5de to your computer and use it in GitHub Desktop.
emacs font setting

font for emacs

現在のフォント

ひらがな

character: れ (displayed as れ) (codepoint 12428, #o30214, #x308c) charset: unicode (Unicode (ISO10646)) code point in charset: 0x308C script: kana syntax: w which means: word category: .:Base, H:2-byte Hiragana, L:Left-to-right (strong), c:Chinese, h:Korean, j:Japanese, |:line breakable to input: type “C-x 8 RET 308c” or “C-x 8 RET HIRAGANA LETTER RE” display: by this font (glyph code) xft:-PfEd-Ricty Diminished Discord-normal-normal-normal-*-16-*-*-*-*-0-iso10646-1 (#x8A8)

漢字

character: 評 (displayed as 評) (codepoint 35413, #o105125, #x8a55 charset: unicode (Unicode (ISO10646)) code point in charset: 0x8A55 script: han syntax: w which means: word category: .:Base, C:2-byte han, L:Left-to-right (strong), c:Chinese, h:Korean, j:Japanese, |:line breakable to input: type “C-x 8 RET 8a55” display: by this font (glyph code) xft:-PfEd-KaiGen Gothic JP-normal-normal-normal-*-16-*-*-*-*-0-iso10646-1 (#x5FC8)

問題点

ひらがながRicty Diminished Discord,漢字がKaigen Gothic JPでひらがなと漢字のプロポーションがあっていない.

フォントファミリーの確認

使用可能なフォントファミリーが確認できる.

(font-family-list)

また,フォントのxlfdは x-list-fonts にて確認できる.

(x-list-fonts "ricty")

bold, normalなどが使用できる.

キャラクターセット

文字集合またはキャラクターセットが取得できる.emacsが保持するjis等の規格を表示する.

(list-character-sets)

フォントセットとは,文字集合とフォントの対応表のこと.

(list-fontsets)

Fontset: -*-*-*-*-*-*-*-*-*-*-*-*-fontset-default Fontset: -*-fixed-medium-r-normal-*-16-*-*-*-*-*-fontset-standard Fontset: -PfEd-Ricty Diminished Discord-normal-normal-normal-*-16-*-*-*-*-0-fontset-startup

フォントセットの作成

asciiの範囲内でのフォントセットを作成する.

(create-fontset-from-ascii-font
 "Ricty Diminished Discord-10"
 nil
 "RDD")

日本語文字にもフォントをあてる.

(set-fontset-font "fontset-RDD" 'unicode "Ricty Diminished Discord-10" nil 'append)

フォントセットを設定する

add-to-list によりフォントセットをフレームに適用できる.

(add-to-list 'default-frame-alist '(font . "fontset-RDD"))

設定

daemonで起動した時にフォントの作成がうまくいかない.そのため, after-make-frame-functions hookで, with-selected-frame によりframeの中でキャラクターセットの作成と,デフォルト/現在のフレームの設定を行う.

(defun add-font-setting (&optional frame)
  (with-selected-frame (or frame (selected-frame))
    (let* ((font-name "Ricty Diminished Discord")
	   (default-font (format "%s:weight=normal:slant=normal" font-name))
	   (fontset-base-name "rdd")
	   (fontset-name (format "fontset-%s" fontset-base-name)))
      (create-fontset-from-ascii-font default-font nil fontset-base-name)
      (set-fontset-font fontset-name 'unicode (font-spec :family font-name) nil 'append)
      (set-frame-font fontset-name)
      (setq default-frame-alist
	    `((vertical-scroll-bars . nil)
	      (font . ,fontset-name)))
      (set-frame-parameter (selected-frame) 'font fontset-name)
      (remove-hook 'after-make-frame-functions #'add-font-setting))))

(add-hook 'after-make-frame-functions #'add-font-setting)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment