xelatex 中的数学文本问题

xelatex 中的数学文本问题

由于某些原因,天城文文档的数学部分(如 sin、cos 等)也使用天城文。以下是一个例子:

\documentclass{article}
\usepackage{unicode-math}
\setmainfont{AnnapurnaSIL-Regular.ttf}%
[Script=Devanagari,Mapping=velthuis,
BoldFont=AnnapurnaSIL-Bold.ttf]
\setmathfont{STIX2Math.otf}[Scale=MatchUppercase]
\setmathfont{STIX2Math.otf}[Scale=1.2,range=it/{num,Latin,latin}]
\setmathfont{STIX2Math.otf}[Scale=1.2,range=up/{num,Latin,latin}]
\begin{document}
    saMkriyaa $\bigtriangledown$ jo $x\bigtriangledown y=x \sin y$  dvaaraa paribhaa.sit hai|
    \(\sin^2\theta+\cos^2\theta=1\)
\end{document}

输出为

在此处输入图片描述

正如我们所见,\sin\cos以天城文而不是英语出现。

答案1

使用\setmathrm

\documentclass{article}

\usepackage{unicode-math}

\setmainfont{Kohinoor Devanagari}[Script=Devanagari,Mapping=velthuis]

\setmathfont{STIX2Math.otf}[Scale=MatchUppercase]
\setmathrm{STIX2Math.otf}[Scale=MatchUppercase]

\begin{document}

saMkriyaa $\bigtriangledown$ jo $x\bigtriangledown y=x \sin y$  dvaaraa paribhaa.sit hai|
\(\sin^2\theta+\cos^2\theta=1\)

\end{document}

在此处输入图片描述

改回天城体字体,我在我的系统上使用了一种。

答案2

这是因为操作员字体默认为\mathrm,即默认情况下\rmfamily,您设置它将拉丁字母映射到天城文。

就像 egreg 所说,你可以用 来解决这个问题\setmathrm,尽管unicode-math也有一个\setoperatorfont命令。例如,要使用拉丁文脚本的无衬线运算符名称:

\setmathsf{NewComputerModernSans}[Scale=MatchLowercase] % For example.
\setoperatorfont\mathsf

相关内容