Emacs: Set Font in Init File
This page shows you how to set font for emacs in init file.
Change Font/Size Globally by Menu
Chose the menu:
- menu [Options ▸ Set Default Font…]
- menu [Options ▸ Save Options].
This changes the default font for all your current session's emacs windows/buffers, and also save it to the
Emacs Init File
in the custom-set-variables
section.
[see Emacs: M-x customize Tutorial]


Set Default Font and Size in Init File
put this in your Emacs Init File:
(when (member "Consolas" (font-family-list)) (set-frame-font "Consolas" t t))
You can add a font size:
(when (member "Consolas" (font-family-list)) (set-frame-font "Consolas-14" t t))
or
;; set default font (cond ((string-equal system-type "windows-nt") ; Microsoft Windows (when (member "Consolas" (font-family-list)) (set-frame-font "Consolas" t t))) ((string-equal system-type "darwin") ; macOS (when (member "Menlo" (font-family-list)) (set-frame-font "Menlo" t t))) ((string-equal system-type "gnu/linux") ; linux (when (member "DejaVu Sans Mono" (font-family-list)) (set-frame-font "DejaVu Sans Mono" t t))))
See also: Emacs Lisp: Determine OS, Emacs Version, Machine Host Name
List available fonts
(print (font-family-list))
[see Evaluate Emacs Lisp Code]
Check if a font exist
;; returns true if Symbola exists (member "Symbola" (font-family-list))
Set Font for Unicode Symbols
Symbols here mean misc unicode characters that are Math Symbols ∑ ∫ π² ∞, Arrows →, Keyboard Symbols ⌘ ↩ ⌫, Cultural Symbols ☭ or dingbats. But excluding emoji.
;; set font for symbols (set-fontset-font t 'symbol (cond ((string-equal system-type "windows-nt") (cond ((member "Segoe UI Symbol" (font-family-list)) "Segoe UI Symbol"))) ((string-equal system-type "darwin") (cond ((member "Apple Symbols" (font-family-list)) "Apple Symbols"))) ((string-equal system-type "gnu/linux") (cond ((member "Symbola" (font-family-list)) "Symbola")))))
Set Font for emoji
Set Font for Chinese
How to install font
- Microsoft Windows: double click on the font.
- MacOS: double click on the font.
- Linux: How to Install Font, List Fonts
Restart emacs. Emacs should see it.