我使用以下代码来自定义定理,因为我更喜欢定理中的倾斜文本而不是斜体,使用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
配置文件)。