6

诚然,这是第一个世界问题,但我对显示器的外观有点挑剔,当某些模式设置新的字体大小、系列、粗体/斜体等时,我发现它真的很烦人。想要做的是将(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。

4

1 回答 1

5

将光标放在您感兴趣的面上运行customize-face,您可以查看该面是如何定义的(并更改它)。在部分标题上执行此操作给了我font-latex-sectioning-1-face. 这继承自font-latex-sectioning-2-faceetc. down to font-latex-sectioning-5-facewhich 又继承 form variable-pitch(这就是改变字体系列的原因)。该文档还提到最好更改 base facefont-latex-sectioning-5-face或 variable font-latex-fontify-sectioning。您可以将其设置为最后一个,以'color执行您想要的操作(我认为)。或者,您可以自定义font-latex-sectioning-5-face不继承自variable-pitch,或更改variable-pitch为不可变音高。

于 2011-10-23T12:18:13.347 回答