诚然,这是一个第一世界的问题,但我对显示器的外观有点挑剔,当某些模式设置新的字体大小、系列、粗体/斜体等时,我发现这真的很烦人。我想做的是把(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。
光标放在您感兴趣的脸上运行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
更改为不可变音高。