如何在标点符号前使用宏后避免出现多余的空格?

如何在标点符号前使用宏后避免出现多余的空格?

我有一个文档,其中某些经常出现的实体名称被宏替换,例如:

\newcommand{\entity}{\emph{Name of Entity}}
...
Lorem ipsum dolor sit \entity, consequat consectetur.

如果我像这样定义命令,如果\entity后面紧跟着标点符号(如上所述),我会得到正确的格式,否则格式不正确(例如Lorem \entity ipsum变成“Lorem Name of Entityipsum”)。如果我在定义中包含空格\entity(注意右括号之间的空格):

\newcommand{\entity}{\emph{Name of Entity} }

我得到了相反的行为,仅当后面没有标点符号时才有适当的间距。

我认为没有在宏中包含一些魔法命令来实现某些合理的目的?

答案1

虽然我个人更喜欢描述的“分隔宏”方法这里,您可能希望\xspace使用同名包

答案2

\entity若需要空格,请在后面加上反斜杠或空组。

\newcommand{\entity}{\emph{Name of Entity}}
...
Lorem \entity\ ipsum
Lorem \entity{} ipsum

相关内容