Org-Mode Outline Levels 9+
Emacs’s outline-mode
only has font settings aka “faces” for 8 outline levels; then they wrap, so level 9 looks like level 1 and so on.
org-mode
inherits these faces, and thus also only defines 8 styles.
That’s more than enough, I believe, to have some visual variety in your outlines and also sufficient distance between repeating styles.
One this that does absolutely not gel with this is using level-1 outline items as actual headings, using e.g. a larger font (often 2x the size), maybe even variable pitch to make it more distinct, because this style would be used for levels 1, 9, 17, 25, etc.
Because I do have large level-1 headings at the moment, but also work with a rather deeply nested outline to document call stacks, I needed more regular-size outline items.
To skip repeating the rather large level-1 style, I increased the supported headings with repeating styles from level-2 onward like this:
(defface org-level-9 '((t :inherit org-level-2))
"Face used for level 9 headlines."
:group 'org-faces)
(defface org-level-10 '((t :inherit org-level-3))
"Face used for level 10 headlines."
:group 'org-faces)
(defface org-level-11 '((t :inherit org-level-4))
"Face used for level 11 headlines."
:group 'org-faces)
(defface org-level-12 '((t :inherit org-level-5))
"Face used for level 12 headlines."
:group 'org-faces)
(defface org-level-13 '((t :inherit org-level-6))
"Face used for level 13 headlines."
:group 'org-faces)
(defface org-level-14 '((t :inherit org-level-7))
"Face used for level 14 headlines."
:group 'org-faces)
(defface org-level-15 '((t :inherit org-level-8))
"Face used for level 15 headlines."
:group 'org-faces)
(setq org-level-faces (append org-level-faces (list 'org-level-9 'org-level-10 'org-level-11 'org-level-12 'org-level-13 'org-level-14 'org-level-15)))
(setq org-n-level-faces (length org-level-faces))
The idea came from a StackOverflow post which I simplified by replicating the defface
’s of the regular org levels instead of using custom settings.