Отрицательный ответ очень хорош, но у меня это не сработало. Я в настоящее время на Emacs 24.4 и org 8.2.4, и совет org-indent-initialize
не сделал ничего. Я должен был переопределить функцию с измененным отступом, и это сработало. Возможно, когда я обновлюсь до Emacs 24.5 и org 8.3, совет будет работать.
Но мне также пришлось внести несколько других корректировок, потому что я использую шрифты с переменной шириной разного размера для разных уровней заголовка, что означает, что заголовки уровня 1 *
не совпадают с шириной заголовка уровня 2, и так далее.
Так что я также должен был сделать это:
- Установите грани
org-hide
(используются для отступа строк заголовка) и org-indent
(используются для отступа строк, не являющихся заголовками), чтобы убедиться, что они используют один и тот же шрифт и одинаковый размер.
- Установить переменную
org-indent-boundary-character
для *
вместо значения по умолчанию
(пробел). Это символ, который вставляется после символов отступа, но перед содержимым. Я не уверен, является ли изменение это необходимостью, но это, кажется, помогает последовательности. Это может зависеть от используемого вами шрифта, размеров и т. Д.
Выполнение этих вещей в дополнение к внесению изменений org-indent-initialize
в устаревшую версию, по-видимому, сделало это. Я получаю буфер, похожий на этот:
Вы можете видеть, что при снижении уровня заголовка отступ не совпадает с текстом заголовка. Я думаю, что это из-за использования меньших шрифтов для заголовков более низкого уровня, и я не думаю, что есть простой способ это исправить. Может быть возможно сделать что-то с текстовыми свойствами, такими как line-prefix
и wrap-prefix
, потому что они могут быть установлены на изображения и специальные символы, но это, вероятно, будет сложно и медленно. Если вы используете одинаковый размер шрифта для всех уровней заголовка, это, вероятно, не будет проблемой.
Во всяком случае, это, вероятно, достаточно хорошо. :)
PS Как и просили, вот мои org-level
лица. Они скопированы с custom-set-faces
, но если вы не используете, customize
вы можете установить их за ее пределами.
'(org-level-1 ((t (:inherit variable-pitch :foreground "#cb4b16" :weight bold :height 1.3))))
'(org-level-2 ((t (:inherit variable-pitch :foreground "#859900" :weight bold :height 1.2))))
'(org-level-3 ((t (:inherit variable-pitch :foreground "#268bd2" :weight bold :height 1.15))))
'(org-level-4 ((t (:inherit variable-pitch :foreground "#b58900" :weight bold :height 1.1))))
'(org-level-5 ((t (:inherit variable-pitch :foreground "#2aa198" :weight bold))))
'(org-level-6 ((t (:inherit variable-pitch :foreground "#6c71c4" :weight bold))))
'(org-level-7 ((t (:inherit variable-pitch :foreground "#d33682" :weight bold))))
'(org-level-8 ((t (:inherit variable-pitch :foreground "#dc322f" :weight bold))))