关于 LaTeX 用于文本布局的算法或技术的文档

关于 LaTeX 用于文本布局的算法或技术的文档

我想知道 LaTeX 如何实现文本布局算法。它如何找出如何在中间断开单词以更好地适应页面,或者如何稍微压缩单词以适应一行或一页等等。想知道编译 LaTeX 文档时发生的所有事情,它如何变成最终的渲染形式。它如何以最佳方式测量所有内容以使内容看起来恰到好处。

问题是是否有任何地方有关于此事或其中某些方面的文献。

答案1

关于 TeX 用于布局文本的算法的主要论文是:

将段落分成几行由 Michael F. Plass 和 Donald E. Knuth 撰写,发表于《软件—实践与经验》第 11 卷 (1981),第 1119–1184 页。

您可以在网上找到该论文,也可以阅读书中重印的最新版本数字排版;你也可以在这个网站上搜索找到提到它的答案(比如这个)。


当然,该算法在源代码中有更详细的描述——可以作为印刷书籍(TeX:程序),也可以以数字形式获得(没有每页上的迷你索引之类的东西)。具体来说,这始于该计划的第 38 部分(第 813 节),并延续到第 39 部分。这在某种程度上也描述在教科书,尽管主要是从“用户”的角度来看。

TeXbook 和 TeX 程序都存在缺陷(在我看来),要想正确理解其中的任何部分都需要你理解整个内容,所以这篇论文可能是最好的起点。


当然,文本布局不仅仅是将段落分成行(尽管在 TeX 的情况下,您可能会惊讶地发现,很多东西都归结为这种基本的换行盒粘合惩罚模型,甚至一些似乎与换行无关的东西)。TeX 所做的一切都是TeX 程序,但你可能想阅读相应的调查报告在阅读程序的相关部分之前,请先阅读本指南。

LaTeX 是在 TeX 之上的一组宏,它添加了不少东西,但其中大部分(据我所知)与您似乎在问的关于文本如何布局的问题直接相关。

相关内容