没有输出页面

没有输出页面

以下纯 TeX 手稿(使用 pdftex)不会产生任何输出页面,也不会产生任何错误。

\def\mac.#1 #2.{#1}%
\mac. a b.%
\bye

为什么?

我希望它能生成一页包含文本的输出

A

如果我通过将宏的主体替换为来更改手稿Hello, world!,则手稿会产生预期的结果:一页输出,其中包含文本

你好世界!

答案1

此处your 后面有一个空格.:这很重要。TeX 正在寻找与参数规范的最短匹配,这可以通过为#1空并且该空格位于 和 之间来#1实现#2。因此后者为 ' a b'(例如,您可以使用\showtokens或看到这一点\tracingall)。

仅有的连续集合中的参数可以为空,因此

\def\mac.#1#2 #3.{#1}%

#1a(丢弃空格)并且您将获得期望的输出。

相关内容