让所有的公式都使用正文直立字体

首先说明,这是邪道,除非你知道自己在干什么,请不要使用这篇文章提到的方法。这篇文章纯粹是一个技巧的记录,在某些时候可能会有用。

有时候我们会需要将公式字体修改为正文的 \rmfamily\upright\normalsize 的样式。虽然看起来很复杂,其实却很简单。我们只需要在导言区末尾添加以下两行代码:

1
2
\everymath\expandafter{\the\everymath\mathgroup0}
\everydisplay\expandafter{\the\everydisplay\mathgroup0}

解释

这里实际起作用的是 \mathgroup0。它将数学字体设置为第 0 组字体,也就是正文字体。

\expandafter{\the\everymath 能在外层的 \everymath 起作用之前,先将内层的 \everymath 展开。这样可以将 \everymath 的结果保留。若不然,比如有代码:

1
2
\everymath{\displaystyle}
\everymath{\mathgroup0}

作者的本意是将每个行内数学公式都是用 \displaystyle,同时设置字体为正文字体。但实际上,由于第二行的存在,第一行的效果被覆盖掉了。为了保证我们添加的代码不影响已有的设置,所以要用 \expandafter{\the\everymath 的方式对已有的设置进行保护。例如,下面的代码则可以达到目的:

1
2
\everymath{\displaystyle}
\everymath\expandafter{\the\everymath\mathgroup0}

您的鼓励是我写作最大的动力

俗话说,投资效率是最好的投资。 如果您感觉我的文章质量不错,读后收获很大,预计能为您提高 10% 的工作效率,不妨小额捐助我一下,让我有动力继续写出更多好文章。


撰写评论

写了这么多年博客,收到的优秀评论少之又少。在这个属于 SNS 的时代也并不缺少向作者反馈的渠道。因此,如果你希望撰写评论,请发邮件至我的邮箱并注明文章标题,我会挑选对读者有价值的评论附加到文章末尾。