Utilisation de polices à largeur fixe et à largeur variable en mode organisation

9

J'aimerais avoir un fichier en mode org avec le contenu suivant:

#+TITLE: My awesome Emacs file

* My Header
Here's some information under the header

#+BEGIN_SRC sh
echo "this is some code"
#+END_SRC

More text and =verbatim= things

Est - il possible d'avoir l' affichage Emacs l' en- tête et le texte dans une police à largeur variable et seulement #+BEGIN_SRC, #+END_SRC, =verbatim=et le code source dans une police à largeur fixe?

Lee H
la source

Réponses:

5

C'est tout sauf une dupe de cette question sur SO. À ce jour, la réponse acceptée là-bas est (mutatis mutandis):

(set-face-attribute 'org-verbatim nil :inherit 'fixed-pitch)

EDIT: Lisez réellement votre question. Puisque vous souhaitez modifier plusieurs faces, voici une réponse plus complète:

(dolist (face '(org-block-begin-line 
                org-block-end-line 
                org-verbatim 
                org-block-background))
  (set-face-attribute face nil :inherit 'fixed-pitch)

Notez que cela écrasera tous les :inheritparamètres existants sur les faces. Si c'est un problème, une autre réponse à la même question SO fournit du code pour contourner le problème.

purple_arrows
la source
1

Je ne suis pas très familier avec la org-modedélimitation des blocs, je ne peux donc que donner une réponse générale.

Il existe un visage standard appelé variable-pitch, que vous pouvez appliquer à une région donnée comme celle-ci:

(set-text-properties (region-beginning) (region-end) '(face (variable-pitch))))

Cela ne fonctionne cependant que lorsque la fontification automatique est inhibée. Vous pourrez peut-être vous connecter au org-modecode de police de caractères de et remplacer la face des régions sélectionnées avec variable-pitch.

rekado
la source