如何更改操作员字体?

如何更改操作员字体?

我正在制作的文档使用的是其他语言(泰语)。但是 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

字体是“TH Sarabun New”,是主字体,而不是数学字体

答案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到泰语字体中。

相关内容