Brincar com as definições de conjunto de fontes do Emacs deve ser a resposta.
Depois de ler
Documentos de conjuntos de fontes :
O conjunto de fontes de inicialização usará a fonte que você especificar, ou uma variante com um registro e codificação diferentes, para todos os caracteres suportados por essa fonte e o fallback em 'fontset-default' para outros caracteres.
Se alguns caracteres aparecerem na tela como caixas vazias ou códigos hexadecimais, isso significa que o conjunto de fontes em uso para eles não possui fonte para esses caracteres.
set-fontset-font descrição:
TARGET pode ser um contras; (FROM. TO), onde FROM e TO são caracteres. Nesse caso, use FONT-SPEC para todos os caracteres no intervalo FROM e TO (inclusive).
TARGET pode ser um símbolo de nome de script. Nesse caso, use FONT-SPEC para todos os caracteres que pertencem ao script.
TARGET pode ser um conjunto de caracteres. Nesse caso, use FONT-SPEC para todos os caracteres no conjunto de caracteres.
O TARGET pode ser nulo. Nesse caso, use FONT-SPEC para quaisquer caracteres para os quais nenhum FONT-SPEC esteja especificado.
documentos sobre como verificar charsets :
Existem dois comandos que podem ser usados para obter informações sobre conjuntos de caracteres. O comando Mx list-charset-chars solicita um nome de charset e exibe todos os caracteres nesse conjunto de caracteres. O comando Mx descrever-conjunto de caracteres solicita um nome de conjunto de caracteres e exibe informações sobre esse conjunto de caracteres, incluindo sua representação interna no Emacs.
Para descobrir a qual conjunto de caracteres um caractere do buffer pertence, coloque um ponto antes dele e digite Cu Cx =
Em nosso arquivo init, devemos ser capazes de definir uma fonte para toda a gama de caracteres:
(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))
Mas, para definir uma fonte para um intervalo de caracteres e forçá-la como fonte substituta para caracteres não suportados por ela , também devemos adicionar nil
como destino:
(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))
Agora, como podemos ver no ponto (cursor) com C-u C-x =
ou 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: exibição: nenhuma fonte disponível .
Deve ser possível definir isso em nosso arquivo .Xresources :
Com o recurso X 'Emacs.Font', você pode especificar um nome de conjunto de fontes como um nome de fonte real.
Eu não sei o que é uma sintaxe adequada para isso.
Antes dessa mudança, eu era capaz de ver muitos glifos unicode não suportados pela minha fonte de escolha. Após essa alteração - só posso ver uma fonte no meu Emacs e espaços reservados vazios para glifos não suportados por ela.
Funciona no meu sistema e deve ser suficiente por enquanto antes que alguém lhe dê uma resposta detalhada, técnica e correta .
(set-fontset-font t nil MY-FONT)
ondeMY-FONT
está o nome da sua fonte?