如何管理emacs中的字体?

Cha*_*ton 1 emacs

在 emacs 中管理字体设置是否有任何标准技术、软件包等?

我想在某处定义默认的固定和可变宽度字体,并使用这些默认值在模式中设置人脸的字体。例如,将 org-mode 的默认字体设置为可变宽度默认值,并将其代码面设置为固定宽度默认值。

Chr*_*han 5

这是我所拥有的系统的改编版。我已经默认使用固定间距,但是这些调用将允许您使用模式挂钩定义用于模式的字体。

必要时,我也调用方法 'toggle-pitch 在固定和可变间距字体之间切换。

(set-face-font 'default "Source Code Pro Semibold-9")
(set-face-font 'variable-pitch "Segoe UI Semibold-9")
(copy-face 'default 'fixed-pitch)

;;============================================================
;; toggle between variable pitch and fixed pitch font for 
;; the current buffer
(defun fixed-pitch-mode ()
  (buffer-face-mode -1))

(defun variable-pitch-mode ()
  (buffer-face-mode t))

(defun toggle-pitch (&optional arg)
  "Switch between the `fixed-pitch' face and the `variable-pitch' face"
  (interactive)
  (buffer-face-toggle 'variable-pitch))

;; enable buffer-face mode to provide buffer-local fonts
(buffer-face-mode)

;; Set the fonts to format correctly
;(add-hook 'text-mode-hook 'fixed-pitch-mode)
;(add-hook 'dired-mode-hook 'fixed-pitch-mode)
;(add-hook 'calendar-mode-hook 'fixed-pitch-mode)
;(add-hook 'org-agenda-mode-hook 'fixed-pitch-mode)
;(add-hook 'shell-mode-hook 'fixed-pitch-mode)
;(add-hook 'eshell-mode-hook 'fixed-pitch-mode)
;(add-hook 'bs-mode-hook 'fixed-pitch-mode)
;(add-hook 'w3m-mode-hook 'variable-pitch-mode)
;(add-hook 'org-mode-hook 'variable-pitch-mode)
(add-hook 'eww-mode-hook 'variable-pitch-mode)
Run Code Online (Sandbox Code Playgroud)