Wednesday, July 17, 2019

이맥스 한국어,러시아어,영어,중국어 폰트(Emacs font for Korean, Cyrillic, English, Chinse)



;; -- environment set
(setenv "LANG"        "UTF-8")
(setenv "LC_ALL"      "ko_KR.UTF-8")
(setenv "LANG"        "UTF-8")
(setenv "LC_CTYPE"    "UTF-8")
(setenv "LC_NUMERIC"  "UTF-8")
(setenv "LC_TIME"     "UTF-8")
(setenv "LC_COLLATE"  "UTF-8")
(setenv "LC_MONETARY" "UTF-8")
(setenv "LC_MESSAGES" "UTF-8")
(setenv "LANGUAGE"    "ko")
(setenv "GDM_LANG"    "ko")
(setenv "TZ"          "Asia/Seoul")
(modify-coding-system-alist 'process "*" 'utf-8)

(setq use-default-font-for-symbols nil)
(setq inhibit-compacting-font-caches t)


;; https://www.cufonfonts.com/font/ibm-plex-mono
;; https://www.google.co.kr/get/noto/
;; https://sourceforge.net/projects/wqy/

;; M-x list-fonts
(set-face-font 'default (font-spec :family "IBM Plex Mono" :size 20)) ; default
(set-fontset-font "fontset-default" 'hangul (font-spec :family "Noto Sans CJK KR" :size 16))
(set-fontset-font "fontset-default" 'kana (font-spec :family "Noto Sans Mono CJK JP" :size 22))
(setq face-font-rescale-alist '(("Noto Sans Mono CJK KR" . 1.1)))
(setq face-font-rescale-alist '(("Noto Sans CJK KR" . 1.1)))

;; function for daemon mode
(defun s-font() (interactive)
     (set-fontset-font t 'han (font-spec :family "Noto Sans CJK SC" :size 24))
     (set-fontset-font t 'kana (font-spec :family "Noto Sans Mono CJK JP" :size 22))
     (set-face-font 'default (font-spec :family "IBM Plex Mono" :size 20)) ; default
     (set-fontset-font "fontset-default" 'hangul (font-spec :family "Noto Sans CJK KR" :size 16))
     (set-fontset-font "fontset-default" 'kana (font-spec :family "Noto Sans Mono CJK JP" :size 22))
     (setq face-font-rescale-alist '(("Noto Sans Mono CJK KR" . 1.1)))
     (setq face-font-rescale-alist '(
         (".*hiragino.*" . 1.2)
          ; ("Microsoft Yahei" . 1.6)
          ; ("WenQuanYi Micro Hei Mono" . 1.0)
          ("WenQuanYi Micro Hei Mono" . 1.1) ; 0.84 / 1.4 ; hanyu
          ;("NanumGothicCoding" . 1.2307692307692308) ; fixed ratio
          ;("D2Coding" . 1.23)
          ("Cyrillic-CP1251" . 2.0)
          ("cyrillic-iso8859-5" . 2.0) ;; -- test
          ("DejaVu Sans Mono" . 1.0)
          (".*Ubuntu Mono.*" . 1.2)
          ;("Noto Sans Mono CJK" . 0.8)
          ("Noto Sans Mono CJK KR" . 1.1)
          ("Noto Sans CJK KR" . 1.1)
       ))

;;; -- modeline
    (let ((faces '(mode-line mode-line-buffer-id mode-line-emphasis
                   mode-line-highlight mode-line-inactive)))
         (mapc (lambda (face)
             (set-face-attribute face nil :font "DejaVu Sans Mono-14")) faces))
)


;; -- standalone
(cond ((display-graphic-p) ;; this need for daemon with emacsclient
  (when (string-equal my-system-is "Desktop")
    (setq face-font-rescale-alist '(
         (".*hiragino.*" . 1.2)
          ; ("Microsoft Yahei" . 1.6)
          ; ("WenQuanYi Micro Hei Mono" . 1.0)
          ("WenQuanYi Micro Hei Mono" . 1.1) ; 0.84 / 1.4 ; hanyu
          ;("NanumGothicCoding" . 1.2307692307692308) ; fixed ratio
          ;("D2Coding" . 1.23)
          ("Cyrillic-CP1251" . 2.0)
          ("cyrillic-iso8859-5" . 2.0) ;; -- test
          ("DejaVu Sans Mono" . 1.0)
          (".*Ubuntu Mono.*" . 1.2)
          ;("Noto Sans Mono CJK" . 0.8)
          ("Noto Sans Mono CJK KR" . 1.1)
          ("Noto Sans CJK KR" . 1.1)
      ))
     (set-face-font 'default (font-spec :family "IBM Plex Mono" :size 20)) ; default
     (set-fontset-font "fontset-default" 'hangul (font-spec :family "Noto Sans CJK KR" :size 16)) ; v8
     (set-fontset-font "fontset-default" 'kana (font-spec :family "Noto Sans Mono CJK JP" :size 22))
     (setq face-font-rescale-alist '(("Noto Sans Mono CJK KR" . 1.1))) ; 1.2
     (setq face-font-rescale-alist '(("Noto Sans CJK KR" . 1.1))) ; 1.2

;;; -- modeline
    (let ((faces '(mode-line mode-line-buffer-id mode-line-emphasis
                   mode-line-highlight mode-line-inactive)))
         (mapc (lambda (face)
             (set-face-attribute face nil :font "DejaVu Sans Mono-14")) faces))
  )))


;; daemon mode and client
(add-to-list 'after-make-frame-functions
  (lambda (new-frame)
     (set-face-font 'default (font-spec :family "IBM Plex Mono" :size 20)) ; default
     (set-fontset-font t 'han (font-spec :family "Noto Sans CJK SC" :size 24))
     (set-fontset-font "fontset-default" 'hangul (font-spec :family "Noto Sans CJK KR" :size 16))
     (set-fontset-font "fontset-default" 'kana (font-spec :family "Noto Sans Mono CJK JP" :size 22))
     (setq face-font-rescale-alist '(
         (".*hiragino.*" . 1.2)
          ; ("Microsoft Yahei" . 1.6)
          ; ("WenQuanYi Micro Hei Mono" . 1.0)
          ("WenQuanYi Micro Hei Mono" . 1.1) ; 0.84 / 1.4 ; hanyu
          ;("NanumGothicCoding" . 1.2307692307692308) ; fixed ratio
          ;("D2Coding" . 1.23)
          ("Cyrillic-CP1251" . 2.0)
          ("cyrillic-iso8859-5" . 2.0) ;; -- test
          ("DejaVu Sans Mono" . 1.0)
          (".*Ubuntu Mono.*" . 1.2)
          ;("Noto Sans Mono CJK" . 0.8)
          ("Noto Sans Mono CJK KR" . 1.1)
          ("Noto Sans CJK KR" . 1.1)
       ))
     (setq face-font-rescale-alist '(("Noto Sans Mono CJK KR" . 1.1)))
     (setq face-font-rescale-alist '(("Noto Sans CJK KR" . 1.1)))

;; -- modeline
    (let ((faces '(mode-line mode-line-buffer-id mode-line-emphasis
                   mode-line-highlight mode-line-inactive)))
         (mapc (lambda (face)
             (set-face-attribute face nil :font "DejaVu Sans Mono-14")) faces)) ;
     (if window-system
        (s-font)
        (set-face-font 'default (font-spec :family "IBM Plex Mono" :size 20)) ; default
        (set-fontset-font "fontset-default" 'hangul (font-spec :family "Noto Sans CJK KR" :size 16))
        (set-fontset-font "fontset-default" 'kana (font-spec :family "Noto Sans Mono CJK JP" :size 22))
        (setq face-font-rescale-alist '(("Noto Sans Mono CJK KR" . 1.1)))
        (setq face-font-rescale-alist '(("Noto Sans CJK KR" . 1.1)))
     )))

(if window-system
     (s-font)
     (set-face-font 'default (font-spec :family "IBM Plex Mono" :size 20)) ; default
     (set-fontset-font "fontset-default" 'hangul (font-spec :family "Noto Sans CJK KR" :size 16))
     (set-fontset-font "fontset-default" 'kana (font-spec :family "Noto Sans Mono CJK JP" :size 22))
     (setq face-font-rescale-alist '(("Noto Sans Mono CJK KR" . 1.1)))
     (setq face-font-rescale-alist '(("Noto Sans CJK KR" . 1.1)))
)


(provide 'init-font)

No comments:

Pranten

 Pranten