我尝试使用新的 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 特定的宏更有意义