当较长的段落中间没有换行符时,我会收到警告:
chktex: WARNING -- ChkTeX does not handle lines over 509 bytes correctly. Some errors and line numbers may be wrong in this file.
我在以下网址发现了类似问题的报告ChkTeX:警告过长的行,从而产生错误警告。在他们的案例中,他们使用了 LaTeX-Workshop,并且在其他研究中也做了大量工作。看来 ChkTeX 可能不适合(某些?)Windows 环境。该帖子的 OP 敲入了一些代码来识别哪些行太长。
一种解决方法是手动添加换行符,但这很麻烦,并且给同事带来不便。
我的环境:
- Windows 11
- VS Code 版本 1.67.1(LaTeX 扩展版本 1.2.0)
- 一个 MiKTeX 实用程序 1.2(MiKTeX 22.3)
- ChkTeX v1.7.6
所以,我的问题是:有没有修复方法或者更好的解决方法?
答案1
很抱歉给您带来麻烦。这是 ChkTeX 当前实现中的一个错误/限制。它只是使用BUFSIZ
在 Windows 系统上比在 Linux 或 Mac 上小得多的宏。我不使用 Windows,所以我自己从未遇到过它(在现实生活中)。我知道这是一个理论上的问题,但不知道人们在正常使用中是否真的遇到过它。
我可以使用更高的其他全局限制,但这并不是真正的解决办法。不过,如果 Windows 用户确实遇到了限制,那么这会比当前的情况要好。
当我想到自己用 C 处理调整大小时,我就失去了修复它的所有欲望。我一直在想我应该用 C++ 重写它,这样我就可以使用 std::string(或者可能是更高级的东西,比如 python)。它最终会更易于维护,但我对此也没有太大的动力,因为它不会获得任何新功能,而且可能会引入新的错误。
但,知道人们确实达到了极限,这应该足以激励我去做一些事情。
答案2
在“settings.json”中添加此行:
"latex.linter.enabled": false