我在使用 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 字体,仅用于普通字母和数字。您需要对其他字体加载命令进行类似的调整。
\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}