esta pregunta surge realmente porque me gusta usar fuentes no monoespaciadas (Sabon, Minion, Garamond, etc.) Esto causa un problema cuando uso org-indent-mode, ya que el texto debajo de los titulares ahora no está alineado con los titulares. Ejemplo:
La fuente es Georgia. Ahora, si cambio a consolas:
Creo que el problema es que en las fuentes no monoespaciadas, el "espacio" y el * no ocupan el mismo espacio. Aunque no sé cómo resolver esto. Busqué en Internet y no pude encontrar un tutorial para ajustar la sangría yo mismo. Intenté leer org-indent.el pero es muy difícil de entender. ¡La ayuda es muy apreciada!
indentation
fonts
Alex
fuente
fuente
org-indent
no están realmente allí, son sololine-prefix
propiedades, por lo que pueden ser reemplazados por cualquier otro personaje siempre que sea invisible.SPC
caracteres pero con propiedad de texto (o superposición) que impone una cara que (por defecto) tiene una fuente monoespaciada. Tal vez una solicitud de mejora de Org está en orden. ;-)Respuestas:
Una solución es modificar
org-indent-strings
para usar estrellas en lugar de espacios como el carácter de sangría. Esto significa que el ancho de la sangría siempre será correcto, incluso cuando se utiliza una fuente proporcional. El truco consiste entonces en establecer que el color de primer plano de la sangría sea el mismo que el color de fondo, de modo que las estrellas se vuelvan invisibles.Podemos lograr esto con el siguiente código, que aconseja la función
org-indent-initialize
:El resultado se ve así para mí en Mac OS X usando
emacs -Q
y(set-face-font 'default :family "Gill Sans")
:fuente
(concat (make-string (1- i) ?\ )
a,(concat (make-string (1- i) ?*)
en la definición deorg-indent-initialize
ie,(defun org-indent-initialize...
luego usar Mx byte-compile-file para compilar org-indent.el a org-indent.elc. Luego reinicie emacs.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:
org-hide
(utilizadas para sangrar líneas de encabezado) yorg-indent
(utilizadas para sangrar líneas que no sean de titular) para asegurarse de que usan la misma fuente con el mismo tamaño.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
ywrap-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 decustom-set-faces
, pero si no los usacustomize
, puede configurarlos fuera de él.fuente
solarized-dark
tema, que es parte delsolarized-theme
paquete que puedes instalar desde ELPA. En cuanto a lasorg-level-*
caras, las agregaré a la respuesta anterior.org-bullets
paquete. Ejecutepackage-list-packages
y vea todos los paquetes que comienzan conorg-
. :)De alguna manera no pude obtener las otras respuestas para trabajar para mi configuración, pero la solución más rápida y fácil que funcionó para mí fue:
Luego, simplemente cambie el
Font Family
atributo a su fuente monoespacio (en mi caso,Iosevka
).Y eso es, literalmente, todo lo que tiene que hacer , ya que
org-indent
(la cara para la sangría de contorno) hereda automáticamente deorg-hide
(cara utilizada para ocultar las estrellas principales en los titulares)fuente
Una solución mucho más simple: en modo org, presione
M-:
y ejecute lo siguienteEs posible que necesite
M-x font-lock-fontify-buffer
después de eso. Esta solución simplemente obliga a los personajes principales (espacios y estrellas) a usar una fuente monoespacial.Además, querrás reemplazar "Ubuntu Mono" con una fuente monoespacial de tu elección,
fuente