是否有可能以某种方式使用 newtxtext 和 newtxmath 字体以及相应的 .sty 文件(按原样或修改后)(如果是后者,如何使用)——使用 XeLaTeX 而不是 pdfLaTeX?
我注意到:
- newtxttext 主要使用 TeXGyre Termes,但也使用 TeXGyre Heros 作为无衬线字体,可能还使用一些其他字体;
- newtxmath 使用 txmath 的数学字体,并进行了许多度量调整和其他修改
答案1
是的,你可以\usepackage{newtxtext, newtxmath}
用 XeLaTeX 编写和编译。你可能会遇到与希腊字母相关的模糊错误\mathrm
。(预计到达时间:评论者提出的连字符模式和非 ASCII 字符的错误比我所知道的要多。)
您还可以使用 中的 TeX Gyre Termes Math 字体unicode-math
,它的外观与 非常相似newtxmath
,但具有所有现代功能和更多字形选择。还有一种文本字体 TeX Gyre Termes X,专门基于 中对 Times 的调整txfonts
。或者您可以半途而废,使用 OpenType 版本的 Times 以及fontspec
中的数学运算newtxmath
。
还要注意的是,TeX 的新开发目前集中在 LuaTeX 上。有一些软件包仍然只能在 XeTeX 中使用,但在我需要的功能中,HarfBuzz 字体渲染今年终于添加到了 LuaTeX 中,ucharclasses
无法使用,我更喜欢unicode-math
。mathspec
还有一些杂项软件包我可能需要 XeTeX 来处理,但多年来我一直在尽可能使用 LuaTeX,因为它对 的支持更好microtype
。
务实的解决方案
由于最好在 Unicode 引擎中使用 Unicode 字体,iftex
因此如果必须同时支持两者,请使用检测您正在编译的系统类型。
\usepackage{iftex}
\ifTUTeX
\usepackage{unicode-math}
\defaultfontfeatures{ Scale=MatchLowercase, Ligatures=TeX }
\setmainfont{TeX Gyre Termes}[Scale=1.0]
\setmathfont{TeX Gyre Termes Math}
\else
\usepackage{amsmath, newtxtext, newtxmath}
\fi
应该很少有不兼容的情况。我见过的一个不兼容情况是 中的大写希腊字母,例如 Δ \mathrm
,它恰好可以在 中使用newtxmath
。在 中unicode-math
,你可以使用\symup\Delta
或\upDelta
来代替。
如果您出于某种原因想要使用newtxmath
而不是unicode-math
,则可以使用fontspec
TeX newtxmath
Gyre Termes 作为主字体,mathastext
和mathspec
,这也会为您提供数学模式下 OpenType 字体的字母。如果 XeTeX/LuaTeX 输出尽可能与 PDFTeX 输出相同很重要,请使用 TeX Gyre Termes X 作为主字体。