Org mode 中英混排对齐的问题


#41

这是我的 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


#42

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


#43

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


#44

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

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


#45

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


#46

下载:Noto Sans Mono

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

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

效果如下:

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


#47

有一个叫做 cnfonts的库,很好使。https://github.com/tumashu/cnfonts


#48

这个真漂亮!


#49

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

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


#50

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


#51

已使用,完美!


#52

以下代码设置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-*-*-*--*-*-*-*-*-*-*-*
....

#53

这个很棒 顶一下!


#54

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

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

#55

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