具有相同基本名称的 .dtx 和 .tex 的 AUCTeX 自动样式文件

具有相同基本名称的 .dtx 和 .tex 的 AUCTeX 自动样式文件

在使用具有相当标准结构的 DocStrip 的 LaTeX 包中,可以包含以下文件:

mypackage-code.tex
mypackage.dtx
mypackage.ins
mypackage.tex

mypackage.dtx.sty根据 中的说明,是包含代码并从中提取 的主文件mypackage.insmypackage-code.tex仅仅是 的包装器mypackage.dtx

\documentclass{l3doc}

\usepackage{mypackage}

\begin{document}

\DocInput{mypackage.dtx}

\end{document}

这样我们就可以生成单独的代码文档了mypackage-code.pdf

mypackage.tex是用户手册,生成mypackage.pdf

这一切都很好,并且在 LaTeX 方面产生了预期的结果。问题是由于 AUCTeX 命名自动生成的样式文件(存储在 中的文件./auto/)的方式而发生的。AUCTeX 使用文件的基本名称加上.el扩展名。但这样做会导致和 的生成样式文件mypackage.dtx相互mypackage.tex冲突和覆盖(技术上mypackage.ins也存在冲突,但编辑频率较低,因此问题较少,但仍然......)。因此,每当我打开这两个文件中的任何一个时,我都会开始注意到事情不对劲,直到我说“啊!!!”,然后调用C-u C-c C-n重新解析文件。但这非常烦人。

那么,问题是,有没有办法根据每个文件来控制自动生成的样式文件的名称,以便它们不会发生冲突?比如文件局部变量,或者类似的东西?

除此之外,是否有任何常见/已知的解决方法来应对这种情况?

答案1

我不确定是否有一个“一刀切”的解决方案可以解决您的问题。我可能会编写mypackage.el最终产品提供的支持宏/环境mypackage.sty,并将其保存在 目录下,并仅TeX-style-private依赖文件中的解析信息。这种方法应该为您提供足够的灵活性,当您 时,只加载相关部分,而当您加载文件时,两种 AUCTeX 样式都会加载(至少在理论上如此;我没有尝试)。./auto/mypackage.el.dtx\usepackage{mypackage}.dtx

相关内容