考虑以下测试文件并使用 LuaTeX(TeXLive 2016)进行编译:
\documentclass{article}
\usepackage[math-style = TeX]{unicode-math}
\setmainfont{texgyretermes}[
Extension = .otf,
UprightFont = *-regular,
BoldFont = *-bold,
ItalicFont = *-italic,
BoldItalicFont = *-bolditalic,
]
\setsansfont{texgyreadventor}[
Extension = .otf,
UprightFont = *-regular,
BoldFont = *-bold,
ItalicFont = *-italic,
BoldItalicFont = *-bolditalic,
]
\setmathfont{Latin Modern Math}
\begin{document}
\begin{equation}
\int_{t = 0}^{x^2} t dt
\end{equation}
\setmathfont[range=up/{greek,Greek,latin,Latin,num}]{texgyreadventor-regular}
\setmathfont[range=it/{greek,Greek,latin,Latin,num}]{texgyreadventor-italic}
\setmathfont[range = {}]{Latin Modern Math}
\begin{equation}
\int_{t = 0}^{x^2} t dt
\end{equation}
\setmathfont{Latin Modern Math}
\begin{equation}
\int_{t = 0}^{x^2} t dt
\end{equation}
% {
% \setmathfont[range=up/{greek,Greek,latin,Latin,num}]{texgyreadventor-regular}
% \setmathfont[range=it/{greek,Greek,latin,Latin,num}]{texgyreadventor-italic}
% \setmathfont[range = {}]{Latin Modern Math}
% \begin{equation}
% \int_{t = 0}^{x^2} t dt
% \end{equation}
% }
\end{document}
如果我取消注释最后几行,LuaTeX 就会永远挂起。如何更改组内的数学字体?
编辑
我很清楚我不应该使用非数学字体来做数学题,但不幸的是,据我所知,无衬线数学字体还不存在。
该问题似乎与我使用非数学字体无关。
\documentclass{article}
\usepackage[math-style = TeX]{unicode-math}
\setmathfont{Latin Modern Math}
\begin{document}
\begin{equation}
\int_{t = 0}^{x^2} t dt
\end{equation}
\setmathfont{Asana-Math}
\begin{equation}
\int_{t = 0}^{x^2} t dt
\end{equation}
\setmathfont{Latin Modern Math}
\begin{equation}
\int_{t = 0}^{x^2} t dt
\end{equation}
% {
% \setmathfont{Asana-Math}
% \begin{equation}
% \int_{t = 0}^{x^2} t dt
% \end{equation}
% }
\end{document}
然而,正如@cfr所建议的,我应该用\mathversion
:以下作品。
\documentclass{article}
\usepackage[math-style = TeX]{unicode-math}
\setmathfont[version=lm]{Latin Modern Math}
\setmathfont[version=asana]{Asana-Math}
\mathversion{lm}
\begin{document}
\begin{equation}
\int_{t = 0}^{x^2} t dt
\end{equation}
\mathversion{asana}
\begin{equation}
\int_{t = 0}^{x^2} t dt
\end{equation}
\mathversion{lm}
\begin{equation}
\int_{t = 0}^{x^2} t dt
\end{equation}
{
\mathversion{asana}
\begin{equation}
\int_{t = 0}^{x^2} t dt
\end{equation}
}
\end{document}
答案1
这里实际上有两个问题。
首先unicode-math
想要opentype 字体带有适当的math
表格。据我所知,它只适用于完全没有这个的字体,因为配置会直接设置适用于range
,up
尽管字体缺少通常可以设置范围等的东西。
设置替代数学字体集的常用方法是声明替代数学,version
例如bold
versus normal
。unicode-math
支持这一点。这基本上是可行的,正如您的示例所示。
然而,第二个问题是,似乎无法将range
与结合使用version
。设置范围会影响全部数学版本,而不仅仅是指定的版本,正如我在这个问题。