org-mode中是否使用variable-pitch字体,表格是否使用fixed-pitch字体?

23

我在StackOverflow的一个帖子中发现了variable-pitch-mode,在使用org-mode时非常方便,更加舒适和易读。但是当使用比例字体时,在org-mode中使用表格几乎没有意义。而使用表格是org-mode的优势之一:-(

有没有办法在org-mode中对文本、标题等使用比例字体,而对表格使用等宽字体?

2个回答

23

请尝试使用以下代码:

(set-face-attribute 'org-table nil :inherit 'fixed-pitch)

您可以使用C-u C-x =查看在特定位置生效的样式。


太棒了!正好符合我的要求 :) - monotux
2
你是怎么发现这个表是'org-table的? 我想在SQL缓冲区的输出上使用这个解决方案。 - EoghanM
1
@EoghanM:如果“C-u C-x =”没有给出“face”或“font-lock-face”的名称,那么生效的面孔将是默认的“default”。上述方法仅适用于缓冲区在字体锁定模式下突出显示或以不同面孔标记的情况。 - huaiyuan
1
出于某种原因,尽管运行describe-face告诉我字体应该从“fixed-pitch”(或在我的情况下仅为“default”)继承,但显示的字体仍然是“variable-pitch”... - xji
没关系,似乎是 buffer-local-theme 包引起了这个 bug。 - xji
跟进问题:我如何使其也影响表格内的链接? - Timm

12

这段代码将使表格、ASCII艺术和源代码块以等宽字体显示,同时保留表格的其他字体属性(如蓝色)等。代码基于另一个答案,唯一的区别是保留。

(defun my-adjoin-to-list-or-symbol (element list-or-symbol)
  (let ((list (if (not (listp list-or-symbol))
                  (list list-or-symbol)
                list-or-symbol)))
    (require 'cl-lib)
    (cl-adjoin element list)))

(eval-after-load "org"
  '(mapc
    (lambda (face)
      (set-face-attribute
       face nil
       :inherit
       (my-adjoin-to-list-or-symbol
        'fixed-pitch
        (face-attribute face :inherit))))
    (list 'org-code 'org-block 'org-table 'org-block-background)))

如果你想学习这个是如何工作的,并且如何应用到其他情况(例如信息模式),请阅读我的这篇文章


由于某些原因,尽管运行“describe-face”告诉我字体应该继承自“fixed-pitch”(或者在我的情况下只是“default”),但显示的字体仍然是“variable-pitch”... - xji
没关系,似乎是 buffer-local-theme 包引起了这个 bug。 - xji

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接