解决Org-Mode表格不对齐问题

本文

主要针对org-mode中英文混合编辑时表格不对齐问题,提出一种有效解决方法。

版本 说明
0.1 初版发布

背景

  • 主机: Thinkpad S2
  • 系统: Deepin GNU/Linux 15.11
  • 内核: Debian 6.3.0-18+deb9u1
  • emacs版本:Linux GNU Emacs 26.3

参考

解决方法

利用更纱黑体这个字体来解决表格对齐的问题,因为更纱黑体字体通过融合现有字体实现中文字符的宽度刚好是英文字符宽度的两倍,以此来解决表格对齐的问题。

下载更纱黑体

本人使用deepin系统,内核是debian,没能通过apt-get获取字体库,只能使用手动安装。这里使用了清华大学开源软件镜像站,完成下载。

deepin自带字体安装器,所以解压后直接使用字体安装器安装即可。(由于其他系统的安装方法没有亲测,这里就不进行说明了)

emacs配置

把下面的配置放入 ~/.emacs 中即可

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
(let ((emacs-font-size 14)
      (emacs-font-name "WenQuanYi Micro Hei Mono"))
  (set-frame-font (format "%s-%s" (eval emacs-font-name) (eval emacs-font-size)))
  (set-fontset-font (frame-parameter nil 'font) 'unicode (eval emacs-font-name)))

(with-eval-after-load 'org
  (defun org-buffer-face-mode-variable ()
    (interactive)
    (make-face 'width-font-face)
    (set-face-attribute 'width-font-face nil :font "等距更纱黑体 SC 15")
    (setq buffer-face-mode-face 'width-font-face)
    (buffer-face-mode))

  (add-hook 'org-mode-hook 'org-buffer-face-mode-variable))

上面配置的意思是,默认Emacs使用文泉驿字体,Org-Mode使用更纱黑体字体,这样既可以解决Org-Mode表格对齐问题,又避免对Emacs其他模式产生影响。

以上内容来自参考文件,我在使用时仅设置了org-mode下的字体,因为其他模式下字体有我自己的设置。注意,字体“等距更纱黑体 SC 15”的字号不能随意设置,否则达不到对齐效果。


文章原创,可能存在部分错误,欢迎指正,联系邮箱 cao_arvin@163.com。