怎样单独控制 org 中标题、表格的字体?

我已经使用了等距更纱黑体在一台电脑上【Tinkpad S2】实现了对齐和有区别的标题字体效果,这应该是最简单的方法。但是我换了一台电脑【Tinkpad X1 Carbon】后,同样的配置,表格就不对齐了!(除了两台电脑显示器尺寸不一样,我想不出还有什么原因),以下折腾都是想解决第2台奇葩电脑上的显示问题。

方式1:我使用了cnfonts,这应该是对付对齐问题的大招了,不负所期,cnfonts确实能搞定对齐,但是它使得整个org文件使用了同一种大小的字体。正如呆神在 cnfonts 的readme 中所说 (setq cnfonts-use-face-font-rescale t)可以让不同的标题使用的字体大小不同,但我是在 window 系统下使用,它会让对齐功能失效

方式2:我进行了字体单独设置:

  1. 修改默认字体(参考 cnfonts):
(set-face-attribute
 'default nil
 :font (font-spec :name "-outline-等距更纱黑体 SC-bold-italic-normal-mono-*-*-*-*-c-*-iso10646-1"
                  :weight 'normal
                  :slant 'normal
                  :size 14.0))
  1. 设置 headline 字体:
(set-face-attribute 'org-level-1 nil :height 260 :bold t)
(set-face-attribute 'org-level-2 nil :height 230 :bold t)
(set-face-attribute 'org-level-3 nil :height 200 :bold t)
(set-face-attribute 'org-level-4 nil :height 180 :bold t)

感觉经过这两步应该能搞定了,但其实不然。再加上一步对表格字体显示地修改,也没有用:

  1. 设置表格字体
(set-face-attribute 'org-table  nil  :font "等距更纱黑体 SC 14"
                     :fontset (create-fontset-from-fontset-spec (concat "-*-*-*-*-*--*-*-*-*-*-*-fontset-orgtable" ",han:等距更纱黑体 SC 14")))

我实在想不出还有什么招可以用了,请大神支支招

我是这样单独设置org标题字体大小和颜色的, 你可以试试

 ;; 设置org标题1-8级的字体大小和颜色,颜色摘抄自monokai。;希望org-mode标题的字体大小和正文一致,设成1.0, 如果希望标题字体大一点可以设成1.2
(custom-set-faces

  '(org-level-1 ((t (:inherit outline-1 :height 1.2  :foreground "#FD971F")))) 
  '(org-level-2 ((t (:inherit outline-2 :height 1.2  :foreground "#A6E22E")))) 
  '(org-level-3 ((t (:inherit outline-3 :height 1.2  :foreground "#66D9EF")))) 
  '(org-level-4 ((t (:inherit outline-4 :height 1.2  :foreground "#E6DB74")))) 
  '(org-level-5 ((t (:inherit outline-5 :height 1.2  :foreground "#A1EFE4")))) 
  '(org-level-6 ((t (:inherit outline-6 :height 1.2  :foreground "#A6E22E")))) 
  '(org-level-7 ((t (:inherit outline-7 :height 1.2  :foreground "#F92672")))) 
  '(org-level-8 ((t (:inherit outline-8 :height 1.2  :foreground "#66D9EF")))) 

 ) ;; end custom-set-faces

1赞

能否追加个问题: 如何单独控制特定部分的org内容的HTML输出,比如大小,字体,颜色等样式? 谢谢 ~

这是另外一个问题,设置org导出的css样式就可以了。

表格对齐可以采用Inconsolata+华文楷体。 我用consolas+华文楷体(缩放1.1) 具体设置可以参考另外一个帖子字体设置

1赞

更纱黑体字体大小稍微调一下就可以对齐。

不同系统的渲染宽度有区别