(脚本)scriptstyle 中的可拉伸胶水(下标、上标、分数)

(脚本)scriptstyle 中的可拉伸胶水(下标、上标、分数)

如果$a+b$出现在段落中,周围的间距+将取决于行的拉伸/压缩程度。如果${a+b}$使用,则无论行的拉伸/压缩程度如何,公式都将具有其自然宽度。但是,周围的可拉伸空间(粘连)+仍然存在,如下图所示\showlists

\tracingonline=1
${a+b}$
\showlists
\bye

展示 (使用纯 TeX)

\mathon
\hbox(6.94444+0.83333)x21.79968
.\teni a
.\glue(\medmuskip) 2.22217 plus 1.11108 minus 2.22217
.\tenrm +
.\glue(\medmuskip) 2.22217 plus 1.11108 minus 2.22217
.\teni b
\mathoff

另一方面,没有这样的粘合\scriptstyle:上面的代码在\scriptstyle美元符号后(或括号后)添加了

\mathon
\hbox(4.8611+0.83334)x13.99323
.\seveni a
.\sevenrm +
.\seveni b
\mathoff

\scriptstyle(La)TeX 是否曾在(和)中插入胶水(特别是可拉伸/收缩胶水)\scriptscriptstyle?我对实际文档中发生的情况很感兴趣(例如,使用 ams(La)TeX 和其他宏包)。

答案1

根据 TeXbook 第 170 页的描述,数学原子周围的自动粘贴可以是“有条件的”,即仅在显示和文本样式中插入:

此处的 0、1、2 和 3 分别代表无空格、细空格、中等空格和粗空格;如果仅在显示和文本样式中插入空格,而不在脚本和脚本样式中插入空格,则表格条目会用括号括起来。例如,Rel 行和 Rel 列中的许多条目都是“ (3)”;这意味着粗空格通常插入在关系符号(如“=”)之前和之后,但不插入下标中。

如果明确插入的粘连符前面有 ,也会发生相同的情况\nonscript;这种情况下,将用 表示\showlists\glue(\nonscript)例如

$a\nonscript\hskip2pt b$\showlists

将打印

\mathon
\seveni a
\glue(\nonscript)
\glue 2.0
\seveni b
\mathoff

尽管

$\scriptstyle a\nonscript\hskip2pt b$\showlists

将打印

\mathon
\seveni a
\glue(\nonscript)
\seveni b
\mathoff

其效果和没有添加胶水完全一样。

“TeX 程序” 中的相关模块有 732(用于\nonscript)、764(用于 TeXbook 第 170 页的表格)、765 和 766。

如果使用 LaTeX amsmath,胶水会“神奇地”重新出现

$a_{\text{$b+c$}}$

因为下标将在上下文中以文本样式排版\fontsize{\sf@size}\sf@size根据当前文本字体大小计算)。

相关内容