Próbuję ustawić [Inconsolata-dz] [1] jako domyślną czcionkę na Emacsa. Zwykłe Inconsolata działa dobrze, ale wersja dz nie działa poprawnie. Większość funkcji, z których korzystam, wciąż generuje ten błąd (postępowałem zgodnie z instrukcjami online, jak ustawić czcionkę Emacsa):
set-face-attribute: Invalid font name: "-*-Inconsolata-dz-normal-normal-normal-*-13-*-*-*-m-0-iso10646-1"
W końcu udało mi się to zrobić, wykonując to w moim init.el
:
(setq initial-frame-alist '((font . "Inconsolata-dz-13")))
(setq default-frame-alist '((font . "Inconsolata-dz-13")))
Mam również to w init.el
, które zostało wygenerowane przez customize-faces
, ale wydaje się, że zmienia czcionkę na Helvetica (chyba że zostanie zastąpione przez powyższy kod):
(custom-set-variables
;; custom-set-variables was added by Custom.
;; If you edit it by hand, you could mess it up, so be careful.
;; Your init file should contain only one such instance.
;; If there is more than one, they won't work right.
'(custom-safe-themes
(quote
("e16a771a13a202ee6e276d06098bc77f008b73bbac4d526f160faa2d76c1dd0e"
"d677ef584c6dfc0697901a44b885cc18e206f05114c8a3b7fde674fce6180879"
"8aebf25556399b58091e533e455dd50a6a9cba958cc4ebb0aab175863c25b9a4"
default))))
(custom-set-faces
;; custom-set-faces was added by Custom.
;; If you edit it by hand, you could mess it up, so be careful.
;; Your init file should contain only one such instance.
;; If there is more than one, they won't work right.
'(default ((t (:inherit nil :stipple nil :inverse-video nil
:box nil :strike-through nil :overline nil
:underline nil :slant normal
:weight normal :height 140 :width normal
:foundry "nil" :family "Inconsolata-dz")))))
Problem z pierwszym powyższym kodem polega na tym Ctrl+N
, że utworzenie nowego okna spowoduje wygenerowanie tego samego błędu nieprawidłowej nazwy czcionki.
Zainstalowałem Inconsolata i Inconsolata-dz w ten sam sposób na moim komputerze Mac. Tylko zwykły, domyślny sposób instalowania czcionek w systemie OS X.
Czy ktoś wie, co robię źle i jak mogę właściwie używać Inconsolata-dz?
*Scratch*
buforze:(insert (prin1-to-string (x-list-fonts "*")))
Jeśli go nie ma, oznacza to, że nie jest dostępny.((set-face-attribute 'default nil :family "-*-Inconsolata-g-normal-normal-normal-*-*-*-*-*-m-0-iso10646-1"))
otrzymuję komunikat „Niepoprawna odlewnia twarzy”. Jakieś pomysły dlaczego? Jaka dokładnie powinna być ta nazwa? Inconsolata działa, ale Inconsolata-g i Inconsolata-dz nie działają, mimo że wszystkie są dostępne i zainstalowane w ten sam sposób. Podejrzewam, że to myślnik w nazwie?Odpowiedzi:
Emacs nie zezwala na czcionki z łącznikami. Zmieniłbym nazwę czcionki na coś, co nie zawiera łączników.
Możesz to zrobić za pomocą ttx . Na przykład zakładając, że masz czcionkę o nazwie
Inconsolata-dz for Powerline.otf
w bieżącym katalogu roboczym:Następnie możesz zmienić nazwę utworzonego
otf
pliku na dowolne i przenieść go do katalogu czcionek.źródło
font_parse_name
funkcji, zobaczysz, że analizuje ciąg XFT, dzieląc go na łączniki, zakładając, że cała nazwa czcionki jest zawarta między dwoma łącznikami.ttx
ani konwertowania plików czcionek. Odwiedziłem pliki czcionekInconsolata-g.otf
,Inconsolata-g.sfd
orazInconsolata-g.ttf
zEmacs
i zastąpić wszystkie wystąpienia „Inconsolata-G” i „Inconsolata-d” z „Inconsolata_g” i „Inconsolata_d”. Ten tekst wydaje się także przeplatany z „^ @” jak w „I ^ @ n ^ @ c ^ @ o ^ @ n ^ @ s ^ @ o ^ @ l ^ @ a ^ @ t ^ @ a ^ @ - ^ @ g ^ @ Inconsolata-g ”, które zastąpiłem jako„ I ^ @ n ^ @ c ^ @ o ^ @ n ^ @ s ^ @ o ^ @ l ^ @ a ^ @ t ^ @ a ^ @ _ ^ @ g ^ @Inconsolata_g ”. NastępnieInconsolata_g.*
zmieniłem nazwy plików na „ przeciągnij i upuść”Font Book.app
, co zadziałało.