普通的 TeX \insert 如何工作?

普通的 TeX \insert 如何工作?

我的问题是关于 Plain TeX 命令\insert

我知道每个插入系列都有一个专用框。但我不明白使用是否\insert将内容添加到框中,或者框是否在页面末尾构建,来自列表。

insert如果第二个答案是正确的,那么我的问题是:(对于一个系列)列表中的元素是否连接在一个中hbox,还是连接在中vbox,并且它们之间有一个段落分隔符。

我的问题是针对 的一些变化ledmac

实际上,ledmac提供一些“分段”的注释,这些注释最终是由

\insert\paragraphednote
\bgroup
\hbox{content of my note}
\egroup

这样就把所有注释都放在了同一个段落中。但正如你所知,不能hbox被打破。所以,这是有问题的。

但是如果我只是放内容而不放\hbox,我的笔记就不会在同一个段落中,但是我会为每个笔记获得一个段落。

我希望说清楚。

你可以在 github 上找到真正的代码

答案1

\insert是 TeX 原语,而不是普通的 TeX 命令。

如果你走的话

\insert\boxregister{ 
  .... vertical mode material ...
}

然后会发生两件事,垂直模式材料被保存下来,并且插入节点被放置在当前列表中。

如果当前列表是段落中的水平列表,则节点“迁移”到周围的垂直列表。

任何最终位于框内的插入节点基本上都会丢失。

插入最终位于主垂直列表的节点会以多种方式影响分页符。

取决于\count\boxregister并且\skip\footins输出例程在截取页面时为插入留出空间。

输出例程内部\box\boxregister包含插入框 u 的内容,最多为\dimen\boxregister。任何额外的插入内容都会保留到下一页(如果页面上的最后一个插入内容不适合,则可以拆分(并且可以拆分)

所以在您的示例中,将处理输出例程\box\paragraphednote,它将是一个带有一系列 hbox 的 vbox。输出例程负责在页面发送出去之前将这些框添加(或不添加),它可以拆箱内容或以任何方式处理它们,或者它可以决定不在发送出去的页面上进行任何插入,然后将它们重新插入到返回主垂直列表的材料中。

您可能需要添加一个实际可运行的示例来显示任何问题。您链接的代码很长,很难用肉眼看懂,但据我所知,其意图是装箱只是暂时的,宏\removehboxes被调用来拆箱并重新打包注释。

你说这\hbox可以防止换行,但这似乎不是代码的目的。

相关内容