更改数学函数的字体(ln、exp 等)

更改数学函数的字体(ln、exp 等)

已解决:请参阅下面的编辑#1 和#2。

我正在尝试设置一个使用无衬线数学字体 (Myriad Pro) 和衬线文本字体 (Arno Pro) 的 XeLaTeX 文档。由于 Myriad Pro 不具备完整的数学支持,因此我使用 MdSymbol 包来访问数学符号。但是,当调用内置数学函数(例如 \ln 或 \exp(可能还有 \cos 等)时,字体会恢复为 Computer Modern。

有什么方法可以让这些内置函数在 Myriad Pro 中正确显示?

另外还有一个问题,我想在主文本字体 (Arno Pro) 而不是数学字体 (Myriad Pro) 中内嵌数学公式。有人能建议一种方便的方法吗?

下面的 MWE。

\documentclass[11pt]{article}
\usepackage{mathspec}
\setmainfont{ArnoPro-Regular.otf}
\setmathfont(Digits,Latin,Greek)[Uppercase=Regular,Lowercase=Regular]{MyriadPro-Regular}
\usepackage{mdsymbol}

\begin{document}

\begin{equation}
   \begin{split}
      j_0 = \frac{j_{kin}}{\exp{\frac{- \alpha_c F \eta}{RT}}} \\
      \alpha_c = - \frac{RT}{F \eta} \ln{\frac{j_{kin}}{j_0}}
   \end{split}
\end{equation}

\end{document}

来自较大文档的示例。文本在 Arno Pro 中(正确),数学在 Myriad Pro 中(正确),但 \ln 和 \exp 在 Computer Modern 中生成文本。

编辑#1:可以通过添加以下内容解决 \ln 问题:

\setmathrm{MyriadPro-Regular}

答案在这里:XeTeX/mathspec 数学环境字体

编辑#2:可以使用本页中的说明解决内联字体问题:在内联样式和显示样式公式中使用不同的数学字体

但是,那里的讨论和此主题的评论让我相信,无论是在行内还是在专用环境中,最好使用相同的字体来编写数学表达式。由于在一行文本中切换衬线和无衬线会很不协调,因此我选择始终只使用衬线字体。

答案1

尽管@egreg 给出了一种方法,\setmathrm但是也可以将操作员字体更改为除之外的其他字体mathrm

在 中unicode-math,这是\operatorfont命令,例如

\operatorfont\mathsfup

在经典 LaTeX 中,你可以将\operator@font命令重新定义为不同于 的字体\mathrm。请记住\makeatletter在使用带有 的命令名之前@以及\makeatother完成后使用 。

相关内容