在这个问题中:在旧式英语文本中自动在标点符号前添加空格,接受的答案使用以下定义
\edef!{\unskip\noexpand\,\string!}
和显然更简单的有什么区别
\def!{\thinspace\string!}
除此之外,如果输入正确(即前面没有空格),\unskip
我知道是不需要的。!
答案1
之后\def!{\thinspace\string!}
的内容!
将正是那样,因此,并且在使用时完全展开时,将变成。\thinspace \string !13
\string
!13
!12
另一方面\edef!{\unskip\noexpand\,\string!}
将包含,所以已经完成了它的工作,并且的扩展不可能导致另一个。\unskip \,!12
\string
!
!13