为什么当 \itshape 后有空格时 ChkTeX 会发出抱怨,而使用 \bfseries 时却不会?

为什么当 \itshape 后有空格时 ChkTeX 会发出抱怨,而使用 \bfseries 时却不会?

如果我对以下 LaTeX 源使用 ChkTeX:

\documentclass{article}
\begin{document}
The quick {\itshape brown fox\/} jumps over the {\bfseries lazy dog}.
\end{document}

然后我收到一个警告:

ChkTeX v1.7.6 - Copyright 1995-96 Jens T. Berger Thielemann.
Compiled with PCRE regex support.
Warning 1 in test.tex line 3: Command terminated with space.
The quick {\itshape brown fox\/} jumps over the {\bfseries lazy dog}.
                   ^
No errors printed; One warning printed; No user suppressed warnings; No line suppressed warnings.
See the manual for how to suppress some or all of these warnings/errors.

我知道 ChkTeX 是什么意思,我可以通过以下方式删除/隐藏此警告

  • 插入{}紧随其后\itshape(尽管会插入一个额外的空格),
  • 每行抑制,% chktex 1
  • 添加自定义文件的\itshape部分。Silentchktexrc

但我的问题是为什么\itshape没有列Silent默认chktexrc,而\bfseries\slshape等都有。

是否有一些排版原因需要将其与和\itshape等其他命令分开?或者它只是在默认 中缺失,这是一个应该在 ChkTeX 存储库中修复的问题?\bfseries\slshapechktexrc

答案1

全面披露:我是 ChkTeX 的现任维护者。

我不知道有什么理由\itshape不加入Silent,但它是很久以前写的(几个维护者之前),而且我没有很好地保持它的最新状态。坦率地说,像@david-carlisle一样,我觉得那个特定的警告没什么用,所以我关闭了。这意味着我没有发现任何这些误报,所以我没有将它们添加到默认的chktexrc。这是一种自我延续的循环。

我认为您应该做以下一项或多项事情:

  1. 如果您发现警告总体上没有什么帮助,请关闭该警告。
  2. 添加\itshapeSilent您的本地chktexrc
  3. 打开错误报告
    • 不幸的是,我最近没有给 ChkTeX 足够的时间,因此目前我有几个错误需要解决。
    • 虽然我确实只是添加了它,因为它非常简单。:)
  4. 如果这是规则的例外和/或您只是不想做其他任何事情,请添加行或文件抑制。

相关内容