我如何告诉 AUCteX 有关自定义宏和包含的包?

我如何告诉 AUCteX 有关自定义宏和包含的包?

之前已经问过类似的问题,因此这篇文章可能是重复的:

我尝试遵循上面链接的帖子中给出的建议,并且对我的自定义宏提供部分工作支持 - 但现在我的 AucTeX 设置中似乎出现问题,我正在寻求帮助。

我的设置如下:

我使用 Emacs 27.2 和 AucTeX 13.0.15。在我的TEXMFHOME目录中,有一个子文件夹 ( ~/texmf/tex/latex/local/hvw),其中包含以下样式文件hvw.sty

\NeedsTeXFormat{LaTeX2e}[1994/06/01]
\ProvidesPackage{hvw}[2021/12/14 package hvw]

\input{hvw-packages.tex}
\input{hvw-macros.tex}
% ...

\endinput

,以及.tex包含包、宏、颜色等的几个文件。

该文件hvw-packages.tex包含要加载的包

\RequirePackage{xparse}
\RequirePackage{amsmath}
\RequirePackage{hyperref}
\RequirePackage{siunitx}
\RequirePackage{algorithm2e}
% ...

hvw-macros.tex包含一些自定义宏:

\DeclareDocumentCommand\email{m}{\href{mailto:#1}{\textcolor{rwth-blue}{\texttt{#1}}}}
\DeclareDocumentCommand\setdef{mo}{\left\{#1\IfNoValueTF{#2}{}{ \mid #2}\right\}}
% ...

在我的中init.el,我设置了以下变量:

(use-package tex
  :ensure auctex
  :init
  (setq-default TeX-master nil)
  ; ...
  :custom
  (TeX-auto-save t)
  (TeX-parse-self t)
  (TeX-macro-private '("./"
                       "~/texmf/tex/latex/local/hvw"))
  ; ...
)

我也TeX-auto-generate多次运行过~/texmf/tex/latex/local/,并且可以在我的TeX-auto-private目录中看到它的输出...但是如果在序言中打开一个.tex文档:\usepackage{hvw}

  • 插入我的自定义宏以前TeX-insert-{macro|environment}一直有效,直到最近才完全不再起作用。
  • 通过插入宏或环境TeX-insert-{macro|environment}仅适用于一些列出的软件包hvw-packages.tex
    • 对于amsmath包裹来说,一切似乎都很好。
    • 对于siunitx,我仅获得一些宏作为完成候选,即\sisetup\DeclareSI{Unit|Power|Prefix|Qualifier}更常见的宏\SI\si现在丢失了,这让我非常困惑。
    • 对于algorithm2e包,根本没有提供任何完成。

任何帮助都将不胜感激。

答案1

AUCTeX 13.0.15 引入了一些变化,这些变化可能与您面临的问题有关。简单来说:

  • 对于siunitx,我仅获得一些宏作为完成候选,即\sisetup\DeclareSI{Unit|Power|Prefix|Qualifier}更常见的宏\SI\si现在丢失了,这让我非常困惑。
    这是由于过早删除了弃用的宏造成的。此问题已在已发布的 13.0.16 版本中修复。

  • 对于algorithm2e包,根本没有提供任何完成
    AUCTeX 依靠自己的样式文件来提供完成。您可以在此目录。目前没有algorithm2e.eloptidef.el

对于这部分:

  • 插入我的自定义宏以前TeX-insert-{macro|environment}一直有效,直到最近才完全不再起作用。
    很难判断 的更改是否xparse.el相关。也许您可以提出一个新问题来展示 的内容hvw-macros.el,然后尝试找出问题所在。

相关内容