使用 Unicode 数学进行部分符号

使用 Unicode 数学进行部分符号

我在使用 Linux Libertine 和 \partial 符号时遇到了问题。我使用了以下代码,但没有 \partial 符号(我把所有字体都留在那里,但问题是 range=\mathit 的字体):

\documentclass{standalone}

\usepackage{fontspec}
\defaultfontfeatures{Ligatures=TeX}
\setmainfont{Linux Libertine O}
\setsansfont[
BoldFont=LinBiolinumOB,
ItalicFont = LinBiolinumOI,
BoldItalicFont = LinLibertineOBI,
]{Linux Biolinum O}
\usepackage{unicode-math}
\setmathfont{TeXGyrePagellaMath} 
\setmathfont[range=\mathup]{Linux Libertine O}
\setmathfont[range=\mathit]{Linux Libertine O Italic}
\setmathfont[range=\mathbfup]{Linux Libertine O Bold}
\setmathfont[range=\mathbfit]{Linux Libertine O Bold Italic}
\begin{document}
    $x\partial x$
\end{document}

感谢您的帮助。

答案1

您正在使用文本字体进行数学运算。请尝试不要通过以下方式加载来覆盖数学定义:

\setmathfont[range=\mathit/{latin,Latin,num}]{Linux Libertine O Italic}

这将加载 libertine italic 字体,仅用于普通字母和数字。您需要对其他字体加载命令进行类似的调整。

Sample output

\documentclass{article}

\usepackage{fontspec}
\defaultfontfeatures{Ligatures=TeX}
\setmainfont{Linux Libertine O}
\setsansfont[
BoldFont=LinBiolinumOB,
ItalicFont = LinBiolinumOI,
BoldItalicFont = LinLibertineOBI,
]{Linux Biolinum O}
\usepackage{unicode-math}
\setmathfont{TeXGyrePagellaMath} 
\setmathfont[range=\mathup]{Linux Libertine O}
\setmathfont[range=\mathit/{latin,Latin,num}]{Linux Libertine O Italic}
\setmathfont[range=\mathbfup]{Linux Libertine O Bold}
\setmathfont[range=\mathbfit]{Linux Libertine O Bold Italic}
\begin{document}
    $x\partial x$
\end{document}

相关内容