使用 unicode-math 和 TeX Gyre Pagella 实现斜体希腊字母、直立运算符和部分符号

使用 unicode-math 和 TeX Gyre Pagella 实现斜体希腊字母、直立运算符和部分符号

\sin我需要正直的数学运算符(例如\tan等)、斜体大写希腊字母和一个有效的\partial运算符。使用下面的代码,我能够得到三个中的两个,但我被告知这不是实现我需要的推荐方法(见评论)。而且我仍然需要一个\partial符号。

\documentclass[convert]{standalone}

\usepackage[math-style=ISO]{unicode-math}
\usepackage{amsmath}

\usepackage{fontspec}
\setmainfont[Ligatures=TeX]{TeX Gyre Pagella}
\setsansfont[Ligatures=TeX,Scale=.9]{TeX Gyre Heros}
\setmonofont[Scale=MatchLowercase]{TeX Gyre Cursor}
\setmathfont[Ligatures=TeX]{TeX Gyre Pagella Math}
\setmathfont[range=\mathup]  {TeX Gyre Pagella}
\setmathfont[range=\mathbfup]{TeX Gyre Pagella Bold}
\setmathfont[range=\mathbfit]{TeX Gyre Pagella Bold Italic}
\setmathfont[range=\mathit]  {TeX Gyre Pagella Italic}

\begin{document}

$x\partial x$

\end{document}

我怎样才能使这三件事发挥作用?

答案1

最终,在问题评论的帮助下,我终于找到了原因。对于那些发现类似问题的人,我在这里发布了一个答案。

  1. 缺失\partial是由于将 unicode 范围重新分配给不同的字体造成的。除非您知道副作用是什么,否则不要这样做。我不知道,因此这个错误的解决方案隐藏了另一个问题。
  2. 该选项math-style=ISO没有破坏我的数学运算符。问题amsmath在于之后的加载unicode-math(unicode-math 手册中指出,必须先加载 amsmath,但我在其他地方搜索错误,认为斜体运算符是 unicode-math 故意设置的)。

因此,在 unicode-math 之前加载 amsmath 并删除问题代码中的范围重新分配可以解决所有问题。

\usepackage[no-math]{fontspec}
\setmainfont[Ligatures={TeX,Common}]{TeX Gyre Pagella}

\usepackage{amsmath}

\usepackage[math-style=ISO]{unicode-math}
\setmathfont{TeX Gyre Pagella Math}

相关内容