Fontspec 不会在数学模式下改变数字

Fontspec 不会在数学模式下改变数字

我在序言中一直使用以下内容:

\documentclass{article}[12pt]
\usepackage[lite,subscriptcorrection,zswash,slantedGreek,nofontinfo]{mtpro2}
\usepackage{fontspec}
\setmainfont[Ligatures={TeX,Rare}]{Times New Roman}
\begin{document}
This is a 123 test $123$.
\end{document}

直到我注意到这会产生以下丑陋的结果,并且数字字体错误:数字错误! 我想出了一个临时解决方案mathspec

\documentclass{article}[12pt]
\usepackage[lite,subscriptcorrection,zswash,slantedGreek,nofontinfo]{mtpro2}
\usepackage{mathspec}
\setallmainfonts(Digits,Latin)[Ligatures={TeX,Rare}]{Times New Roman}
\begin{document}
This is a 123 test $123$.
\end{document}

这确实解决了这个问题: 正确的数字 问题是这mathspec要求我使用 XeTeX,这与我当前的工作流程不兼容——我需要使用 LuaTex。有没有办法在不调用 的情况下解决这个问题mathspec

答案1

使用 unicode-math,您可以使用 TeX Gyre Termes Math 字体。TeX Gyre Termes 是 times 的克隆版本,因此适合您的文本字体:

\documentclass{article}[12pt]
\usepackage{unicode-math}
\setmathfont{TeX Gyre Termes Math}
\usepackage{fontspec}
\setmainfont[Ligatures={TeX,Rare}]{Times New Roman}
\begin{document}
This is a 123 test $123$.
\end{document}

在此处输入图片描述

编辑

我测试了你的第一个例子。在 texlive 2019 中没有问题,输出符合要求:

在此处输入图片描述

在 texlive 2017 中,我像你一样得到了“错误”的字体,它有助于使用

 \usepackage[no-math]{fontspec}

相关内容