关于繁体字、Rime、Emacs 的两个痛点

痛点一

在 emacs 中用了两种字体:

(defun set-font (english chinese english-size chinese-size)
      (set-face-attribute 'default nil :font
                          (format   "%s:pixelsize=%d"  english english-size))
      (dolist (charset '(kana han symbol cjk-misc bopomofo))
        (set-fontset-font (frame-parameter nil 'font) charset
                          (font-spec :family chinese :size chinese-size))))
(set-font "DejaVu Serif" "TW-MOE-Std-Kai" 28 28)

英文用 DejaVu Serif,中文用 TW-MOE-Std-Kai。

显示效果:

如上图,图中的“亲爱”“顾”“欢乐”等简体字,均被 Emacs 主动用 WenQ-WenQuanYi Zen Hei 显示的。

疑问:如何设置此 WenQ-WenQuanYi Zen Hei 字体的字号?

简而言之,设置了第一种字体,DejaVu Serif 28;第二种字体 TW-MOE-Std-Kai 28;如何设置第三种字体 WenQ-WenQuanYi Zen Hei 且字号为 28?



痛点二

在 Word 中使用小狼毫输入法,原本字体是等线,一用小狼毫输入,字体就变成了 PMingLIU。

多个字軆這像設置

https://github.com/nasyxx/emacs.d/tree/master/literate-config/ui#font

簡單徠說就是

(dolist (charset '(kana han symbol cjk-misc bopomofo))
        (set-fontset-font (frame-parameter nil 'font) charset
                          (font-spec :family font2 :size chinese-size) 'prepend)
        (set-fontset-font (frame-parameter nil 'font) charset
                          (font-spec :family font1 :size chinese-size) 'prepend))
2 个赞
(defun q-font (english han bopomofo english-size han-size bopomofo-size)
      (set-face-attribute 'default nil :font
                          (format   "%s:pixelsize=%d"  english english-size))
      (dolist (charset '(kana han symbol cjk-misc bopomofo))
        (set-fontset-font (frame-parameter nil 'font) charset
                          (font-spec :family han :size han-size))
	 (set-fontset-font (frame-parameter nil 'font) charset
                          (font-spec :family bopomofo :size bopomofo-size))
	))
(q-font "DejaVu Serif" "WenQuanYi Micro Hei" "TW-MOE-Std-Kai" 28 28 28)

请问是这样吗?

q-font 参数 han/bopomofo 和后面的 charset 里面的重合了哦w

1 个赞
(defun set-font (english chinese chinese-tw english-size chinese-size chinese-tw-size)
      (set-face-attribute 'default nil :font
                          (format   "%s:pixelsize=%d"  english english-size))
      (dolist (charset '(kana han symbol cjk-misc bopomofo))
        (set-fontset-font (frame-parameter nil 'font) charset
                          (font-spec :family chinese :size chinese-size))
	(set-fontset-font (frame-parameter nil 'font) charset
                          (font-spec :family chinese-tw :size chinese-tw-size))

	)
      
      )
(set-font "DejaVu Serif" "WenQuanYi Micro Hei" "TW-MOE-Std-Kai" 28 28 28)

请问是这样吗?能否教教我怎么写 :blush:

痛点二我自己解决了,是小狼毫安装选项导致的。若长期在 Word 中使用简体中文,则下图展示了正确的安装选项:

20210418164415.png-中文

unifont: 这些痛点我都没有

或许应该出个命令行工具用来合并喜欢的多个字体为一个

1 个赞

楼主可以试试我的字体配置,也是参考论坛中大佬的设置。中文和英文可以分开设置字体和大小。 表情字体不用的话,可以去掉。

(when (eq system-type 'windows-nt)
  (setq fonts '("Consolas" "Microsoft YaHei"))
  (set-fontset-font t 'unicode "Segoe UI Emoji" nil 'prepend)
  (set-face-attribute 'default nil :font
                      (format "%s:pixelsize=%d" (car fonts) 24)))

(when (eq system-type 'gnu/linux)
  (setq fonts '("SF Mono" "Noto Sans Mono CJK SC"))
  (set-fontset-font t 'unicode "Noto Color Emoji" nil 'prepend)
  (set-face-attribute 'default nil :font
                      (format "%s:pixelsize=%d" (car fonts) 24)))

(if (display-graphic-p)
    (dolist (charset '(kana han symbol cjk-misc bopomofo))
      (set-fontset-font (frame-parameter nil 'font) charset
                        (font-spec :family (car (cdr fonts))))))
2 个赞

是的(紫薯布丁

建议:

  1. 帖子分类改为 Emacs-general
  2. 标题应该表明求助的意思,而不是吐槽
  3. 勿轻易使用“痛点”这样的字眼
  1. 问题二 Windows Rimer 才会遇到,发 windows 版更有针对性
  2. 两种中文字体大小不一,无法正常使用,折磨许久,是痛点。尿点为吐槽,痛点非吐槽
  3. 非轻易
  4. 发贴一段时间过后,用户好像无权删改自己的贴子

所谓【痛点】就是没有现成的解决方案,并不是因为它困扰你很久。你遇到的显然都是可以解决的问题,你需要的只是问别人或自己钻研。

标题应该用一句话简练概括主题内容,比较以下两种表达方式:

  1. 关于字体的问题
  2. 如何映射多个字体?

如果一句话概括不了,应该考虑拆分主题。

可以解决的才叫痛点,它倾向于比较解决前的痛和解决后的爽。没有现成解决方案的叫难点。这是我原本的理解。

我的主题就是在 Emacs 中输入繁体字的不爽,及用小狼毫在 Word 中输入繁体字时的不爽,想顺畅用,就称之为痛点了。

理解你的意思了,你预设的是此贴讲述遇到的痛点及解决方案,而点进来看才发现没有解决方案,认为被我的标题误导了,且不认为这够得上痛点的程度。

我下次起标题会更严谨,谢谢指教。若你有更好的标题拟法且有权限,可以改掉这个标题,谢谢 :smile:

问题一解决了,谢谢 Nasy、aqua0210 的启发。

核心代码:

(set-face-attribute 'default nil :font "DejaVu Serif:pixelsize=28")
(set-fontset-font t 'han "TW-MOE-Std-Kai:pixelsize=28")
(set-fontset-font t 'han "WenQuanYi Zen Hei:pixelsize=23" nil 'append)

显示效果:

1 个赞