为什么在宏调用中两个空格不会合并为一个空格?

为什么在宏调用中两个空格不会合并为一个空格?

这是我的 LaTeX 代码。

\documentclass{article}
\newcommand{\macro}[1]{A: #1}
\begin{document}

A: B0

A:  B1

\macro{B2}

\macro{ B3 }

\end{document}

这是输出。

渲染后的 LaTeX 代码图像

我想知道为什么上面的输出中前面有一个额外的空格B3。据我所知,多个连续的空格应该合并为一个空格。

但是从上面的输出来看,当多个空格中的一个来自宏定义,另一个来自宏参数时,它们会折叠成两个空格。为什么?

答案1

两个或多个空格人物文件中的内容被折叠,只留下一个空格令牌,但两个连续的空格代币留出双倍大小的空格。这里,在宏替换文本中,在 之前有一个空格标记,#1并且提供的参数以空格标记开始和结束,因此您获得了双倍的空格。

相关内容