【问题标题】:Setting up AUCTeX: LaTeX-mode-hook does not work设置 AUCTeX:LaTeX-mode-hook 不起作用
【发布时间】: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)
))

它不会起作用。

有人可以帮我吗?谢谢你。

【问题讨论】:

    标签: emacs lambda auctex


    【解决方案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)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-01-23
      • 1970-01-01
      • 1970-01-01
      • 2019-12-22
      • 1970-01-01
      • 2020-03-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多