我正在创建一个关于一个项目的文档,该项目的名称是“Go for it!”,带有感叹号。我对 Latex 还不太熟悉,但我认为应该有一个命令来打印项目名称,带有感叹号和所有内容。所以我这样做了:
\newcommand{\goforit}{Go for it!}
问题在于感叹号,因为 Latex 会在感叹号后面打印一个空格,如果我想说“去吧!因为它太棒了[...]”,它会在逗号前打印一个空格,这是不可取的。
据我所知,我可以将“\”附加到它,但这确实仍会在逗号前打印一个空格。
答案1
您可以使用\xspace
同名包的宏。考虑以下 MWE(最小工作示例):
\documentclass{article}
\usepackage{xspace}
\newcommand{\gfi}{Go for it!\xspace}
\begin{document}
\gfi Yes, \gfi, right now.
\end{document}
当然,没有什么是完美的,这\xspace
也适用于。要了解它的一些潜在缺点(我通常认为这些缺点太可怕了),你可能需要阅读帖子xspace 的缺点。
答案2
我不知道xspace
这里是如何得到正确答案的:)
对于遇到同样问题的人的答案是,如果感叹号或问号不是句子的结尾,则在它们后面添加反斜杠。
IE
Go for it!\