Erzwingen Sie die Verwendung von Schriftarten mit fester Breite im Organisationsmodus

10

Was ist der einfachste Weg, um den Emacs-Organisationsmodus zu zwingen, überall dieselbe Schriftfamilie und -höhe mit fester Breite zu verwenden (aber andere Eigenschaften wie den Vordergrund beizubehalten)?

Ich könnte zum Beispiel alle org-level-nGesichter erben lassen fixed-pitchoder variable-pitchtatsächlich auf eine Schriftart mit fester Breite verweisen, aber das wäre wohl umständlich.

Danke im Voraus.

rsenna
quelle
1
Hallo. Verwenden Sie ein benutzerdefiniertes Design oder die Emacs-Standardeinstellung? Einige Themen ändern bestimmte Gesichter, z. B. Org-Überschriften. Haben Sie auch die Standard-Emacs-Schriftart geändert oder einige Gesichter optimiert? Standardmäßig legt Emacs eine Schriftart mit fester Breite / Monospace fest.
Undostres
Hey @undostres, ich benutze Bozhidar Batsovs Solarized für Emacs .
Rsenna
3
Hmm, genau wie ich dachte. Dieses Thema führt mehr "aufdringliche" Änderungen ein als andere. Die README-Datei im Repository enthält einige Variablen, die Sie ändern können, um einige Änderungen zu vermeiden. Wenn ich mich jedoch richtig erinnere, kann die Schriftart mit variabler Breite nicht geändert werden. Eine Problemumgehung: Verwenden Sie eine andere Solarized-Implementierung wie diese oder diese . Wenn Sie jedoch nicht zwischen Themen wechseln möchten, müssen Sie einige Gesichtsänderungen über Batsovs Thema vornehmen.
Undostres
1
Sicher! NP. Ich bin ein starker Org-Benutzer und hatte das gleiche Problem mit diesem Thema. Schließlich entschied man sich, es zu ändern, anstatt einen Hack zu versuchen (was dennoch möglich ist).
Undostres
1
Legen Sie einige Einstellungen in den themenspezifischen Einstellungen fest , um Änderungen der Schriftgröße zu deaktivieren.
Ivan Sviatenko

Antworten:

8

Einige Themen wechseln ohne guten Grund das Gesicht.

Wenn Sie beispielsweise ein SolarizedThema verwenden, fügen Sie unten Code hinzu, bevor Sie es laden.

(setq solarized-use-variable-pitch nil
      solarized-scale-org-headlines nil)
rgtk
quelle
3

Ich würde verwenden face-remap-add-relative; finden Sie in der Gesichts - Remapping Abschnitt der Emacs Lisp - Handbuch.

Hier ist ein Hook, der die "Familien default" -Eigenschaft des Gesichts im Org-Modus auf "Monospace" setzt und sich effektiv defaultin "Monospace" verwandelt fixed-pitch.

(add-hook 'org-mode-hook
          (lambda () (face-remap-add-relative 'default :family "Monospace")))
Konstantin
quelle
Komisch. Für mich hatte das den gegenteiligen Effekt: Alle org-Schriftarten sind jetzt proportional (sowohl Überschriften als auch Listenelemente). Zuvor wurden zumindest die Listenelemente mit einer Monospace-Schriftart angezeigt.
Rsenna
Ich benutze es face-remap-add-relativeauch und es funktioniert für mich (ich habe kein "Monospace", sondern benutze stattdessen "Input Sans Mono"). Es gibt auch einige andere Gesichter, mit denen Sie sich vielleicht anlegen möchten, alle mit dem Namen org- etwas .
Amitp