是否有任何标准技术,软件包等用于管理emacs中的字体设置?
我想在某处定义默认的固定和可变宽度字体,并使用这些默认值在模式中设置面的字体。例如,将org-mode的默认字体设置为可变宽度默认值,并将其代码面设置为固定宽度默认值。
答案 0 :(得分:3)
这是我对系统的改编。我从默认使用固定音高,但这些调用将允许您使用模式挂钩定义用于模式的字体。
我打电话给方法'切换音高,以便在必要时动态切换固定和可变音高字体。
(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)
答案 1 :(得分:2)
设置面部非常有用的方法是使用M-x list-faces-display功能。此功能将弹出一个缓冲区,左侧是面部名称,右侧是一个示例。然后,此缓冲区允许您自定义任何面,并查看面定义。一个可能的'陷阱'是它只会在你运行该功能时显示它知道的面孔。这意味着,如果您还没有加载org-mode,则可能看不到任何组织模式的面定义。
定义面部时的一个有用选项是继承选项,它告诉面部继承另一个面部的设置。一些继承的值可以在' main'中被覆盖(例如面部颜色)。面部定义。
因此,在您的情况下,我会为默认的固定和可变宽度字体设置适当的值,然后设置其他面,即org-mode faces继承这些定义。
以这种方式做到shold消除了做任何add-hook jiggery pokery的需要
答案 2 :(得分:0)
我终于解决了这个问题:
首先设置固定音高和可变音高字体以供一般使用:
(custom-set-faces
'(fixed-pitch ((t (:family "Input Mono Narrow"))))
'(variable-pitch ((t (:family "Arial")))))
然后在您的模式的钩子中:
(add-hook 'org-mode-hook nil :inherit 'variable-pitch)