我正在寻找一些帮助,请与叠加一起控制粗体面孔。使用标准font-lock
方法,通常将:bold nil
放在另一个面上就可以防止它被打破。但是,在处理叠加层时,同样的概念似乎并不适用。在处理叠加层时,还有什么方法可以防止粗体渗透到其他面孔?
例如:当两个叠加重叠时,如何阻止tab-face
粗体打败hr-underscore-face
?
(defface tab-face
'((t (:foreground "cyan" :bold t)))
"Face for `tab-face`."
:group 'lawlist-ruler-faces)
(defface hr-underscore-face
'((t (:underline "yellow" :bold nil)))
"Face for `hr-underscore-face`."
:group 'lawlist-ruler-faces)
编辑(2014年6月19日):添加了示例.emacs
配置以重现问题,以及两个屏幕截图。需要根据用户自己的设置来设置ispell-program-name
的路径。
;; GNU Emacs 24.4.50.1 (x86_64-apple-darwin10.8.0,
;; NS appkit-1038.36 Version 10.6.8 (Build 10K549)) of 2014-06-01 on MP.local
(set-face-attribute 'default nil
:background "black" :foreground "white" :font "Courier" :height 180)
(tool-bar-mode -1)
(require 'ispell)
(require 'flyspell)
(setq-default ispell-program-name
"/Users/HOME/.0.data/.0.emacs/elpa/bin/aspell")
(custom-set-faces
'(flyspell-incorrect ((t (:foreground "yellow" :weight bold ))))
'(highlight ((t (:underline "yellow" :weight normal)))))
(defun zoom ()
(interactive)
(setq buffer-face-mode-face `(:height 575))
(buffer-face-mode 1))
(defun test-number-one ()
(interactive)
(switch-to-buffer (get-buffer-create "test-number-ONE"))
(zoom)
(turn-on-flyspell)
(setq flyspell-mark-duplications-flag nil)
(setq flyspell-duplicate-distance 0)
(hl-line-mode 1)
(insert
"This is `test-number-one`."
"\n"
"\n"
"Aabbccddeeffgghhiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz"
"\n"
"\n"
"Aabbccddeeffgghhiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz"))
(defun test-number-two ()
(interactive)
(switch-to-buffer (get-buffer-create "test-number-TWO"))
(zoom)
(hl-line-mode 1)
(insert
"This is `test-number-two`."
"\n"
"\n"
"Aabbccddeeffgghhiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz"
"\n"
"\n"
"Aabbccddeeffgghhiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz"))
在第一个示例中,下划线是粗体。 [但是,我想学习如何使下划线始终具有正常权重(即使文本的:foreground
为粗体)。]
Example http://www.lawlist.com/images/example_06_19_2014_a.png
在第二个示例中,下划线是 normal 。
Example http://www.lawlist.com/images/example_06_19_2014_b.png
答案 0 :(得分:2)
:bold
是兼容性别名。要获得更好的控制,请使用:weight
,例如
(defface hr-underscore-face
'((t (:underline "yellow" :weight normal)))
"Face for `hr-underscore-face`."
:group 'lawlist-ruler-faces)
答案 1 :(得分:1)
我没有看到您报告的问题,即使您发布的代码(尽管我同意@Stefan关于:weight normal
)。
评估你的代码我得到了这个,它显示了缓冲区中的黄色下划线和仅在最后一行上的粗体文本:
我错过了什么? (这是在文本模式下缓冲区,并且font-lock-mode
已关闭。)