Org mode 中英混排对齐的问题

这是我的 emacs 相关配置(GNU/Debian)

(defun self-font()
  (interactive)
  (set-frame-font (format "%s:pixelsize=%d" "Monaco" 13) t)
  (dolist (charset '(kana han symbol cjk-misc bopomofo))
    (set-fontset-font (frame-parameter nil 'font) charset
                      (font-spec :family "Hiragino Sans GB W3" :size 16))))

(if window-system (self-font))

总的思路就是「中文字体 用 冬青黑体-16」, 「英文用 Monaco-13」
想要查询光标位置的字体可以用 C-u C-x =

效果如下
image

3 个赞

这种方式很清新脱俗呢, 不同的系统用不同的字体

。。。。。。。。。。。。。。。。。。。

哈哈,我学别人的,确实照顾多系统用户。

另外,你的代码中 (add-to-list…) 那一块我在最初的代码中试过,只是没有最后一行(if…),但是在ubuntu中不能正常加载中文字体,我怀疑这个add-to-list没用。

现在 chinese-fonts-setup 已经改名为: cnfonts 了

1 个赞

下载:Noto Sans Mono

下载并安装这个字体(很简单,自行百度)

(set-default-font "Noto Sans Mono" 11)

效果如下:

表格中英混排也解决了。 效果如下: emacs-table

3 个赞

有一个叫做 cnfonts的库,很好使。GitHub - tumashu/cnfonts: emacs中文字体配置工具。可以快速方便的的实现中文字体和英文字体等宽(也就是常说的中英文对齐)。

1 个赞

这个真漂亮!

我试了一些字体,等宽之后不能等高,不太好看。

想问一下,有没有可能通过调整字符间距来对齐?

我没有试过,字体客,这个网站上的字体可以预览并下载,你可以找一下现成的。

已使用,完美!

以下代码设置org-table的fontset,用C-u C-x =查看,中文生效了(全局是雅黑,表格变成宋体),英文没生效(全局是Source Code Pro,表格也是,没有变成Courier),咋回事儿?

    (set-face-attribute 'org-table nil
                    :fontset (create-fontset-from-fontset-spec
                              (concat "-*-*-*-*-*--*-*-*-*-*-*-fontset-orgtable"
                                      ",han:宋体:size=18"
                                      ",latin:Courier")))

describe-fontset是这样的:

C-@ .. DEL
     -*-Courier-*-*-*--*-*-*-*-*-*-*-*
(#xA0 .. #x24F)
     -*-Courier-*-*-*--*-*-*-*-*-*-*-*
 ....
(#x2E80 .. #x2FDF)
    -*-宋体-*-*-*--18-*-*-*-*-*-*-*
(#x3200 .. #x9FFF)
    -*-宋体-*-*-*--18-*-*-*-*-*-*-*
(#xA700 .. #xA7FF)
    -*-Courier-*-*-*--*-*-*-*-*-*-*-*
....

这个很棒 顶一下!

受到楼上哥们的启发, 提供一个不用 custom-faces 的一个办法, 这样可以单独设置 org-table 的字体, 使用一个中英文对齐的.

(set-face-attribute 'org-table nil :family "Sarasa Term TC")
3 个赞

并不一定需要Microsoft Yahei Mono字体,只要设置成中文字体就行了。这个问题是Emacs默认的中文字体不好导致的。

mac 下好用 赞。

这个坑是所有中文用户必

踩啊, :joy:

我在本论坛的第一帖好像也是在这回的

已经在论坛里混了两年了,真快

org打表格太方便给你们惯的 :joy:

每次用vscode做md表格又慢又丑,就知道为什么vsc用户不纠结对齐了

太棒了, 感谢.

这个真的好用。多谢