如何在 emacs 中管理字体?
How to manage fonts in emacs?
是否有用于管理 emacs 中的字体设置的标准技术、程序包等?
我想在某处定义一次默认的固定和可变宽度字体,并使用这些默认值在模式中设置面部字体。例如,将 org-mode 的默认字体设置为可变宽度默认值,并将其代码面设置为固定固定宽度默认值。
我终于这样解决了:
首先设置固定间距和可变间距字体以供一般使用:
(custom-set-faces
'(fixed-pitch ((t (:family "Input Mono Narrow"))))
'(variable-pitch ((t (:family "Arial")))))
然后在你的模式的钩子中:
(add-hook 'org-mode-hook nil :inherit 'variable-pitch)
这是对我现有的系统的改编。我已经默认使用固定间距,但这些调用将允许您使用模式挂钩定义用于模式的字体。
我调用方法 '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)
一个非常有用的设置面孔的方法是使用 M-x list-faces-display 函数。这个函数会弹出一个缓冲区,左边是人脸名称,右边是例子。然后,此缓冲区允许您自定义任何面孔并查看面孔定义是什么。一种可能 'gotcha' 是它只会显示在您 运行 函数时它知道的面孔。这意味着如果你没有加载 org-mode,你可能看不到任何 org-mode 面部定义。
定义面时有用的选项之一是继承选项,它告诉面继承另一个面的设置。在 'main' 面部定义中可以覆盖某些继承值(例如面部颜色)。
因此,在您的情况下,我会为默认的固定宽度和可变宽度字体设置适当的值,然后设置其他面孔,即 org-mode 面孔以继承这些定义。
以这种方式进行操作将消除进行任何附加钩子游戏的需要
是否有用于管理 emacs 中的字体设置的标准技术、程序包等?
我想在某处定义一次默认的固定和可变宽度字体,并使用这些默认值在模式中设置面部字体。例如,将 org-mode 的默认字体设置为可变宽度默认值,并将其代码面设置为固定固定宽度默认值。
我终于这样解决了:
首先设置固定间距和可变间距字体以供一般使用:
(custom-set-faces
'(fixed-pitch ((t (:family "Input Mono Narrow"))))
'(variable-pitch ((t (:family "Arial")))))
然后在你的模式的钩子中:
(add-hook 'org-mode-hook nil :inherit 'variable-pitch)
这是对我现有的系统的改编。我已经默认使用固定间距,但这些调用将允许您使用模式挂钩定义用于模式的字体。
我调用方法 '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)
一个非常有用的设置面孔的方法是使用 M-x list-faces-display 函数。这个函数会弹出一个缓冲区,左边是人脸名称,右边是例子。然后,此缓冲区允许您自定义任何面孔并查看面孔定义是什么。一种可能 'gotcha' 是它只会显示在您 运行 函数时它知道的面孔。这意味着如果你没有加载 org-mode,你可能看不到任何 org-mode 面部定义。
定义面时有用的选项之一是继承选项,它告诉面继承另一个面的设置。在 'main' 面部定义中可以覆盖某些继承值(例如面部颜色)。
因此,在您的情况下,我会为默认的固定宽度和可变宽度字体设置适当的值,然后设置其他面孔,即 org-mode 面孔以继承这些定义。
以这种方式进行操作将消除进行任何附加钩子游戏的需要