La respuesta en desuso es muy buena, pero no funcionó para mí. Actualmente estoy en Emacs 24.4 y org 8.2.4, y el asesoramiento org-indent-initialize
no hizo nada. Tuve que redefinir la función con el carácter de sangría modificado, y eso funcionó. Quizás cuando actualice a Emacs 24.5 y org 8.3 el asesoramiento funcionará.
Pero también tuve que hacer algunos otros ajustes, porque uso fuentes de ancho variable de diferentes tamaños para diferentes niveles de encabezado, lo que significa que los encabezados de nivel 1 *
no tienen el mismo ancho que los de nivel 2, y así sucesivamente.
Entonces también tuve que hacer esto:
- Establezca las caras
org-hide
(utilizadas para sangrar líneas de encabezado) y org-indent
(utilizadas para sangrar líneas que no sean de titular) para asegurarse de que usan la misma fuente con el mismo tamaño.
- Establezca la variable
org-indent-boundary-character
en *
lugar de la predeterminada
(un espacio). Este es el carácter que se inserta después de los caracteres de sangría pero antes del contenido. No estoy seguro si cambiar esto es una necesidad, pero parece ayudar a la consistencia. Puede depender de la fuente que esté utilizando, tamaños, etc.
Hacer esas cosas además de hacer el cambio a org-indent-initialize
lo desaprobado siempre parece haberlo hecho. Termino con un búfer que se ve así:
Puede ver que, a medida que baja el nivel del título, la sangría no se alinea perfectamente con el texto del encabezado. Creo que se debe al uso de fuentes más pequeñas para encabezados de nivel inferior, y no creo que haya una manera fácil de solucionarlo. Es posible hacer algo con propiedades de texto como line-prefix
y wrap-prefix
, porque se pueden establecer en imágenes y caracteres especiales, pero eso probablemente sería complicado y lento. Si usa el mismo tamaño de fuente para todos los niveles de encabezado, esto probablemente no será un problema.
De todos modos, esto es probablemente lo suficientemente bueno. :)
PD: Según lo solicitado, aquí están mis org-level
caras. Estos se copian de custom-set-faces
, pero si no los usa customize
, puede configurarlos fuera de él.
'(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))))