Chktex 抱怨“未找到斜体校正”,如何解决这个问题?

Chktex 抱怨“未找到斜体校正”,如何解决这个问题?

我使用以下代码来自定义定理,因为我更喜欢定理中的倾斜文本而不是斜体,使用amsthm

\newtheoremstyle{thm-sl}
{}{}
{\slshape}  % slanted text instead of italicized
{}
{\bfseries}
{.}
{.5em}
{}

我收到来自以下来源的警告chktex

Warning 6 in doc.tex line 21: No italic correction (`\/') found.
{\slshape}  % slanted text instead of italicized  
         ^

我理解,应该使用斜体校正 ( \/),在斜体/倾斜字符和直立字符之间插入一些空格,这些字符直接出现在另一个字符之后。但在我的例子中,倾斜文本之后不应该有任何字符。

那么,这是否只是反应过度,chktex或者有更“正确”的用法newtheoremstyle

有趣的是,使用{\slshape\/}mutes chktex,但由于错误,无法编译

! You can't use `\/' in vertical mode.

答案1

自动语法检查器或 linter 不会 (也可能无法) 总是正确无误。

在这种情况下,无需使用 进行斜体校正,\slshape因为后面的文本将从新行开始,而不是直接在同一行的倾斜文本之后。无论如何,\/直接在\slshape这里添加肯定是不合适的,因为需要在倾斜/斜体文本的末尾添加校正({\slhape lorem ipsumf\/} dolor不是{\slshape\/ lorem ipsumf} dolor)。这里的{\slshape}不是打印任何内容的组,而是命令的参数,用于确定稍后定理的格式。

checktex 6您可以通过在有问题的行中添加注释来禁用警告

\newtheoremstyle{thm-sl}
{}{}
{\slshape}% chktex 6
{}
{\bfseries}
{.}
{.5em}
{}

请参阅ChkTeX 文档

由于您可能只使用文档中\text...{...}的宏而不是它们的开关(\textit-\itshape等),因此您可能可以完全禁用整个警告 6。文档对此有更多提示(-n6命令行选项或chktexrc配置文件)。

相关内容