chktex 没有正确读取行

chktex 没有正确读取行

我尝试chktex在 Ubuntu 中使用,但它似乎无法正确读取行。当我在包含此行(以及任何其他类似行)的文件上运行它时:

\include{glossary}

它发送一个错误提示(请注意,它将文件名中倒数第二个字符替换为最后一个字符!-词汇量

chktex: WARNING -- Unable to open the TeX file `glossayy'.
Warning 27 in book.tex line 158: Could not execute LaTeX command.
\include{glossary}        % Glossary   
^^^^^^^^

知道为什么会发生这种情况吗?

答案1

在 Ubuntu 11.04 上使用chktexv1.6.4 时,拼写错误没有重现(见下文)。此外,此版本仅在有效时才发出警告。我建议您使用此版本再次尝试。

如果问题仍然存在最小工作示例将会很有帮助,因为有关警告是否只是拼写错误或者是虚假的信息(例如有关存在的文件的警告)也会很有帮助。

细节

在生成警告但没有行的小示例文件上运行的结果\include

mas@ents:~/LaTeX/scratch$ chktex fr.tex
ChkTeX v1.6.4 - Copyright 1995-96 Jens T. Berger Thielemann.

Warning 36 in fr.tex line 5: You should put a space in front of parenthesis.
    \textit{(Choose one option)}\\  
            ^
No errors printed; One warning printed; No user suppressed warnings printed.

编辑测试文件以解决警告,包括\include{glossary}类似于问题中的一行。glossary.tex不存在。重新运行chktex

mas@ents:~/LaTeX/scratch$ vi fr.tex
mas@ents:~/LaTeX/scratch$ chktex fr.tex
ChkTeX v1.6.4 - Copyright 1995-96 Jens T. Berger Thielemann.

chktex: WARNING -- Unable to open the TeX file `glossary'.
Warning 27 in fr.tex line 10: Could not execute LaTeX command.
\include{glossary}        % Glossary     
^^^^^^^^
No errors printed; One warning printed; No user suppressed warnings printed.
mas@ents:~/LaTeX/scratch$ 

警告是正确的,并且不包含glossayy文本错误。

创建后glossary.texchktex不会返回任何警告:

mas@ents:~/LaTeX/scratch$ mv glossary.texxx glossary.tex
mas@ents:~/LaTeX/scratch$ chktex fr.tex
ChkTeX v1.6.4 - Copyright 1995-96 Jens T. Berger Thielemann.

No errors printed; No warnings printed; No user suppressed warnings printed.
mas@ents:~/LaTeX/scratch$

答案2

是一个问题调用strcpy重叠字符串。对于某些版本的 glibc,这会导致问题,而对于其他版本则不会。此问题已在 svn 版本中修复memmove。我最近获得了 svn 访问权限,因此我希望我们可以发布一个修复此问题(以及其他一些错误)的新版本。无论如何,最重要的是,如果您自己从 svn 构建它,那么它将得到修复(版本为1.6.5svn)。

相关内容