这是什么\hskip 60pt plus 100pt minus 100pt
意思?我以前认为这是一个具有自然宽度和一些弦常数的机械弹簧钾。但是,我知道事实并非完全如此,因为加号和减号不需要精确,而且文本框具有最大和最小宽度,而胡克弹簧具有无限的弹性。
现在,胡克弦的好处在于它们可以串联和并联。以下是一些问题:
- TeX 内部引擎是否依赖此属性将几个相邻的盒子建模为一个?
- 弹簧的物理原理是否延续到了 TeX 中?Knuth 是否开发了胶水的数学和物理学?
- 是否存在
\hbox
es 并联连接的情况? - 如果将 TeX 胶水比喻为物理弹簧,那么物理世界中的 TeX 弹簧是什么?
如果您不喜欢弹簧类比,那么问题将仅限于由 \hbox 和胶水创造的生物。 这两个的连续连接不能用一个带有不同胶水的盒子来表示吗?
更抽象地说,复合生物的弹性功能是什么?它是热带几何某种?
答案1
TeX 用户需要了解的有关 glue 的主要内容在什么是胶水拉伸?,但要解决这个问题中未涉及的特殊部分:正如@egreg 所说,将类比延伸得太远是不准确的。TeX 换行算法的“弹簧”不是以现实生活中的弹簧为模型的。
这篇精彩的论文对这一切进行了非常清晰的描述将段落分成几行作者:Knuth 和 Plass。(包括将多个盒子或胶水放在一起的“代数”。)
重复其中的一些部分:抽象地说,对于 TeX 来说段落是一系列
- 盒子:盒子的宽度为 w i
- 胶水(又称弹簧、跳跃):胶水具有宽度 w i、可拉伸性 y i和可收缩性 z i。可拉伸性和可收缩性可以独立地为正、负或无穷大(实际上有多个“无穷大阶”)。
- 处罚:有一个惩罚 p i,一个宽度 w i和一个标志 f i,它可以是 1 或 0 (对于宽度和标志:想想连字符)。
胶水规范中的拉伸性和收缩性可以独立指定,并且其中任何一个都可以是负数。
问题询问的一些“代数”内容如下:
- 连续的框相当于一个更大的框:
盒子(w)盒子(w')=盒子(w + w')
- 连续胶水相当于更大的胶水:
胶水(w,y,z)胶水(w',y',z')=胶水(w + w',y + y',z + z')
(关于处罚的一些内容,这里省略。)
所有这些以及更多内容都描述在,当然除了TeXbook和TeX:程序(A 卷和 B 卷)计算机和排版),B 卷开头的补充参考书目中引用了以下论文:
Michael F. Plass 和 Donald E. Knuth 撰写的《将段落分成几行》软件——实践与经验 11(1981),第 1119–1184 页。* 开发了 TeX 换行算法的基础理论,并将其应用于各种实际问题;包括印刷行业换行技术的历史图解。附录讨论了适用于文字处理器的简化算法。
Michael F. Plass 和 Donald E. Knuth 合著的《选择更好的换行符》文件准备系统,Nievergelt 等编(阿姆斯特丹:北荷兰出版社,1982 年),221–242。前文的精简版。引入了“切口”的概念,它统一并概括了 TeX 的粘合、惩罚和自由裁量等基本操作。
答案2
因此,以下是我对这个主题的分析。TeX 使用的弹簧不是遵循胡克定律的物理弹簧。它们遵循的是现实世界物理学中不存在的不同定律。
在 Knuthian 物理学中,弹簧由三个值指定:分钟,自然长度,最大限度我们倾向于认为物理学中的弹簧由两个值指定:自然长度和弦弹性常数钾。事实上,物理弦有三个值,因为收缩和伸长时的弹性可能不同。
Knuth 弹簧与 Hookean 弹簧具有以下共同特性:
- 两种弹簧均由三个参数指定:胡克弹簧具有自然长度和两个弹性常数,一个用于压缩,另一个用于伸长。它们可以写成三个实数(通常为)非负数的三元组(C,n,埃) 表示压缩弹性常数 (1/钾)、自然长度和伸长弹性常数(也是1/钾,但不必相同钾)。
- 将 Knuthean 泉连接
<min1,n1,max1>
到泉<min2,n2,max2>
串联,得到<min1+min2,len1+len2,max1+max2>
。这与串联的胡克弹簧相同,可得到<c1+c2, n1+n2, e1+e2>
。 - Knuthean 春天的坏处是
|\Delta x^3|$
,\Delta X
相对的偏离n。坏性与能量相似,但如果将能量视为平衡状态下最小化的全局加性属性,则 Knuthean 弹簧的静态能量为$(\Delta x)^5 +(\Detla x)^3$
。回想一下,Hookean 弹簧的能量为(dx)^2
(实际上,\frac12k(dx)^2
但我们忽略常数),dx
其中绝对维度的改变。 - 胡克定律也适用于二维(和三维)物体。不确定在 Knuthean 中二维盒子是否可以被视为二维弹簧。
差异包括:
将弹簧连接
<min1,len1,max1>
到<min2,len2,max2>
弹簧平行线,给出<max(min1,min2),?,min(max1,max2)>
,其中问号需要定义。将两个胶水平行放置是否存在自然长度?它应该取决于最小值和最大值,还是仅取决于基长?此外,请注意,Knuthean 弹簧的平行连接可能会产生未定义的弹簧,即其最小长度大于其最大长度的弹簧。克努斯泉有一套故障理论:箱子未满和箱子过满。胡克泉没有这种情况。
Knuthean 泉与断点相互作用,处罚,段落中可能断行的位置。惩罚具有二元语义,这在物理学中并不常见,在弹簧力学中肯定也找不到。
通过动态规划算法,Knuthean 温泉中的能量被“最小化”;物理规则在这里并不适用。
此外,Knuthean 泉水有多个无穷大。我相信这可以在物理世界中建模。
高血压