LuaTeX 中,子类型 normal 和调整节点的子类型 pre 之间有什么区别?何时选择一个而不是另一个?在回答我的问题时这里,我选择了子类型“pre”,子类型normal也可以工作(将vspace()
和的顺序addpenalty()
互换)。
luatex 文档的截图:
答案1
节点normal
adjust
的作用类似于\vadjust{
<您在 .head 中写入的内容> }
,而pre
adjust
节点的作用将类似于\vadjust pre{
<您在 .head 中写入的内容> }
。这留下了一个问题,它\vadjust pre
正在做什么。这是一个 pdfTeX 功能,因此我们可以在 pdfTeX 手册中查找它:
\vadjust [⟨pre spec⟩] ⟨filler⟩ {⟨vertical mode material⟩}
(时,分)pdfTEX 的实现为原始的同名 TeX 基元
\vadjust
添加了一个可选限定符⟨pre spec⟩
,即字符串。如果没有给出,则其行为与原始基元完全相同(参见 TeXbook,第 281 页):它将从 创建的调整项附加到当前列表中pre
pre
\vadjust
⟨vertical mode material⟩
后出现的行\vadjust
。但是,使用限定词时pre
,调整项被放入前出现的行\vadjust pre
。
因此,基本上,adjust
子类型的节点会在换行后将pre
内容添加到行上方而不是行下方adjust
。