在研究这我的问题,我偶然发现了以下问题\mathpalette
。为简单起见,我举了一个例子,在实践中,使用 是荒谬的\mathpalette
:\mathpalette{}{B}_b
给出输出,而简单的B_b
给出。请注意,在后一个版本中,下标更接近“B”,这很好。如果\mathpalette
使用 版本\mathchoice{B}{B}{B}{B}_b
,而不是 ,当然也会有同样的问题。
有没有办法解决这个问题?(我的意思是除了\mathpalette{}{B_b}
,这不是我需要的选项。)
答案1
简短回答:不会。如果您使用\mathchoice
,这是不可避免的。
Luatex 提供了一种\mathstyle
基于 的排版方法,而不必依赖
\mathchoice
,请参阅我的回答这个问题了解详情。
答案2
据我所知, 会为\mathchoice
您提供数学列表中的选择项; 会为_b
您提供一个没有原子核或上标的 ord 原子。相反,B_b
会为您提供一个具有原子核和下标的 ord 原子。
您可以使用 TeX 来查看它\showlists
。
$\mathchoice{B}{B}{B}{B}_b\showlists$
$B_b\showlists$
\bye
然后在日志中,你会看到第一个数学列表,
\mathchoice
D\mathord
D.\fam1 B
T\mathord
T.\fam1 B
S\mathord
S.\fam1 B
s\mathord
s.\fam1 B
\mathord
_\fam1 b
对于第二个,你得到
\mathord
.\fam1 B
_\fam1 b
请注意\mathord
第一个列表倒数第二行。
TeXbook 的第 17 章和第 26 章对此进行了描述。