TeXstudio 无法从文档类加载 *.cwl

TeXstudio 无法从文档类加载 *.cwl

因此,我修改了一个文档类,用于\RequiredPackage将我需要的包加载到 TeXstudio 中。我遇到的问题是该命令不会触发 TeXstudio 加载相关*.cwl文件。基本上,每个命令都无法识别,但在编译文档时可以正确使用。我阅读了不同的答案和手册,但这让我比刚开始时更加困惑。

如何让 TeXstudio 加载*cwl我在文档类中调用的不同包?相反,如果这是绝对糟糕的做法,我应该如何设置?

编辑:

\NeedsTeXFormat{LaTeX2e}
\ProvidesClass{myDoc}[2019/07/01, v0.2]
\RequirePackage{ifthen}
\RequirePackage{calc}
\AtEndOfClass{\RequirePackage{microtype}} 
\DeclareOption*{\PassOptionsToClass{\CurrentOption}{article}}
\ProcessOptions* \LoadClass{article} \RequirePackage{siunitx}

我认为应该加载 siunitx、ifthen 和 calc cwl。当我编译时,siunitx 命令被正确解释,但无法识别

编辑 2:命令以红色突出显示,当鼠标悬停在光标上时,弹出窗口显示“无法识别的命令”

答案1

当您加载包或文档类时,TeXstudio 不会查看该包/类的源代码来确定.cwl要加载哪些文件 - 它只加载.cwl该包/类的文件。

这也适用于您的类myDoc。当您加载它时,TeXstudio 会在某些地方查找myDoc.cwl,找不到它并放弃。如果您想让 TeXstudio 知道加载了哪些包,您必须通过创建来告诉它myDoc.cwl

#include:article
#include:ifthen
#include:calc
#include:siunitx

并将其保存在适当的文件夹中。在 Windows 上,这是c:\Users\<user name>\appdata\Roaming\TeXstudio\completion\user\。您可以在相邻文件夹中找到如何编写它的示例autogenerated\


事实上,您可以顺利编译,但这与所有这些无关。无论 TeXstudio 是否知道,LaTeX 都会加载包并执行其中的宏定义。

答案2

我刚刚解决了这个问题!解决方案如下:

在or文件\ProcessOptions\relax的末尾添加命令。然后重新打开 txs 创建的 cwl,你会发现 txs 已经自动添加了所有命令!!!.sty.cls#include ...

相关内容