ConTeXt 没有实现一些 Knuth TeX 原语?

ConTeXt 没有实现一些 Knuth TeX 原语?

我尝试使用新的 TeX 格式 ConTeXt,但我发现一些 TeX 基元不再起作用。当我发现这一点时,我感到很伤心。

一个简单的例子是,在纯 TeX 中,我们可以像这样设置段落之间的空格

    \font\twelverm=cmr12
    \twelverm
    \parskip=14pt
    The first paragraph.\par
    The second paragraph.
    \bye

不幸的是,当我在 ConTeXt 中执行相同操作时,它什么也没做。它仅支持\setupwhitespace但不支持原始的\parskip

我是 ConTeXt 的新手,我只想知道为什么。

答案1

在引擎级别,所有格式都使用相同的原语(使用相同引擎时)。但是,每种格式都可以重命名这些原语,也可以在引擎之上实现纯 TeX 格式定义的所有、部分或不实现纯 TeX 宏。ConTeXt 和 LaTeX2e 都实现了一些 TeX 原语,但不是全部。例如,LaTeX 用户将期望使用\end命令来创建环境,因为该格式\end将原语存储为\@@end。ConTeXt 是相同的:它实现了自己的一组命令。正如评论中指出的那样,如果您想要每个纯 TeX 宏和 TeX 原语,请使用纯文本。

答案2

ConTeXt 也\parskip像所有其他原语一样知道:

\starttext
foo\par    
bar \parskip=2cm \par
baz \par
foobar
\stoptext

然而,使用 ConTeXt 特定的宏更有意义

相关内容