3

我正在使用 Emacs/AucTeX 来编辑 LaTeX 文件。在我的一些 LaTeX 文件中,我定义了一些“特定于文件”的命令(例如\todo{...},在一个文件中,\compute{...}在另一个文件中,等等),因此我可以跟踪我的文档中存在哪些未解决的问题。

Emacs 命令在突出显示所有出现的s resphighlight-regexp方面做得很好。s。但到目前为止,每次打开相应文件时,我都必须手动执行突出显示。\todo{...}\compute{...}

有没有办法告诉 Emacs/AucTeX 在打开特定文件时调用特定命令?我想在相应的文件中定义这些命令这样我就可以很容易地为不同的文件调整它(可能包含在局部变量中)。

%%% Local Variables: 
%%% mode: latex
%%% TeX-master: "master"
%%%
%%% here I would like to have something like:
%%% execute highlight-regexp for specific arguments
%%%
%%% End: 
4

3 回答 3

5

尝试这个,

%%% Local Variables: 
%%% eval: (font-lock-add-keywords nil '(("\\\\todo" (0 font-lock-warning-face))))
%%% End: 

有关更多详细信息,请参阅第 57.3.4.1 节,指定文件变量

于 2010-07-08T14:42:22.477 回答
2

在使用highlight-regexp设置您的突出显示后,hi-lock-write-interactive-patterns(Ms hw)会将模式作为魔术注释写入缓冲区。

您可能还想mode: hi-lock在该mode: latex行之后添加一个,以便在打开文件后立即激活突出显示。

于 2010-07-09T15:55:46.243 回答
2

您可以将钩子与本地变量结合使用。例如,您可以添加一个局部变量dohighlight或其他东西,然后编写如下函数:

(defun condhighl ()
 (when (boundp 'dohighlight)
 (highlight-regexp "regexp")))

然后将该函数添加为 AucTex 的钩子

(add-hook 'tex-mode-hook 'condhighl)

然后,您可以将本地变量中的 dohighlight 变量添加到要突出显示代码的缓冲区中。

于 2010-07-08T13:26:33.660 回答