如何对未定义的控制序列进行 lint?

如何对未定义的控制序列进行 lint?

因此,我开始学习 LaTeX,经常发现自己会错误地输入控制序列,例如\idotsint。我使用编辑器插件在文档上调用lacheck和,这有助于捕获一些错误,但每当我输入错误控制序列时,这两种工具都不会报告chktex任何问题。相反,像这样的工具却不存在。pdflatex\idotqint

如果我在文档中使用了未定义的控制序列,有什么方法可以让语法检查器/ linter 进行报告,最好是我的编辑器等可以知道要指出哪个行号?

编辑:我正在使用带有 vimtex 插件的 vim。

答案1

看起来 vimtex 插件实际上支持在文档编译失败时打开 quickfix 窗口,但是使用 Neovim 会导致 vimtex 无法完全工作。

这里如何让它与 Neovim 一起工作。

答案2

长评论,而不是答案:问题是:“合法”命令的列表是什么?

可以在序言中、在文档类(文件)中、在包(文件)中、在用另一个包或文档类加载的包中、在用包含的子文档中定义(并存在)多个方法( \def、等) 。此外,定义可以适用于整个文档,也可以仅适用于部分文档。其工作原理如下:\newcommand.cls.sty\input

\documentclass{article}
\begin{document}
{\def\Me{I exist} \Me  }
\end{document}

但这会产生未定义的控制序列错误:

\documentclass{article}
\begin{document}
{\def\Me{I exist} \Me } \Me
\end{document}

总之,对于编辑器(即使对于 vim)来说,知道命令何时定义是一项艰巨的任务,因此问题不应该集中在语法检查器插件上,而应该集中在处理错误消息的最佳插件上(但随后会重复LaTeX 输出中的错误/警告)。

相关内容