バックスラッシュ 1 つだけ、バックスラッシュ 2 つだけ、チルダとバックスラッシュ 2 つを一致させることができるかどうかを知りたいです。Emacs をラテックス モードで使用しており、font-lock のキーワードを設定しています。単一のバックスラッシュをキーワードとして定義すると、他のさまざまな定義が混乱します。バックスラッシュを 1 つ赤くしたいのですが。2 つのバックスラッシュは青色です。チルダ + 2 つのバックスラッシュは緑色になります。チルダが問題になるとは思いませんが、それ自体を赤くしたいと思います。私は font-lock-add-keywords フォーマットを持っていますが、このタイプの状況のための特別な正規表現は持っていません。これは、前後に \b を使用する状況に似ていますが、私の知る限り、バックスラッシュでは機能しません。
~
- 赤
\
-- 赤、except
英数字に触れると。
\\
- 青い
~\\
- 緑
(defvar lawlist-face-a (make-face 'lawlist-face-a))
(set-face-attribute 'lawlist-face-a nil :foreground "red" :bold t)
(defvar lawlist-face-b (make-face 'lawlist-face-b))
(set-face-attribute 'lawlist-face-b nil :foreground "blue" :bold t)
(defvar lawlist-face-c (make-face 'lawlist-face-c))
(set-face-attribute 'lawlist-face-c nil :foreground "green" :bold t)
(font-lock-add-keywords 'latex-mode '(
("~\\|\\\\" 0 lawlist-face-a prepend)
("\\\\\\\\" 0 lawlist-face-b prepend)
("~\\\\\\\\" 0 lawlist-face-c prepend)
))
上記の例のコンテキストでは、単一のバックスラッシュを定義すると、行 280 ~ 285font-latex.el
内の事前定義された警告が無効になります。auctex-11.86
コードの 4 行目から を削除して"\\"
も、状況は改善されません。\newpage
たとえば、タイピングは関連付けられなくなりましたfont-latex-warning-face
-- 代わりに、割り当てられた未定義として表示されfont-latex-sedate-face
ます。
(defvar font-latex-built-in-keyword-classes
'(("warning"
("nopagebreak" "pagebreak" "newpage" "clearpage" "cleardoublepage"
"enlargethispage" "nolinebreak" "linebreak" "newline" "-" "\\*" "\\"
"appendix" "displaybreak" "allowdisplaybreaks" "include")
'font-latex-warning-face 1 noarg)
バッファの例 -- latex-mode:
\newpage
-- フォントフェイスはfont-latex-warning-face
\newpage
font-latex-sedate-face
--上記のように単一のバックスラッシュを定義した場合のように、フォント フェースが誤って表示されます。
編集 -- トラブルシューティング -- テスト --re-builder
および LaTeX ドキュメントのスクリーンショット:
\\(\\\\\\)[^a-zA-Z@]
(出典: lawlist.com )
(出典: lawlist.com )
(defvar lawlist-face-a (make-face 'lawlist-face-a))
(set-face-attribute 'lawlist-face-a nil :background "black" :foreground "red" :bold t)
(defvar lawlist-face-b (make-face 'lawlist-face-b))
(set-face-attribute 'lawlist-face-b nil :foreground "blue" :bold t)
(defvar lawlist-face-c (make-face 'lawlist-face-c))
(set-face-attribute 'lawlist-face-c nil :foreground "green" :bold t)
(font-lock-add-keywords 'latex-mode
'(("~\\|\\(\\\\\\)[^a-zA-Z@]" 0 lawlist-face-a prepend)
("\\\\\\\\" 0 lawlist-face-b prepend)
("~\\\\\\\\" 0 lawlist-face-c prepend)))
(出典: lawlist.com )