让 AUCTeX 专门为一个文件折叠一些数学宏的最佳方法是什么?例如在这个非常简单的例子中:
\documentclass{minimal}
\newcommand{\foo}{\lambda}
\begin{document}
$\foo$
\end{document}
我想告诉 AUCTeX,在本文档中,并且仅在本文档中,折叠命令(C-c C-o C-b
以及此类命令)应将数学模式下的宏 \foo 折叠为字符串“λ”。我尝试将以下内容添加到文件中:
% Local Variables:
% eval: (add-to-list 'LaTeX-fold-math-spec-list '("λ" ("foo")))
% End:
但它不起作用。首先,更改是永久性的,也就是说,不是该文件的本地更改;其次,代码是在激活折叠模式后评估的,因此我需要重新加载文件才能看到效果。
答案1
代替
% eval: (add-to-list 'LaTeX-fold-math-spec-list '("λ" ("foo")))
使用
% eval: (add-to-list (make-variable-buffer-local 'LaTeX-fold-math-spec-list) '("λ" ("foo")))
% eval: (TeX-fold-mode 1)
第一行使LaTeX-fold-math-spec-list
缓冲区本地化并将自定义元素添加到 alist,第二行重新激活折叠模式。