Emacs: Novel Reading Mode 📜
Read Novel Mode
Here's a command to make current window suitable for reading long text.
put this in your Emacs Init File:
(defun xah-toggle-read-novel-mode () "Setup current frame to be suitable for reading long novel/article text. • Set frame width to 80. • Line wrap at word boundaries. • Line spacing is increased. • Proportional width font is used. Call again to toggle back. URL `http://xahlee.info/emacs/emacs/emacs_novel_reading_mode.html' Created: 2019-01-30 Version: 2026-06-13" (interactive) (let (;; (xnarrow 80) ;; (xwide 100) ) (if (equal line-spacing 0.5) (progn ;; (set-frame-parameter (selected-frame) 'width xwide) (variable-pitch-mode 0) (setq line-spacing nil) (setq word-wrap nil)) (progn ;; (set-frame-parameter (selected-frame) 'width xnarrow) (variable-pitch-mode 1) (setq line-spacing 0.5) (setq word-wrap t)))) (redraw-frame (selected-frame)))
Before
After
Emacs Lines, Column, Cursor Position
Soft-Wrap Lines
- Emacs: Visual Line Mode
- Emacs: Toggle Word Wrap
- Emacs: Line Wrap
- Emacs: Novel Reading Mode 📜
- Emacs: Toggle Line Spacing Command 📜
- Emacs: toggle margin 📜
Reformat Lines
- Emacs: Hard-Wrap Lines (fill-region)
- Emacs: Reformat to Long Lines (unfill-region) 📜
- Emacs: Reformat Lines for Source Code 📜