我在使用 latex 时发现了一些非常奇怪的事情newcommand
。我包装了两段经常出现在我文章中的文本,它们是:
\newcommand{\etal}{et al.}
\newcommand{\stra}{$\mathcal{S}_A$}
其中第一个是缩写,另一个是符号。但是,当我使用这两个宏定义并输入以下内容时
Sentence 1: Liu \etal \cite{liu2019} did something.
Sentence 2: Liu \etal did somthing.
Sentence 3: Liu add \stra to this process.
结果是
第一句:刘等人[1]做了一些事情。
第二句:刘等人做了某事。
句子3:刘将$\mathcal{S}_A$添加到此过程中。
可以看出,最后两句命令后的空格消失了,但第一句的空格仍然存在。我想知道如何解决这个问题。
顺便说一句,在命令中放置额外的空格不是一个好习惯。
答案1
由字母组成的命令后面的空格将被忽略。这样您就可以键入例如\AE sop
Æsop,因为将字母混合在一起会使 LaTeX 认为您正在输入命令\AEsop
并给您一个未定义的控制序列错误。
举个例子,你需要\
在命令末尾添加 ,让 LaTeX 知道你确实想要在那里留一个空格。所以你的句子应该是:
Sentence 1: Liu \etal\ \cite{liu2019} did something.
Sentence 2: Liu \etal\ did somthing.
Sentence 3: Liu add \stra\ to this process.