有没有办法防止字体锁定更改字体系列(并仅更改颜色)?

时间:2011-10-22 15:24:23

标签: emacs font-lock emacs-faces

不可否认,这是一个第一世界的问题,但我对显示器的外观有点挑剔,我发现当某些模式设置新的字体大小,系列,粗体/斜体等时它真的很烦人我想做的是将(set-frame-font "Menlo-10")放在我的.emacs顶部附近,然后强制emacs永远不会更改除默认字体以外的任何方面。

我可以通过这样做来获得我想要的效果:

(mapc (lambda (face) 
    (set-face-attribute face nil
                        :family "Menlo"
                        ;; something like (cdr (assoc 'font (frame-parameters)) would be better
                        ;; for the :family, but it didn't immediately work
                        :width 'normal
                        :height 1.0
                        :weight 'normal 
                        :underline nil
                        :slant 'normal))
    (remove 'default (face-list)))

但这只有在我加载了一个新的缓冲区后才能生效,这个缓冲区已经创建了要改变的字体锁面,​​而且无论如何都是一个可怕的黑客攻击。我怀疑在字体锁定方面没有真正用于忽略模式请求的某些部分,但我想我会问。

此外,AUCTeX是迄今为止最糟糕的攻击者,所以如果在某个地方交替使用AUCTeX设置以防止它首先要求改变族,大小等,这至少会使问题变得烦人

我目前正在使用最近从HEAD撤出的Emacs 24。

1 个答案:

答案 0 :(得分:5)

将光标放在您感兴趣的脸部上运行customize-face将允许您查看该面部的定义方式(并进行更改)。在章节标题上执行此操作会给我font-latex-sectioning-1-face。这从font-latex-sectioning-2-face等继承到font-latex-sectioning-5-face,后者又继承了variable-pitch形式(这是改变字体系列的原因)。文档还提到最好更改基准面font-latex-sectioning-5-face或变量font-latex-fontify-sectioning。你可以将它设置为最后'color,它会做你想要的(我认为)。或者,您可以将font-latex-sectioning-5-face自定义为不从variable-pitch继承,或将variable-pitch更改为不变距。

相关问题