已解决:请参阅下面的编辑#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}
编辑#1:可以通过添加以下内容解决 \ln 问题:
\setmathrm{MyriadPro-Regular}
答案在这里:XeTeX/mathspec 数学环境字体
编辑#2:可以使用本页中的说明解决内联字体问题:在内联样式和显示样式公式中使用不同的数学字体
但是,那里的讨论和此主题的评论让我相信,无论是在行内还是在专用环境中,最好使用相同的字体来编写数学表达式。由于在一行文本中切换衬线和无衬线会很不协调,因此我选择始终只使用衬线字体。
答案1
尽管@egreg 给出了一种方法,\setmathrm
但是也可以将操作员字体更改为除之外的其他字体mathrm
。
在 中unicode-math
,这是\operatorfont
命令,例如
\operatorfont\mathsfup
在经典 LaTeX 中,你可以将\operator@font
命令重新定义为不同于 的字体\mathrm
。请记住\makeatletter
在使用带有 的命令名之前@
以及\makeatother
完成后使用 。