您可以使用range
的功能unicode-math
来为特定的 Unicode 插槽或访问字形的宏设置数学字体。我尝试使用求和符号和拉丁现代,请参阅我的示例:
\documentclass{scrartcl}
\usepackage{amsmath}
\usepackage{unicode-math} % use unicode in math & setup math fonts
\setmathfont{Asana Math}
%\setmathfont[range=\sum]{Latin Modern Math} % substitute Sum sign
\begin{document}
Notice the different sum sign $\sum$, as intended.
Notice also, the difference in spacing, not intended:
\begin{equation}
\begin{bmatrix}
0 & \frac{1}{2} & \frac{2}{3} \\
\frac{3}{4} & 0 & \frac{4}{5} \\
\frac{5}{6} & \frac{6}{7} & 0
\end{bmatrix}
\begin{pmatrix}
A \\
B \\
C
\end{pmatrix}
\end{equation}
\end{document}
但是,不仅和符号会发生变化,而且矩阵中的间距也会发生变化。注释掉 Latin Modern(如示例所示):
启用 Latin Modern(删除相关行前的 %):
为什么会这样?顺便说一句,我使用的Lualatex
是 TeXLive 2012。
答案1
LuaTeX 从最后定义的字体中获取全局数学常量(我还不确定这是否可以视为错误或功能)。一个简单的解决方法是使用空范围再次调用 Asana Math(在没有范围的情况下调用它将撤消之前的字体调用):
\usepackage{amsmath}
\usepackage{unicode-math} % use unicode in math & setup math fonts
\setmathfont{Asana Math}
\setmathfont[range=\sum]{Latin Modern Math} % substitute Sum sign
\setmathfont[range={}]{Asana Math}
\begin{document}
Notice the different sum sign $\sum$, as intended.
Notice also, the difference in spacing, not intended:
\begin{equation}
\begin{bmatrix}
0 & \frac{1}{2} & \frac{2}{3} \\
\frac{3}{4} & 0 & \frac{4}{5} \\
\frac{5}{6} & \frac{6}{7} & 0
\end{bmatrix}
\begin{pmatrix}
A \\
B \\
C
\end{pmatrix}
\end{equation}
\end{document}