设置 AUCTeX:LaTeX-mode-hook 不起作用
Posted
技术标签:
【中文标题】设置 AUCTeX:LaTeX-mode-hook 不起作用【英文标题】:Setting up AUCTeX: LaTeX-mode-hook does not work 【发布时间】:2014-03-21 03:53:31 【问题描述】:我有一个奇怪的问题。当我像这样为 Latex 设置 AUCTeX 配置时
(require 'tex)
(TeX-global-PDF-mode t)
它对我有用。
但是当我通过放入 lambda
函数来更改代码时
(add-hook LaTeX-mode-hook (lambda ()
(require 'tex)
(TeX-global-PDF-mode t)
))
它不会起作用。
有人可以帮我吗?谢谢你。
【问题讨论】:
【参考方案1】:尝试在LaTeX-mode-hook
的左侧添加一个'
。另外,您需要(require 'tex)
之前使用LaTeX-mode-hook
。
因为库 AUCTeX 定义了变量 LaTeX-mode-hook
(即,使其存在),将 (require 'tex)
放在尚不存在的挂钩中将不起作用。 [见~/.emacs.d/elpa/auctex-11.87.3/latex.el
的第5017行)
(require 'tex)
(add-hook 'LaTeX-mode-hook (lambda ()
(TeX-global-PDF-mode t)
))
通常,我看到这个被使用:(setq TeX-PDF-mode t)
。但是,关于存在名为TeX-global-PDF-mode
的函数,原始海报是正确的——参见~/.emacs.d/elpa/auctex-11.87.3/tex.el
的第1729 行。
(来源:lawlist.com)
【讨论】:
哦,我的 Emacs 仍然无法根据您的建议运行。 我刚刚验证它有效。如果您创建一个名为foo.tex
的文件并(从该新缓冲区,即foo.tex
)使用M-x describe-variable RET TeX-PDF-mode RET
,您将看到该值为t
。您必须加载*.tex
文件才能触发LaTeX-mode-hook
。
确保(require 'package) (package-initialize)
在您的.emacs
文件的开头 -- 之前 任何与各种软件包安装相关的设置.我使用M-x list-packages
进行安装,版本为auctex-11.87.3
。
在进行故障排除时,通常最有用的方法是消除所有潜在的冲突——例如,使用几乎空白/空的.emacs
文件,只进行最低限度的配置。在这种情况下,最低配置是(require 'package) (package-initialize)
,后跟我的答案中的代码。如果此时它不能正常工作,那么 Emacs 或 AUCTeX 的安装有问题。在这种情况下,请备份您的资料并重新开始。
谢谢,我修改了程序中的错误。您的信息让我更快地解决问题。【参考方案2】:
如果您的“init.el”中有以下行,请删除。
(load "preview-latex.el" nil t t)
虽然“auctex-reademe.txt”中建议了该行,但我认为 以下更合适。
(load "preview" nil t t)
【讨论】:
以上是关于设置 AUCTeX:LaTeX-mode-hook 不起作用的主要内容,如果未能解决你的问题,请参考以下文章