厉害了, 这个我是真的没有注意过.
很方便, 我天天都在用.
真的吗!太好了!开心!
我是碰到这样一个问题,我准备在org-mode中使用LaTeX-math-mode,所以我用了以下配置,
(use-package org
:init
(add-hook 'org-mode-hook 'LaTeX-math-mode))
由于LaTeX-math-mode本身没有载入,我这样做,
(use-package tex
:commands
LaTeX-math-mode)
到现在为止一切正常。问题在于,我在tex中添加了一些pretty symbol,换言之,我用以下的配置
(use-package tex
:commands
LaTeX-math-mode
:config
(add-to-list 'tex--prettify-symbols-alist '("\\varpi" . 982))
)
现在麻烦就出现了,如果我事先没有打开过其他tex文件,直接打开一个org文件的话,会提示我找不到tex--prettify-symbols-alist
这个符号。但是直接使用tex的话,是没有这种错误的。我只能猜测这种情况下,tex的相关el文件并没有完全加载。
检查一下,tex--prettify-symbols-alist
这个变量是定义在tex-mode.el这个主模式中,也许加载LaTeX-math-mode这个minor mode不会自动加载tex-mode,但奇怪的是不知为何会用到这里面的符号。
可以试试把(add-to-list 'tex--prettify-symbols-alist '("\\varpi" . 982))
加到tex-mode-hook 里,或者放到 tex-mode 加载之后?
(with-eval-after-load 'tex-mode
(add-to-list 'tex--prettify-symbols-alist '("\\varpi" . 982)))
这只是例子,你可以使用合适的 hook (e.g. eshell-first-time-mode-hook
)或者 advice。
另外,其他人给出的 toggle 函数也很方便。
谢谢帮助。我现在是直接用boundp检测这个符号是否存在,如果不存在直接跳过add-to-list的步骤。