浮点数如何工作(内部)

浮点数如何工作(内部)

浮点数的机制在 LaTeX 中是如何工作的(或者它们是 TeX?作为一个从未真正学习过没有 LaTeX 的 TeX 的人,我不知道)?我知道如何生成它们以及诸如此类的事情,但我想了解浮点数中的内容实际上是如何移动到文档的后面的。例如,浮点环境中的宏是立即求值还是以某种方式延迟求值。如果立即求值,它们如何在最终文档中进一步下降。如果稍后求值,LaTeX 如何知道浮点数所需的大小?

抱歉,如果这个问题已经在某处被问到/回答过了;我花了很长时间寻找,只找到了关于如何改变浮点数行为的内容,而不是关于它们如何工作的解释。

答案1

浮点环境就像\savebox所有宏在满足环境时进行解析并将内容排版到盒子寄存器中一样。

LaTeX 维护着以“空闲列表”开头的盒子寄存器列表(数量),当遇到每个浮点数时,就会从空闲列表中取出一个盒子,并用排版的环境内容进行填充。

在分页符处,LaTeX 会依次考虑各个浮动区域,例如,在考虑顶部区域时,会遍历待处理浮动对象的“延迟列表”,并通过考虑框大小和控制可以向每个topnumber区域添加多少个浮动对象的参数来测试是否可以将每个浮动对象移动到“顶部列表”。

如果将浮点数添加到页面,则该框会被清空,并返回到空闲列表以供以后的浮点数使用。

相关内容