 (defvar user--latin-font "VL Gothic"
   "Default font for Latin characters")
 
-(defvar user--unicode-font "Noto Sans"
+(defvar user--cjk-proportional-font "VL PGothic"
+  "Default font for Latin characters")
+
+(defvar user--unicode-font "Noto Sans Mono CJK JP"
   "Default font for Unicode characters. including emojis")
 
 ;; Notoフォントでベンガル語(charset名はbengali)を表示するとクラッシュする。

(defvar user--unicode-font-fallback "FreeSans"
  "Fallback font for Unicode characters.")

(defvar user--standard-fontset
  (create-fontset-from-fontset-spec standard-fontset-spec)
  "Standard fontset for user.")

(defun user--set-font ()
  "Set Unicode, Latin and CJK font for user--standard-fontset."
  (set-fontset-font user--standard-fontset 'unicode
                    (font-spec :family user--unicode-font)
                    nil 'prepend)

    (set-fontset-font user--standard-fontset charset
                  (font-spec :family user--cjk-font)
                  nil 'prepend))
  ;; TODO 日本語フォントではU+2018とU+2019は全角幅だがWeb上の英文ではアポストロフィに使われていて
  ;; 見栄えが悪い。現状は全角で表示し必要に応じてU+0027に置換する。よい方法はないものか。
  (dolist (charset '((#x2018 . #x2019)    ;; Curly single quotes "‘’"
                     (#x201c . #x201d)))  ;; Curly double quotes "“”"
    (set-fontset-font user--standard-fontset charset
                      (font-spec :family user--cjk-font)
                      nil)) ; 上書きするために第5引数ADDは省略する
  ;; フォールバックフォントを用いる言語(charsetは C-u C-x = のscriptセクションの名前を用いる)
  (dolist (charset '(bengali bengali-akruti bengali-cdac))
    (set-fontset-font user--standard-fontset charset
                      (font-spec :family user--unicode-font-fallback)
                      nil 'prepend)))

;; create fontset-user
(user--set-font)

;; Ensure user--standard-fontset gets used for new frames.
(add-to-list 'default-frame-alist `(font . ,user--standard-fontset))
(add-to-list 'initial-frame-alist `(font . ,user--standard-fontset))

;;;
;; customize theme, color
