我正在制作的文档使用的是其他语言(泰语)。但是 latex 中的函数字体是主字体而不是数学字体(XITS Math)。我该怎么做才能将函数字体从主字体更改为数学字体?
%% Using Thai font %%
\usepackage{fontspec}
\usepackage{xunicode}
\usepackage{xltxtra}
\XeTeXlinebreaklocale "th"
\renewcommand{\baselinestretch}{1.6}
\setmainfont[Script=Thai,Scale=1.4,
ItalicFont={THSarabunNew-Italic.ttf},
BoldFont={THSarabunNew-Bold.ttf},
BoldItalicFont={THSarabunNew-BoldItalic.ttf}
]{THSarabunNew.ttf}
\newfontfamily{\kanit}{Kanit}[Extension = .ttf]
\setmathfont{XITS Math} % Math Font
答案1
默认情况下,unicode-math
将操作员字体(由\sin
、\operatorname
等使用\DeclareMathOperator
)设置为与 相同的字体\mathrm
,即与文档的主字体相同。
设置XITS 文本字体的\sin
最简单方法是\cos
\setmathrm{XITS}
您还可以声明一个不同的字体系列作为您的操作符字体,而不是\setoperatorfont{\mathrm}
。
如果在您的安装中无法通过显示名称加载 XITS,您可以添加上面的代码块:
\defaultfontfeatures[XITS]{
Ligatures = Common,
Scale = MatchLowercase,
UprightFont = *-Regular,
BoldFont = *-Bold,
ItalicFont = *-Italic,
BoldItalicFont = *-BoldItalic,
Extension = .otf}
顺便说一句,您的序言中有几个过时的软件包。您可以尝试以下操作:
\usepackage{babel}
\usepackage{unicode-math}
\babelprovide[import, main]{thai}
\defaultfontfeatures{ Scale = MatchLowercase, Ligatures=TeX }
% The following `\defaultfontfeatures` commands are probably unnecessary.
\defaultfontfeatures[THSarabunNew]{
ItalicFont = *-Italic,
BoldFont = *-Bold,
BoldItalicFont = *-BoldItalic,
Extension = .ttf}
\defaultfontfeatures[XITS]{
Ligatures = Common,
UprightFont = *-Regular,
BoldFont = *-Bold,
ItalicFont = *-Italic,
BoldItalicFont = *-BoldItalic,
Extension = .otf}
\babelfont{rm}
[Scale=1.4]{THSarabunNew}
\setmathfont{XITS Math}
\setmathrm{XITS}
\setoperatorfont{\mathrm}
如果你想混合泰语和英语,使用 XITS 作为你的英文字体,请将english
选项添加到\documentclass
和命令中
\babelfont[english]{rm}
{XITS}
在 LuaLaTeX 上,您可能需要或不需要将字体选项添加Renderer=HarfBuzz
到泰语字体中。