Emacs 字体设置的种种: Difference between revisions

From 清冽之泉
Jump to navigation Jump to search
No edit summary
Line 2: Line 2:


== 基础知识 ==
== 基础知识 ==
 
{| class="wikitable"
!face
!职责
|-
|<code>default</code>
|普通文本的基础,也是编程环境的默认字体
|-
|<code>fixed-pitch</code>
|明确要求等宽的内容,如代码、表格、代码块
|-
|<code>variable-pitch</code>
|适合文章阅读的比例字体
|-
|<code>variable-pitch-text</code>
|与 <code>variable-pitch</code> 类似,但默认稍大,更适合长文
|}
{| class="wikitable"
!字符类别
!一般由谁决定
|-
|英文、数字、普通标点
|<code>default</code>、<code>fixed-pitch</code>、<code>variable-pitch</code> 的字体家族
|-
|汉字
|fontset 中的 <code>han</code>
|-
|Emoji
|fontset 中的 <code>emoji</code>
|-
|特殊符号
|fontset 中的 <code>symbol</code> 或具体字符范围
|}
* default face 设置西文基础字体
* default face 设置西文基础字体
* fontset 设置中文等非拉丁字符
* fontset 设置中文等非拉丁字符

Revision as of 20:22, 14 July 2026

在 GUI 系统中,Emacs 自行决定字族、字号、粗体斜体、中文字体、Emoji 符号、回退链。在 TUI 系统中,由各桌面决定字体相关。

基础知识

face 职责
default 普通文本的基础,也是编程环境的默认字体
fixed-pitch 明确要求等宽的内容,如代码、表格、代码块
variable-pitch 适合文章阅读的比例字体
variable-pitch-text variable-pitch 类似,但默认稍大,更适合长文
字符类别 一般由谁决定
英文、数字、普通标点 defaultfixed-pitchvariable-pitch 的字体家族
汉字 fontset 中的 han
Emoji fontset 中的 emoji
特殊符号 fontset 中的 symbol 或具体字符范围
  • default face 设置西文基础字体
  • fontset 设置中文等非拉丁字符
  • append 表示备用,prepend 表示优先
  • 建议编程用等宽字体
  • 建议阅读用衬线字体
  • Org 写作用可选比例字体
  • pixelsize 依赖 DPI 和屏幕缩放比例,用 :height 可以表达更稳定的排版字号概念

字体设置极简总览:

;; 统一控制总体大小
(set-face-attribute 'default nil :height 160)

;; 中文只指定家族,让 Emacs 根据总体大小匹配
(set-fontset-font "fontset-default" 'han
                  (font-spec :family "Noto Sans CJK SC"))

(set-fontset-font t 'han
                  (font-spec :family "WenQuanYi Zen Hei")
                  nil
                  'append)

查看字体是否安装,可以 M-x eval-expression 执行

;; 字体查找,能找到就有,找不着就 nil
(find-font
 (font-spec :family "DejaVu Sans Mono"))

;; 查找实际使用的英文字体
(face-font 'default nil ?A)

;; 查找实际使用的中文字体
(face-font 'default nil ?中)