ConTeXt 中的命令后有虚假空格

ConTeXt 中的命令后有虚假空格

是否可以在 ConTeXt 中定义一个宏来占用参数后的空间?例如,给定以下输入:

\def\thing{\dosingleargument\dothing}
\def\dothing[#1]{thing#1}

\starttext

\thing[hello]
\thing[world]

\stoptext

这将产生以下输出:

thinghello thingworld

但是,理想情况下,我希望它们能够一起运行,就像这样:

thinghellothingworld

我意识到我可以使用\thing[hello]%,但我只是想知道我是否可能在这里错过了一些简单的东西。这些\thing命令当前由脚本生成。我可以配置脚本以输出%,但 TeX 文件可能会在之后手动调整,其中可能%最终会丢失,然后空格再次出现,所以我想尝试减少这种可能的人为错误并保持 TeX 文件看起来整洁。

答案1

在 ConTeXt 中可能有更好的方法来做到这一点,但是在放置\ignorespaces宏定义的末尾后,虚假空格就被删除了:

\def\thing{\dosingleargument\dothing}
\def\dothing[#1]{thing#1\ignorespaces}

相关内容