假设我有一个经常使用的表达式,因此我构建了一个命令快捷方式来排版它:
\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}
我刚刚测试过了:)