我正在使用fontspec
和unicode-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}
\结束{文档}