为什么 TeXstudio 的自动完成功能会建议缺少诸如 \microfarad、\microampere 等命令?

为什么 TeXstudio 的自动完成功能会建议缺少诸如 \microfarad、\microampere 等命令?

TeXstudio 的自动完成功能建议\microfarad使用命令,因此我尝试使用它,但收到“未定义控制序列”错误。有简单的解决方法(\micro\farad\micro\F),但为什么自动完成功能认为\microfarad它存在,如果它显然不存在呢?我以前从未使用过,\microfarad因为直到我开始输入\micro\F并注意到建议时,我才知道它“存在”。

\microampere对于其他命令(如、等)似乎也是如此。\microgram我注意到了这个问题,\microfarad因为其他单位有更短的命令(\uA\ug等),但\uF也不存在。

为什么 TeXstudio 的自动完成功能会建议这些不存在的命令?

我在两台独立的 Windows 7 机器上发现了这个问题,奇怪的是我在两台机器上都找不到 siunitx.cwl 文件。

梅威瑟:

\documentclass{article}
\usepackage{siunitx}

\begin{document}
    \SI{1}{\microfarad}\\ % undefined control sequence
    \SI{1}{\micro\farad}\\ % works
    \SI{1}{\micro\F} % works
\end{document}

答案1

我认为这是 TeXstudio 的一个错误。问题在于 TeXstudio 对某些硬编码的命令提供了自动完成支持,很可能是出于性能原因。这可以通过texstudio.exe在文本编辑器中查看并搜索\microampere(版本 2.9.4 中的第 68436 行)轻松检查。

所以我想说这是 TeXstudio 的错误,你应该把它提交给他们错误日志。我认为这是许多其他命令的情况,因此您也可以建议对硬编码的命令列表进行一般清理。

编辑:我检查了 TeXstudio 2.9.4 的源代码,确实,该文件completion/siunitx.cwl包含\microfarad,等等。然后必须将这些文件编译成分发的二进制文件。

相关内容