之前已经问过类似的问题,因此这篇文章可能是重复的:
我尝试遵循上面链接的帖子中给出的建议,并且对我的自定义宏提供部分工作支持 - 但现在我的 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.el
或optidef.el
。
对于这部分:
- 插入我的自定义宏以前
TeX-insert-{macro|environment}
一直有效,直到最近才完全不再起作用。
很难判断 的更改是否xparse.el
相关。也许您可以提出一个新问题来展示 的内容hvw-macros.el
,然后尝试找出问题所在。