别名后的间距

别名后的间距

我不确定我是否重复了一个已经存在的问题,但我想知道如何处理以下情况:

我想定义一个宏作为某个单词或文本片段的别名。当我定义它时,命令后面的空格将被忽略,因此该单词与下一个单词之间的空格将被删除,如下面的 MWE 所示。

下面的代码

\documentclass{report} 

\newcommand{\alias}{Paulo}
\newcommand{\altalias}{Paulo }
\newcommand{\formatalias}{%
    {\fontfamily{ptm}\selectfont\textsc{Paulo}}%
}
\newcommand{\altformatalias}{%
    {\fontfamily{ptm}\selectfont\textsc{Paulo}} %
}

\begin{document}

This is \alias, who is just checking \LaTeX's behaviour.\par
This is \alias who is just checking \LaTeX's behaviour.\par
This is \altalias who is just checking \LaTeX's behaviour.\par
This is \formatalias who is just checking \LaTeX's behaviour.\par
This is \altformatalias who is just checking \LaTeX's behaviour.

\end{document}

输出如下:

在此处输入图片描述

所以我的问题是,仅在宏末尾添加一个空格是否正确,还是我应该做其他事情?

答案1

不,你应该做点别的。以下是选项:

  1. \mymacro{}即使宏不带参数,也可以使用。{}末尾的空组\mymacro不会影响输出(就间距而言),但如果宏后面有空格,则设置空格,如果是这种情况,则设置标点符号。当然,这可能看起来很麻烦,但你会习惯的。

  2. 当您需要时使用\mymacro\它来强制(控制)空间。

  3. 使用xspace慎用...

相关内容