Saya mencoba untuk menetapkan [Inconsolata-dz] [1] sebagai font default saya ke Emacs. Inconsolata biasa berfungsi dengan baik, tetapi versi dz tidak berfungsi dengan benar. Sebagian besar fungsi yang saya gunakan terus melempar kesalahan ini (ikuti semua instruksi online tentang cara mengatur font Emacs):
set-face-attribute: Invalid font name: "-*-Inconsolata-dz-normal-normal-normal-*-13-*-*-*-m-0-iso10646-1"
Saya akhirnya berhasil dengan melakukan ini di init.el
:
(setq initial-frame-alist '((font . "Inconsolata-dz-13")))
(setq default-frame-alist '((font . "Inconsolata-dz-13")))
Saya juga memiliki ini init.el
, yang dihasilkan oleh customize-faces
, tetapi tampaknya mengubah font menjadi Helvetica (kecuali ditimpa oleh kode di atas):
(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")))))
Sekarang masalah dengan kode pertama di atas adalah bahwa melakukan Ctrl+N
, untuk membuat jendela baru akan membuang kesalahan nama font yang tidak valid yang sama.
Saya menginstal Inconsolata dan Inconsolata-dz dengan cara yang sama pada Mac saya. Hanya cara biasa dan default untuk menginstal font pada OS X.
Adakah yang tahu apa yang saya lakukan salah dan bagaimana saya bisa menggunakan Inconsolata-dz dengan benar?
*Scratch*
buffer:(insert (prin1-to-string (x-list-fonts "*")))
Jika tidak ada, maka itu tidak tersedia.((set-face-attribute 'default nil :family "-*-Inconsolata-g-normal-normal-normal-*-*-*-*-*-m-0-iso10646-1"))
,, saya mendapatkan 'Pengecoran wajah tidak valid'. Ada ide mengapa? Apa sebenarnya nama itu seharusnya? Inconsolata berfungsi tetapi Inconsolata-g dan Inconsolata-dz tidak berfungsi, meskipun semuanya tersedia dan diinstal dengan cara yang sama. Saya menduga itu adalah tanda hubung dalam nama?Jawaban:
Emacs tidak mengizinkan font yang memiliki tanda hubung di dalamnya. Saya akan mengganti nama font menjadi sesuatu yang tidak mengandung tanda hubung.
Anda dapat melakukan ini menggunakan ttx . Misalnya, dengan asumsi Anda memiliki font yang disebutkan
Inconsolata-dz for Powerline.otf
dalam direktori kerja Anda saat ini:Anda kemudian dapat mengubah nama
otf
file yang dihasilkan menjadi apa pun yang Anda inginkan dan memindahkannya ke direktori font Anda.sumber
font_parse_name
fungsi, Anda akan menemukan bahwa mem-parsing string XFT dengan membaginya di tanda hubung, dengan asumsi bahwa seluruh nama font terkandung di antara dua tanda hubung.ttx
atau mengonversi file font. Saya mengunjungi file fontInconsolata-g.otf
,Inconsolata-g.sfd
danInconsolata-g.ttf
denganEmacs
dan diganti setiap terjadinya "Inconsolata-g" dan "Inconsolata-d" dengan "Inconsolata_g" dan "Inconsolata_d". Teks ini juga muncul bercampur dengan "^ @" seperti pada "I ^ @ n ^ @ c ^ @ o ^ @ n ^ @ s ^ @ o ^ @ l ^ @ a ^ @ t ^ @ a ^ @ - ^ @ g ^ @ Inconsolata-g "yang telah saya ganti sebagai" I ^ @ n ^ @ c ^ @ o ^ @ n ^ @ s ^ @ o ^ @ l ^ @ a ^ @ t ^ @ a ^ @ _ ^ @ g ^ @Inconsolata_g ". Saya kemudian mengubah nama file menjadiInconsolata_g.*
dan drag-and-drop'd ke dalamFont Book.app
, yang berhasil.