我正在使用 KOMA 脚本,它提供字母类别选项的使用,可以存储在文件中:*.lco。
我在“zrp.lco”中定义的一个命令非常简单:
\newcommand{\Beweis}[1]{Beweis: #1}
现在我想教 Emacs 了解这个命令。我尝试将其放入我的 .emacs 中:
(TeX-add-style-hook
"zrp"
(lambda ()
(TeX-add-symbols
'("Beweis" 1))))
但是 Emacs 在加载时出现错误:
eval-buffer: Symbol's function definition is void: TeX-add-style-hook
怎么了?
答案1
添加对新样式文件的支持的正确方法是创建一个样式钩子文件,如AUCTeX 手册。
请注意,您可以为发出的 *TeX 源自动生成样式挂钩文件M-x TeX-auto-generate
RET,请参阅自动为用户定制。
如果您想将样式钩子放在 中.emacs
,则必须将其插入 中,eval-after-load
以便它仅在加载 AUCTeX 时运行。具体来说,您的代码应更改为
(eval-after-load "latex"
'(progn
(TeX-add-style-hook
"zrp"
(lambda ()
(TeX-add-symbols
'("Beweis" 1))))))
注意,定义的钩子只有在明确指定的情况下才会自动执行
\usepackage{zrp}
在你的 LaTeX 代码中,否则你必须使用
(TeX-run-style-hooks "zrp")
来运行它。
答案2
切换到 AucTeX 11.88 后,我重新审视了这个问题。TeX-add-style-hook 现在有一个第三个论点我为我的 .emacs 文件找到了这个简单的解决方案:
(add-hook 'LaTeX-mode-hook
(lambda ()
(TeX-add-symbols
'("Beweis" 1)
'("AnlageK" t)
'("AnlageB" t)
'("signed" 1)
)))
如果有更聪明的人注意到这个解决方案的缺点,请发表评论。