![\newcommand 存在问题,在编译的文本中调用新命令后没有空格](https://linux22.com/image/237027/%5Cnewcommand%20%E5%AD%98%E5%9C%A8%E9%97%AE%E9%A2%98%EF%BC%8C%E5%9C%A8%E7%BC%96%E8%AF%91%E7%9A%84%E6%96%87%E6%9C%AC%E4%B8%AD%E8%B0%83%E7%94%A8%E6%96%B0%E5%91%BD%E4%BB%A4%E5%90%8E%E6%B2%A1%E6%9C%89%E7%A9%BA%E6%A0%BC.png)
可能重复:
\newcommand 和间距
在我的乳胶文档中,我定义了一个新命令来强制我在文档中讨论的产品命名的一致性:
\newcommand{\fancyName}{\emph{ABC}}
但是我遇到了一个问题:
\fancyName is a wonderfull and fancy product.
编译为:
ABCis a wonderfull and fancy product.
编译后的文本中的 \fancyName 后面没有空格。
有人知道如何定义新命令并避免这个问题吗?
答案1
这是一个众所周知的“问题”。您可以编写 \macro{},或者考虑使用
\usepackage{xspace}
\newcommand{\fancyName}{\emph{ABC}\xspace}
如果宏在文本中使用,xspace 应该创建一个空格,但如果宏位于句末且后跟句号,则不创建空格。