Emacs: Proportional Font

By Xah Lee. Date: . Last updated: .
emacs variable pitch mode
Alt+x variable-pitch-mode
emacs variable-pitch-mode 2015-09-21
M-x variable-pitch-mode, for reading code.

Alt+x variable-pitch-mode to toggle between fixed-width and variable-width font. (monospace vs proportional)

The font change is for current file/buffer only.

Proportional font is useful for reading info doc, email, etc. Proportional font is easier to read, and shows 20 or more characters per line. It also works great for coding too (except Python). Try it. You may be surprised.

(Thanks to Oscar Carlsson for suggesting variable-pitch-mode.)

Setup Proportional Font by Major Mode

Here's how to make some mode always use proportional font.

  ;; use variable-width font for some modes
  (defun xah-use-variable-width-font ()
    "Set current buffer to use variable-width font."
    (variable-pitch-mode 1)
    ;; (text-scale-increase 1 )
  (add-hook 'nxml-mode-hook 'xah-use-variable-width-font)
  (add-hook 'emacs-lisp-mode-hook 'xah-use-variable-width-font)
  (add-hook 'js-mode-hook 'xah-use-variable-width-font)
  (add-hook 'css-mode-hook 'xah-use-variable-width-font)
  (add-hook 'html-mode-hook 'xah-use-variable-width-font)

Alternatively, you can use the following code:

(defun xah-set-font-to-monospace ()
  "Change font in current window to a monospaced font."
  (set-frame-font "DejaVu Sans Mono" t)

(defun xah-set-font-to-variable-width ()
  "Change font in current window to a variable-width font."
  (set-frame-font "DejaVu Sans" t)

[see Emacs: Font Setup]

Font Topic

  1. Font Setup
  2. Proportional Font
  3. Cycle Fonts by Command
  4. Set Line Spacing

If you have a question, put $5 at patreon and message me.
Or Buy Xah Emacs Tutorial
Or buy a nice keyboard: Best Keyboards for Emacs


Emacs Lisp