ChkTeX 无法正确处理超过 509 个字节的行

ChkTeX 无法正确处理超过 509 个字节的行

当较长的段落中间没有换行符时,我会收到警告:

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

相关内容