什么是 \mathchoice?

什么是 \mathchoice?

有人能给我一份详细的入门指南吗\mathchoice?我试图定义下标和上标的命令(我发现它们存在,被称为 \underset 和 \overset),到目前为止,我一直在使用缩放数组(矩阵)来实现这一点,即压缩包含文本行和上标/下标内容的列向量,以避免矩阵膨胀并在其自身和周围环境之间留下空间,并将其内容重新缩放为正常大小或上标/下标的较小尺寸。

问题是,一旦此列向量的“单元格”高度发生变化,我的文本就会开始飞到其余文本上方或沉入其下方。因此,我必须处理缩放比例,而找到完全正确的缩放因子以使文本与附近的文本对齐,这通常很无聊。在处理这个问题时,我尝试定义一个命令\lower,但遇到了Command \lower already defined错误。我查找了\lower一下,发现了一个叫做 \mathchoice 的东西。问题是,我发现的似乎只是故障排除,并且需要对是什么有最低限度的了解\mathchoice,或者至少对某些代码行(如\def\xfb#1#2{\fbox{$#1#2$}})的作用有最低限度的了解,而我没有;或者也许我发现了什么(即\mathchoice 的正确使用) 仅旨在提供实用建议,即为您提供可用的代码,而不是解释如何使用推荐的代码。

为了举一个与无关的例子\mathchoice,我的意思是我发现似乎要么要求读者知道\newcommand{\norm}[1]{\left\|#1\right\|}正在定义一个新命令,该命令由调用\norm,有一个参数,并将其放在\left\|和之间\right\|,它们是自动调整大小的双竖线,要么只给读者代码而没有任何解释它的意图。\mathpalette似乎与密切相关\mathchoice,所以我认为就两者寻求帮助并不合适。

答案1

\mathchoice旨在解决定义数学模式命令的问题,这些命令在四种主要数学样式中表现不同,即,展示文本脚本腳本腳本。我将略过四种次要(或“局促”)风格,因为它们与 无关\mathchoice

TeX 在显示时使用显示样式;在内联公式中则使用文本样式。但下标或上标在第一级使用脚本样式,从第二级开始使用脚本样式。

但是,当以显示样式排版分数时,TeX 会使用文本样式作为分子和分母。但是当分数以文本样式开始时,它将使用脚本样式。

让我们举个例子。在amsmath中,\iint排版了一个二重积分;它由排版两个积分符号构成,但它们必须比 的结果更接近\int\int。但是,显示样式中的备份量必须比其他样式中的备份量更大,因此amsmath使用

\mkern-7mu\mathchoice{\mkern-2mu}{}{}{}

这意味着在显示样式中备份将是-9mu,但在其他样式中仅为-7mu。

另一个重要的例子是\text@,它是amsmath内部的\text

\def\text@#1{{\mathchoice
  {\textdef@\displaystyle\f@size{#1}}%
  {\textdef@\textstyle\f@size{\firstchoice@false #1}}%
  {\textdef@\textstyle\sf@size{\firstchoice@false #1}}%
  {\textdef@\textstyle \ssf@size{\firstchoice@false #1}}%
  \check@mathfonts
  }%
}

除了一些小细节,这通过使用不同的字体排版四个框来实现目的:\f@size是当前字体大小的 LaTeX 内部框,\sf@size\ssf@size对应于第一和第二级下标/上标的字体大小的内部框。当 TeX 最终决定要排版包含的子公式的样式时\text,它将使用四个框中的一个。

这些盒子是TeX 不知道该使用哪一个,因为 TeX 的设计中可能存在最大的缺陷,即它如何管理分数。但描述这一点就太过分了。

原语\mathchoice有四个参数,应该是数学材料;它们以相应的样式排版并存储起来:

\mathchoice{<material for display style>}
           {<material for text style>}
           {<material for script style>}
           {<material for scriptscript style>}

(在定义中\text@我们看到\textdef@调用\hbox切换回文本模式)。

最常用的\mathchoice是通过\mathpalette,你可以在\mathpalette 的奥秘

答案2

这个问题(以及许多其他问题)的最佳答案是TeX 按主题分类作者:Victor Eijkhout。texdoc texbytopic免费试用这本好书。

无论如何,它告诉您 TeX 中有八种数学模式:

数学公式有八种样式可供选择:D 显示样式、T 文本样式、S 脚本样式、SS 脚本样式以及这四种“紧凑”样式 D'、T'、S'、SS'。紧凑样式的主要区别在于上标没有像原始样式那样凸起。

并进一步。

原始命令

  \mathchoice{D}{T}{S}{SS}

让用户为四种样式指定公式的四种变体。TEX 会构造所有四种变体并插入适当的变体。

相关内容