\showlists 中的 \left 和 \right 对应哪些原子?

\showlists 中的 \left 和 \right 对应哪些原子?

这是输入:

$\left|-\infty\right|\showlists$
\end

这是输出:

\mathinner
.\left"26A30C
.\mathbin
..\fam2 ^^@
.\mathord
..\fam2 1
.\right"26A30C

目前尚不清楚哪些原子\left"26A30C与哪些原子相对应\right"26A30C。无法打开关闭,因为根据 TeXbook 第 170 页的表格打开不能跟在垃圾桶(表格条目为*)。

答案1

你写了,

[ ] 的状态\left|不能为Open...,因为根据 TeXbook 第 170 页的表格,Open后面不能跟Bin(表格条目为*)

TeXbook 第 170 页表格的解释是不是完全正确。例如,请参阅下面@egreg 的 [还有谁?!] 对我的后续评论他的回答针对这个问题右对齐环境的正确对齐的正确空间是多少?

*TeXbook 第 170 页表格中的含义的更好解释方式是:如果 TeX 遇到“不可能的组合” -- 例如open后面跟着bin-- 那么原子的状态bin就会变为ord

让我们将其应用到\left|-\infty\right|

  • \left|具有状态mathopen

  • -mathbin默认情况下具有 状态。但是,由于open/bin是“不可能”的组合, 的状态-更改为ord。请注意,最终结果完全符合预期,因为-是手头公式中的一元运算符,而不是二元运算符。

  • \infty状态为。 也没有问题,因为在和ord之间没有插入额外的空格-- 这对于一元运算符来说是合适的。-\infty

  • \right|有状态mathclose;仍然没问题。

答案2

如果你将示例修改为

\tracingonline=1 \showboxdepth=\maxdimen \showboxbreadth=\maxdimen

$\mathopen|-\infty\mathclose| \left|-\infty\right|\showlists$\showlists
\end

你进入终端

### math mode entered at line 3
\mathopen
.\fam2 j
\mathbin
.\fam2 ^^@
\mathord
.\fam2 1
\mathclose
.\fam2 j
\mathinner
.\left"26A30C
.\mathbin
..\fam2 ^^@
.\mathord
..\fam2 1
.\right"26A30C

这应该可以回答你的问题:原子的“变化”\mathbin发生在稍后,即在将数学列表转换为水平列表期间插入空格时。事实上,第二个\showlists结果是

### horizontal mode entered at line 3
\hbox(0.0+0.0)x20.0
\mathon
\tensy j
\tensy ^^@
\tensy 1
\tensy j
\glue(\thinmuskip) 1.66663
\hbox(7.5+2.5)x23.33339
.\hbox(7.5+2.5)x2.77779
..\tensy j
.\tensy ^^@
.\tensy 1
.\hbox(7.5+2.5)x2.77779
..\tensy j
\mathoff

请注意,的 ASCII 码j"6A,因此在所有情况下都使用相同的字形来实现垂直条。

相关内容