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

deo*_*ong 6 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)))
Run Code Online (Sandbox Code Playgroud)

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

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

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

Iva*_*rus 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为不可变间距.