数学模式下字体大小的后端推理

数学模式下字体大小的后端推理

这更像是一个哲学问题。我一直在寻找在本地增加数学模式字体大小的方法(例如,仅在一个方程/对齐环境中),但我遇到的解决方案通常只是恢复到文本模式。我想知道 TeX 系统中是否存在一些结构性原因,导致我们无法直接访问数学符号的字体大小(仅在单个方程/对齐环境中本地访问)?有诸如“dfrac”之类的命令,所以我希望也能拥有更多的全局控制。

例如,正如您在这些答案中看到的,作者恢复到了文本模式。

谢谢

答案1

为了扩展 David 的回答,\DeclareMathSizes定义一个宏,S@XX其中XX当前类型大小以点为单位,例如,

 \S@10 = macro: -> {
    \gdef\tf@size{10}
    \gdef\sf@size{7}
    \gdef\ssf@size{5}
 }

\meaning(为了清楚起见,我修改了输出中的空格和换行符)。

这意味着如果您想了解大小,您只需查看这些宏的值,事实上,这正是 LaTeX 宏定义中发生的情况:

\DeclareRobustCommand{\LaTeX}{L\kern-.36em%
        {\sbox\z@ T%
         \vbox to\ht\z@{\hbox{\check@mathfonts
                              \fontsize\sf@size\z@ % 

答案2

对于数学字体大小的全局选择,该命令\DeclareMathSizes指定相对于文本大小的数学字体大小,尽管很少更改默认值。在 10pt 时,默认值设置为

\DeclareMathSizes{10pt}{10pt}{7}{5}

也就是说,如果当前文本为,则在和10pt中使用 10pt ,在 中使用 7pt ,在 中使用 5pt 。\displaystyle\textstyle\scriptstyle\scriptscriptstyle

对于公式中的局部选择,情况则大不相同。您提到,\dfrac但那不是选择字体大小,而是选择数学字体样式。给定的数学公式可以访问 16 种字体(fam0 ... fam15)中的三种样式(大小)(textstyle、scriptstyle、scriptscriptstyle)的字体

您可以通过以下方式查看为 fam2 中的文本样式设置的字体。请注意,这些设置适用于整个公式:如果您在最后一个(或或其他)\showthe\textfont2之前更改它们,则该更改将应用​​于整个表达式。$\end{equation}

如果你有

$ x  + \mbox{\large $x+y$} + y$

然后,\large除了更改当前文本字体之外,还安排如果在该范围内使用数学,所有 3 * 16 数学字体设置都将被更改,因此嵌套的数学列表 x + y 将使用更大的字体。

如果您尝试\large直接在外部数学列表中使用,则 LaTeX 会警告使用错误(它可能应该是错误而不是警告)。实际发生的情况取决于大小更改的具体使用位置。它可能适用于整个表达式,包括大小更改之前的项,它可能根本没有可见的效果,或者它可能似乎有效并且仅适用于子公式(如果由于技术原因,子公式已经是一个新的嵌套数学列表,例如数组单元格)。

答案3

这是一个不同帽子或平行线的情况。

如果将系列视为字体内的(已格式化的)字形集合,则可能更容易理解该概念。

在文本中,x(字形 U+0078 拉丁小写字母 X)可以根据字体文件排版为直立、斜体或粗体等。

在数学中,

相关内容