检测调用命令后何时需要空格

检测调用命令后何时需要空格

假设我有一个经常使用的表达式,因此我构建了一个命令快捷方式来排版它:

\documentclass[11pt]{report}
\usepackage{xparse}
\ProvideDocumentCommand \es{s}{expression shortcut\IfBooleanTF{#1}{s}{}}
\begin{document}
This is a \es and These are \es*.
\end{document}

在此处输入图片描述

当在句子内进行调用时,我可以避免手动添加波浪符号 (~) 吗?换句话说,有没有办法检测(使用xparse或不使用)Latex 何时不应该“吃掉”以下空白?

答案1

事实上,根据《Latex 不那么简短的介绍》(第 1.3.3 节),Latex 会忽略命令后的空格,因此,引用:

如果要在命令后留出空格,则必须在命令名称后放置一个空参数 {} 和一个空格或特殊间距命令

因此,您要么使用空参数,要么使用类似的参数\hspace{0.5em}(或任何更适合您的空间)。

编辑

根据 Paul 的建议,我尝试了 \xspace 命令,诀窍是包含 \usepackage{xspace} 并在定义中包含命令,例如

\ProvideDocumentCommand \es{s}{expression shortcut\IfBooleanTF{#1}{s}{}\xspace}

我刚刚测试过了:)

相关内容