Configuring Org for readable prose is too complicated

It should be easier to configure Org-mode to display readable prose.

Below is my Org-mode configuration. I use Spacemacs.

I may be wrong. The easiest way to find out is to share my opinion.

Fixed vs variable pitch font

Readable prose requires variable-pitch font. Readable code requires fixed-pitch font.

Org should make it easy to configure the two separately.

This should be easier to do:

;; variable pitch for prose
(add-hook 'org-mode-hook 'variable-pitch-mode)
;; fixed pitch for code
(dolist (face '(org-block-begin-line
                ;;                org-block-background
  (set-face-attribute face nil :inherit 'fixed-pitch))

;; prose with markup needs more line spacing
(defun leo-space-lines ()
  (setq line-spacing 0.175))
(add-hook 'org-mode-hook 'leo-space-lines)

Update: mixed-pitch solves the fixed-variable issue better than my first code block.

Unobtrusive code elements

Org intersperses bits of code in prose, such as datestamps, drawers, keywords, etc. The code distracts when reading the prose. The solution is to make the code less prominent.

That way it's easy to read the paragraphs of prose without interruption, and if one wants to focus on a code bit, it's still easily readable. The prose needs to be larger to be human-scannable, but the code bits aren't in paragraphs, so they can be smaller. Code only needs to be readable when the eye is centered on it, whereas a prose paragraph must be read with multiple saccades.

Org should provide a way to make all the code bits smaller with one settings:

 ;; custom-set-faces was added by Custom.
 ;; If you edit it by hand, you could mess it up, so be careful.
 ;; Your init file should contain only one such instance.
 ;; If there is more than one, they won't work right.
 '(org-date ((t (:foreground "#7590db" :underline t :height 0.8 :width normal))))
 '(org-drawer ((t (:foreground "LightSkyBlue" :height 0.7 :width condensed))))
 '(org-special-keyword ((t (:foreground "#bc6ec5" :height 0.7 :width condensed)))))


I added two more customizations for Org readability:

(org-adapt-indentation nil)
(org-startup-truncated nil)

Adaptive indentation becomes unreadable with deep outlines, and wastes lots of screen space. The heading shows the depth clearly enough, especially with org-bullets.

Line truncation is necessary for code but anathema for prose. Prose lines need visual wrap as windows resize, so that texts can be compared easily.

Since Org aspires to be a personal info manager, it should prioritize prose presentation above code conventions.

Publish At: Author:Cyberthal

Read more posts by this author

comments powered by Disqus