使用 unicode-math 包在数学模式下使用 mathbf 时字体会发生变化

使用 unicode-math 包在数学模式下使用 mathbf 时字体会发生变化

我正在使用fontspecunicode-math包分别加载 Libertinus Serif 和 Libertinus Math 字体。但是,当我\mathbf在数学模式下使用该命令时,字体莫名其妙地变为 Latin Modern。这是一个 MWE:

\documentclass{scrartcl}
\usepackage{fontspec,realscripts}
\setmainfont{Libertinus Serif}
\newfontfamily\lmr{Latin Modern Roman}

\usepackage{unicode-math}
\setmathfont{Libertinus Math}
\setmathfont[range=\mathbf]{Libertinus Serif}

\begin{document}
$1234567890$ \textbf{1234567890} $\mathbf{1234567890}$ \textbf{\lmr 1234567890}
\end{document}

我如何获得大胆的Libertinus Serif 的版本使用\mathbf

编辑 添加以下内容也无济于事:

\setmathfont[range=\mathbf]{Libertinus Serif}

答案1

\mathbf您可以按通常方式声明字体,也可以使用\symbf而不是使用单独的字体,在常规数学字体中使用上平面 1 数学字母块中的粗体字母。(旧版本uniocde-math定义\mathbf为使用此范围)

在此处输入图片描述

\documentclass{scrartcl}
\usepackage{fontspec,realscripts}
\setmainfont{Libertinus Serif}
\newfontfamily\lmr{Latin Modern Roman}

\usepackage{unicode-math}
\setmathfont{Libertinus Math}
\setmathfont[range=\mathbf]{Libertinus Serif}
\DeclareMathAlphabet      {\mathbf}{\encodingdefault}{\familydefault}{bx}{n}
\begin{document}
$1234567890$ \textbf{1234567890} $\mathbf{1234567890} \symbf{123456789}$ \textbf{\lmr 1234567890}
\end{document}

答案2

unicode-math加载所有字体相关的包:

\documentclass{scrartcl}
\usepackage{realscripts}
\usepackage{unicode-math}
\setmainfont{Libertinus Serif}
\newfontfamily\lmr{Latin Modern Roman}

\setmathfont{Libertinus Math}
\setmathfont[range=\mathbf]{Libertinus Serif}

\begin{document}
    $1234567890$ \textbf{1234567890} $\mathbf{1234567890}$ \textbf{\lmr 1234567890}
\end{document}

答案3

这似乎是一个替代解决方案

\documentclass{article}
\usepackage{unicode-math}

\setmainfont{Libertinus Serif}
\setmathfont{Libertinus Math}
\setmathfontface\mathbf{Libertinus Serif Semibold}
\newfontfamily\lmr{Latin Modern Roman}
\begin{document}
$1234567890G$ \textbf{1234567890G} $\mathbf{1234567890G}$ \textbf{\lmr 1234567890G}

\结束{文档}

相关内容