\mathpalette 和 \mathchoice 的问题

\mathpalette 和 \mathchoice 的问题

在研究我的问题,我偶然发现了以下问题\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 章对此进行了描述。

相关内容