0
乳膠模式,有什麼辦法可以獲得超過三(3)級突出顯示?latex-mode/font-lock:以任何方式獲取超過三(3)級突出顯示?
我想控制三級以上的突出顯示,但是,它看起來好像乳膠模式可能限制爲三(3)級別。我這樣說是因爲Emacs在嘗試第四級時抱怨 - Error during redisplay: (jit-lock-function 1) signaled (wrong-type-argument listp prepend)
。以下僅是一個嘗試控制四(4)級的例子,它給出了上面列出的錯誤消息。
(defvar lawlist-face-a (make-face 'lawlist-face-a))
(set-face-attribute 'lawlist-face-a nil :foreground "orange")
(defvar lawlist-face-b (make-face 'lawlist-face-b))
(set-face-attribute 'lawlist-face-b nil :foreground "cyan")
(defvar lawlist-face-c (make-face 'lawlist-face-c))
(set-face-attribute 'lawlist-face-c nil :foreground "blue")
(defvar lawlist-face-d (make-face 'lawlist-face-d))
(set-face-attribute 'lawlist-face-d nil :foreground "red")
(font-lock-add-keywords 'latex-mode '(
("\\(\\\\begin\\|\\\\end\\)\\(\{\\)\\(document\\)\\(\}\\)" (1 lawlist-face-a) (2 lawlist-face-b) (3 lawlist-face-c) (4 lawlist-face-d) prepend)
))
我嘗試添加(setq font-lock-support-mode 'lazy-lock-mode)
,造成冷凍。我也試過添加(setq font-lock-maximum-decoration t)
,這似乎沒有任何明顯的效果。
這一切固定 - 謝謝你這麼多!!!!! – lawlist
我今天已經注意到,如果有其他定義可能會發生衝突,例如「begin」當然是最常見的命令之一併且自定義顏色之一,那麼在每個自定義面後面添加字母「t」是必要的需要額外的't'使一切正常工作。 – lawlist
你在這裏混淆了兩件事。 'font-lock-add-keywords'的第三個參數控制了這些關鍵字被添加到現有關鍵字的方式。通過使用非零(而不是'set'),關鍵字被*附加到現有集合,即* prepend *的相反部分。另一方面,'prepend'可以用在一個規則裏面來告訴font-lock在其他現有顏色前添加它的顏色,然而,你需要爲每個高亮規則指定它,如'(1 lawlist-面對一個前置)(2法律名單 - 面臨b前置)......。 – Lindydancer