Bagaimana cara mengatur font default di Emacs?

31

Saya tidak dapat menetapkan Inconsolata sebagai font default di Emacs 24.4 Linux.

  • Saya mengubah font di menu -> Simpan opsi. Font berubah tetapi setelah restart font sama dengan default.
  • Menambahkan ini ke ~/.Xresources: Emacs.font: Inconsolata LGC

    Kemudian pada init.el: (set-default-font "Inconsolata LGC"). Cerita yang sama.

Apa yang saya lakukan salah?

Maglight
sumber
Jika font berfungsi ketika Anda mengaturnya, tetapi hilang lagi saat berikutnya Anda memuat emacs, ini mungkin masalah dengan di mana pengaturan kustomisasi Anda (atau tidak) disimpan.
nispio
Saya menggunakan emacsclient dengan emacs dimulai sebagai daemon. Saya mengubah pengaturan di init.el dan setelah menyimpan restart daemon.
Maglight
2
Apakah ini khusus untuk Emacs 24.4? TKI, apakah Anda mendapatkan perilaku berbeda di build / rilis lain? Jika tidak, pertimbangkan untuk menghapus referensi ke 24.4.
Drew
Karena Anda memulai emacs sebagai daemon, periksa semua output konsol dari panggilan Anda ke emacs --daemondan pastikan tidak ada pesan kesalahan.
nispio
Saya memilikinya di init.el: (set-frame-font "Ubuntu Mono 11")
thdox

Jawaban:

29

Saya memiliki yang berikut ini di .emacs saya menggunakan Emacs untuk OSX:

(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 (:stipple nil :background "white" :foreground "black" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :height 130 :width normal :family "Inconsolata")))))

Pengaturan font

Paling mudah untuk mengatur font menggunakan menu jika Anda menjalankan Emacs di lingkungan grafis. Gunakan "Opsi -> Set Default Font ..." dari menu.

Sekarang, Anda belum selesai karena Anda hanya mengubah font sementara. Metode termudah yang saya tahu adalah menggunakan mode kustomisasi.

M-x customize-face RET default RET

Sekarang ubah opsi yang ingin Anda ubah, jika ada. Jika Anda telah mengubah font menggunakan menu, Anda akan melihat perubahan Anda di sini.

Menyimpan ke file init Anda

Simpan Untuk Sesi Masa Depan dengan salah satu dari:

  • Klik pada tombol State dan pilih Save For Future Sessions

atau

  • C-x C-s sementara di buffer Kustomisasi yang akan harus melakukan hal yang sama tetapi tidak selalu berhasil, misalnya setelah(set-default-font "Inconsolata")

Jika semuanya gagal ...

Anda mungkin beruntung dengan halaman Set Fonts .

Harvey
sumber
16

Saya menggunakan ini di init.el saya:

;; Set default font
(set-face-attribute 'default nil
                    :family "Source Code Pro"
                    :height 110
                    :weight 'normal
                    :width 'normal)

Anda bisa mencoba yang sama menggunakan Inconsolata, bukan Source Code Pro.

Boccaperta-IT
sumber
Menambahkannya di init.el. Setelah restart masih font secara default.
Maglight
Sudahkah Anda mengetik "InconsolataLGC" tanpa spasi kosong antara "Inconsolata" dan "LGC"?
Boccaperta-IT
Ya, saya juga mencoba mengaturnya ke Terminus.
Maglight
1
Coba jalankan fc-cache -fvdari terminal Anda. Mungkin font cache tidak mutakhir. Saya mencoba menyetel Anonymous Pro dan berfungsi pada saya.
Boccaperta-IT
Terima kasih, tetapi itu tidak membantu. Saya dapat mengatur font ini, tetapi Emacs tidak menyimpannya di sesi mendatang.
Maglight
12

Jika Anda mengubah sesuatu dalam file .Xresources maka Anda perlu membaca ulang untuk melihat perubahan pada sesi saat ini.

  • Untuk mempertahankan pengaturan sumber daya lama Anda dan menerapkan yang baru:

    xrdb -merge ~/.Xresources
    
  • Untuk membuang sumber daya lama Anda dan hanya menerapkan pengaturan dari. Sumber :

    xrdb ~/.Xresources
    

Penyesuaian dalam file .Xresources lebih baik, karena diterapkan sebelum memetakan jendela X11 emacs. Kustomisasi dalam file init (.emacs, .emacs.d /) diterapkan kembali ke jendela yang sudah dibuat. Misalnya, Anda dapat menghindari bilah alat "berkedip" saat startup ketika Anda menambahkan

! UI elements
Emacs.menuBar: 0
Emacs.toolBar: 0
Emacs.verticalScrollBars: off
! Font settings
Emacs.FontBackend: xft,x
Emacs.font: Inconsolata LGC:size=16

ke file .Xresources Anda .

Anda dapat memeriksa apa lagi yang tersedia di https://www.gnu.org/software/emacs/manual/html_node/emacs/X-Resources.html

kmicu
sumber
5

Ini selalu berfungsi setiap kali saya ingin mencoba font lain (taruh di file init.el atau .emacs Anda):

(push '(font . "Inconsolata") default-frame-alist)

atau

(add-to-list 'default-frame-alist '(font . "Inconsolata"))

Dalam hal ini kedua ekspresi adalah sama.

Singkatnya, formulir ini mengatur font untuk frame Emacs saat ini dan semua yang akan datang. Karena ini disimpan dalam file konfigurasi Anda, setup tidak hilang pada saat restart.

undostres
sumber