Emacs: getrennte Fonts für "normalen Text" und Code

Du hast Probleme mit Deinem eMail-Programm, Webbrowser oder Textprogramm? Dein Lieblingsprogramm streikt?
Antworten
Benutzeravatar
OsunSeyi
Beiträge: 33
Registriert: 08.10.2007 10:31:51

Emacs: getrennte Fonts für "normalen Text" und Code

Beitrag von OsunSeyi » 04.11.2021 19:39:16

Hallo,

Ja wie der Titel sagt...
Im Org-Modus für Code-Blocks einen spezifischen Font setzen ist soweit kein Problem:

Code: Alles auswählen

'(org-block ((t (:inherit shadow :background "white smoke" :weight bold :height 100 :family "Fantasque Sans Mono"))))
Das habe ich über's Menü 'Edit > Text Properties > Display Faces' gesetzt.

Nicht aber hinbekommen habe ich das für Code im Allgemeinen. Öffne ich also zB die 'init.el' oder eine Html-Seite, bekomme ich ein hübsches Syntax-Highlighting, habe aber leider als Newbie keine Ahnung, wo ich die Farben geschweige denn den Font festlegen kann.

Und Code in Helvetica sieht irgendwie sch... aus.

Wie muss ich vorgehen, um an die Konfiguration für die verschiedenen unterstützten Code-Sprachen zu kommen?

Das ich über 'm-x customize-face' für den Text, der aktuell unter dem Cursor ist, konfigurieren kann, habe ich schon herausbekommen. Aber das ist ja nun etwas müsam, den Monospace-Font oder den Hintergrund einzeln einzustellen.

Ich mache mir idR die Mühe, die Farben in Bash-Scripts selber so einzustellen, wie ich es gewohnt bin.

viele Grüße,
tom
***DRUM & DANCE***

buhtz
Beiträge: 1106
Registriert: 04.12.2015 17:54:49
Kontaktdaten:

Re: Emacs: getrennte Fonts für "normalen Text" und Code

Beitrag von buhtz » 05.11.2021 09:13:25

Eine konkrete Antwort habe ich leider noch nicht, da ich noch nicht so lange mit Emacs hantiere.

Aber schau dir mal die Konfiguration und Videos von "Emacs from Scratch" (David Wilson) an.
Ansonsten ist https://emacs.stackexchange.com/ immer ein guter Anlaufpunkt für eine solche (mutmaßlich einfache) Frage.

Poste uns doch hier mal deine minimale init.el. Ich verstehe nämlich nicht, warum Helvetica bei dir der default font ist. Oder hab ich das missverstanden?

EDIT: Und zukünftig auch diesen Thread checken. Da ich mich selbst gerade in die Emacs config einarbeite, werde ich dort langfristig mein Ergebnis darlegen und beschreiben.
Debian 11 & 12; Desktop-PC, Headless-NAS, Raspberry Pi 4
Teil des Upstream Betreuer Teams von Back In Time (Debianbackintime)

alberich
Beiträge: 189
Registriert: 27.12.2019 10:12:24

Re: Emacs: getrennte Fonts für "normalen Text" und Code

Beitrag von alberich » 05.11.2021 13:33:02

Wenn man den Cursor auf den entsprechenden Font setzt, und ein

Code: Alles auswählen

M-x describe-face
macht, erhält man den Namen und die Eigenschaften. Dann kann man ihn anpassen. Die Fonts, um die es dir geht, beginnen meist mit font-lock-*. Es sind nicht viele.
Wenn du noch mehr nach deinen Farb- und Formwünschen anpassen willst, empfiehlt sich ein Emacs Theme. Wenn dir keins von den vorhandenen komplett gefällt, kannst du dir dein eigenes schreiben. Das muss nicht von scratch sein. Man kann ein vorhandenes nehmen, es umbenennen und seinen Wünschen nach anpassen.

Benutzeravatar
OsunSeyi
Beiträge: 33
Registriert: 08.10.2007 10:31:51

Re: Emacs: getrennte Fonts für "normalen Text" und Code

Beitrag von OsunSeyi » 07.11.2021 11:35:31

Vielen Dank für Eure Antworten &
einen schönen Sonntag!

@buhts
buhtz hat geschrieben: ↑ zum Beitrag ↑
05.11.2021 09:13:25
Aber schau dir mal die Konfiguration und Videos von "Emacs from Scratch" (David Wilson) an.
Danke, das ist in der Tat sehr cool. Im Augenblick bin ich ganz froh, daß ich mit meiner Config soweit ganz gut leben kann, und habe endlich begonnen, das Ganze auch mal produktiv zu nutzen.
Ansonsten ist https://emacs.stackexchange.com/ immer ein guter Anlaufpunkt für eine solche (mutmaßlich einfache) Frage.
Ja, schon gesehen. Bei Stack Overflow ist auch einiges. Englisch ist mir manchmal zu schwer, aber ohne geht es ganz klar nicht.

Suenkler habe ich schon durchgearbeitet, ohne das wär der Anfang weitaus härter ausgefallen...

Naja, und ich könnte mir vorstellen, daß der typische Debian-Nutzer möglicherweise auch gerne Emacs nutzt (ganz klar ein bisschen plakativ) :wink:
Poste uns doch hier mal deine minimale init.el. Ich verstehe nämlich nicht, warum Helvetica bei dir der default font ist. Oder hab ich das missverstanden?
Ja, ich bin auf Salix und nicht Apple, hab ich nur so gesagt. Benutze zur Zeit Roboto.
Und zukünftig auch diesen Thread checken. Da ich mich selbst gerade in die Emacs config einarbeite, werde ich dort langfristig mein Ergebnis darlegen und beschreiben.
Jupp
~~~~~~~~~~~~~~~~~~~~~~
@alberich
alberich hat geschrieben: ↑ zum Beitrag ↑
05.11.2021 13:33:02
Wenn man den Cursor auf den entsprechenden Font setzt, und ein

Code: Alles auswählen

M-x describe-face
macht, erhält man den Namen und die Eigenschaften. Dann kann man ihn anpassen.
Ergibt bei mir (default ‘all faces’). Warscheinlich ist es einfacher, in den allgemeinen Einstellungen eine Monospace-Schrift zu wählen (das wäre dann wohl 'all faces') und nur für Plain Text Roboto oder was auch immer. BZW nur für Org-Mode, denn für Code-Blocks habe ich die Schrift leicht konfigurieren können. Aber eben nicht für zB die 'init.el'...
Man kann ein vorhandenes nehmen, es umbenennen und seinen Wünschen nach anpassen.
Jupp, so geschehen...
Die Änderungen sind zZt schön verteilt. Emacs packt es in die 'init.el', in meiner eigenen 'Emacs-Conf.org' ist vieles von Suenkler und im eigenen Thema habe ich auch schon einiges geändert... Das muss man mal irgendwann übereinbringen. Die Keys sind genauso schön verteilt...

vielen Dank und tschüß erstmal!
***DRUM & DANCE***

alberich
Beiträge: 189
Registriert: 27.12.2019 10:12:24

Re: Emacs: getrennte Fonts für "normalen Text" und Code

Beitrag von alberich » 07.11.2021 13:19:17

Schau mal:

Der Cursor auf `setq'

Code: Alles auswählen

(setq initial-scratch-message "")
in ~./emacs.d/init.el ergibt bespielsweise:

Code: Alles auswählen

Face: font-lock-keyword-face (sample) (customize this face)

Documentation:
Font Lock mode face used to highlight keywords.

Defined in ‘font-lock.el’.


           Family: unspecified
          Foundry: unspecified
            Width: unspecified
           Height: unspecified
           Weight: unspecified
            Slant: unspecified
       Foreground: #346604
       .... usw.
Dann gibt es übrigens auch noch

Code: Alles auswählen

M-x describe-font
wenn man es ganz genau wissen will. Auf einem Schnipsel mit default Font, ergibt das bei mir:

Code: Alles auswählen

name (opened by): -PfEd-Inconsolata-normal-normal-normal-*-18-*-*-*-m-0-iso10646-1
       full name: Inconsolata:pixelsize=18:foundry=PfEd:weight=normal:slant=normal:width=normal:spacing=100:scalable=true
       file name: /home/atting/.fonts/Inconsolata.otf
Zum Kennenlernen im Übrigen zu empfehlen, die Befehle wie

Code: Alles auswählen

M-x describe-*
M-x apropos-*

Benutzeravatar
OsunSeyi
Beiträge: 33
Registriert: 08.10.2007 10:31:51

Re: Emacs: getrennte Fonts für "normalen Text" und Code

Beitrag von OsunSeyi » 10.11.2021 12:37:30

Ich habe das Problem auf

StackExchange geschildert, aber keine wirklich passende Antwort erhalten.

Wenn ich versuche, die normale Schrift im Org-Modus einzustellen:

Code: Alles auswählen

M-x describe-face
Describe face (default ‘default’)
...erhalte ich die Default-Schrift.

Genauso erhalte ich die Default-Schrift wenn ich in der 'init.el' zB auf:

Code: Alles auswählen

'(global-set-key ...'
gehe...

Es ist also nicht möglich, für normale Schrift im Org-Modus eine Proportionalschrift zu haben, aber für eine Elisp-Datei Monospace? Das kann ja eigentlich nicht sein, da muss ich doch etwas übersehen haben :!: :?:

EDIT

Juchu...

In der Init:

Code: Alles auswählen

;; Um Monospace-font möglichst per Key einzustellen:

	(defun set-buffer-monospace ()
	"Set monospace font in the current buffer."
	(interactive)
	(setq buffer-face-mode-face '(:family "Fantasque Sans Mono" :height 110))
	(buffer-face-mode))

        (global-set-key  "\C-xm" 'set-buffer-monospace)
;;	(add-hook 'org-mode-hook 'set-buffer-monospace)
ermöglicht, auf Monospace umzuschalten und gut...
:D
***DRUM & DANCE***

Antworten