如何正确设置 AUCTeX 来解析我自己的 *.sty 文件中的宏?

如何正确设置 AUCTeX 来解析我自己的 *.sty 文件中的宏?

我在 Windows 上。这是我文件中的代码,.emacs用于使 AUCTeX 能够识别我在自己的样式文件中定义的宏:

(setq TeX-parse-self t) ; Enable parse on load.
(setq TeX-auto-save t) ; Enable parse on save.
(setq-default TeX-master nil); https://www.gnu.org/software/auctex/manual/auctex.html
(setq TeX-auto-regexp-list t); https://tex.stackexchange.com/questions/47385/adding-custom-macros-to-completion-list-with-auctex
(setq TeX-auto-parse-length 999999)
(setq TeX-macro-private
      (list
        "./"
        "C:/Users/LilMonkey/texmf/tex/latex/local"))

逻辑:

无论如何,我仍然没有获得我在*.sty下的自己的文件中定义的宏的自动完成选项C:/Users/LilMonkey/texmf/tex/latex/local。我该怎么办?

答案1

我认为你误解了调用的方式TeX-auto-generate

  • TeX-auto-generate应该运行,因为(setq TeX-parse-self t)(setq TeX-auto-save t)

    设置这两个变量后,AUCTeX 仅解析当前 .tex 文件及其主文件或子文件。它还会解析通过加载的包,如果找到则\usepackage加载。AUCTeX 不会对未找到样式文件的包进行递归运行。 <package-name>.elTeX-auto-generate

    看着文档, 有:

    命令:TeX-auto-generate TEX AUTO
    M-x TeX-auto-generate RET 生成样式钩子特克斯并将其存储在汽车。 如果特克斯是一个目录,为目录中的所有文件生成样式挂钩。

    尝试M-x TeX-auto-generate RET c:/Users/LilMonkey/texmf/tex/latex/local/ RET。结果应该位于 中定义的目录中TeX-auto-private。注意:将解析的结果视为起点,您可能必须触及它们。

  • 其他变量设置根据此答案给出的建议

    我认为这句话是有害的:
    (setq TeX-auto-regexp-list t)

    再次来自文档

    多变的:TeX-auto-regexp-list

    与 TeX 宏定义匹配的正则表达式列表。

    该列表具有以下格式 ((REGEXP MATCH TABLE) …),即每个条目都是一个包含三个元素的列表。

    REGEXP。与我们要解析的宏匹配的正则表达式。

    MATCH。一个数字或数字列表,每个数字代表一个与 REGEXP 匹配的带括号的子表达式。

    TABLE。用于存储数据的符号表。这可以是一个函数,在这种情况下,使用参数 MATCH 调用该函数。使用 TeX-match-buffer 获取匹配数据。如果它不是函数,则假定它是一个包含匹配数据列表的变量的名称。匹配的数据(如果 MATCH 是数字,则为字符串;如果 MATCH 是数字列表,则为字符串列表)放在表的前面。

    我建议你不要触碰这个,因为它有一个合理的默认值(TeX-auto-full-regexp-list)。

    由于您正在重复默认操作,因此下一行
    (setq TeX-auto-parse-length 999999)
    也是不必要的。

  • (setq-default TeX-master nil)根据 AUCTeX 手册的建议,但我实际上没有看到 AUCTeX 向我查询主文件

    AUCTeX 不会询问是否TeX-master在 .tex 文件的局部变量中找到了设置。手动编辑该条目并点击C-c C-n

相关内容