Giocare con le definizioni dei set di caratteri di Emacs dovrebbe essere la risposta.
Dopo aver letto
Nel nostro file init dovremmo essere in grado di impostare un carattere per l'intera gamma di caratteri:
(let ((my-font "DejaVu Sans Mono-14"))
(set-fontset-font "fontset-startup" '(#x000000 . #x3FFFFF) my-font)
(set-fontset-font "fontset-default" '(#x000000 . #x3FFFFF) my-font)
(set-fontset-font "fontset-standard" '(#x000000 . #x3FFFFF) my-font))
Ma per impostare un carattere per un intervallo di caratteri e forzarlo come carattere di fallback per caratteri non supportati da esso, dobbiamo anche aggiungere nil
come target:
(let ((my-font "DejaVu Sans Mono-14")
(font-sets '("fontset-default"
"fontset-standard"
"fontset-startup")))
(mapcar
(lambda (font-set)
;; all the characters in that range (which is the full possible range)
(set-fontset-font font-set '(#x000000 . #x3FFFFF) my-font)
;; for all characters without font specification
;; in another words it is a setting for lack of fallback font
;; if e.g. ℕ called DOUBLE-STRUCK CAPITAL N is not covered by our font
;; it will be displayed as placeholder-box,
;; because fallback for our font is now... our font :)
(set-fontset-font font-set nil my-font))
font-sets))
Ora, come possiamo vedere sotto il punto (cursore) con C-u C-x =
o M-x describe-char
:
position: 1430 of 1954 (73%), column: 16
character: ℕ (displayed as ℕ) (codepoint 8469, #o20425, #x2115)
preferred charset: unicode (Unicode (ISO10646))
code point in charset: 0x2115
script: symbol
syntax: w which means: word
category: .:Base, L:Left-to-right (strong)
to input: type "C-x 8 RET HEX-CODEPOINT" or "C-x 8 RET NAME"
buffer code: #xE2 #x84 #x95
file code: #xE2 #x84 #x95 (encoded by coding system utf-8-unix)
display: no font available
Character code properties: customize what to show
name: DOUBLE-STRUCK CAPITAL N
old-name: DOUBLE-STRUCK N
general-category: Lu (Letter, Uppercase)
decomposition: (font 78) (font 'N')
Parte importante: display: nessun carattere disponibile .
Dovrebbe essere possibile impostarlo nel nostro file .Xresources :
Con la risorsa X 'Emacs.Font', puoi specificare un nome di set di caratteri proprio come un nome di carattere effettivo.
Non so quale sia una sintassi corretta per quello però.
Prima di quel cambiamento sono stato in grado di vedere molti glifi Unicode non supportati dal mio font preferito. Dopo quella modifica, vedo solo un carattere nei miei Emacs e vuoti box-segnaposto per glifi non supportati da esso.
Funziona nel mio sistema e dovrebbe essere sufficiente per ora prima che qualcun altro ti dia una risposta dettagliata, tecnica e corretta .
(set-fontset-font t nil MY-FONT)
dov'èMY-FONT
il nome del tuo carattere?