为什么 \symbf 不切换到粗体数学字体?

为什么 \symbf 不切换到粗体数学字体?

我使用的是 Lucida Open Type 字体,因为它们包含粗体数学版本。但是,我发现该命令\symbf实际上并没有切换到粗体数学字体。我使用 Acrobat Reader 检查了嵌入的字体。

这是设计使然吗?如果是,为什么?我以为使用粗体数学字体的目的是用它来排版粗体数学符号。

这是演示该行为的 MWE。它要求在您的系统上安装 Lucida 字体。使用 LuaLaTeX(或 XeLaTeX)进行编译。

\documentclass{article}

\usepackage{amsmath}
\usepackage[bold-style=ISO]{unicode-math}
\defaultfontfeatures{Scale=.92}
\setmainfont{Lucida Bright OT}
\setmathfont{Lucida Bright Math OT}
\setmathfont[version=bold]{Lucida Bright Math OT Demibold}

\NewDocumentCommand{\spat}{m}{\hat{\symbf{#1}}}
\NewDocumentCommand{\Spat}{m}{\widehat{\symbf{#1}}}

\begin{document}
    
\begin{equation}
    \Spat{M} \spat{a} = \spat{f}
\end{equation}

\end{document}

答案1

简短答案

你想要\boldsymbol{\hat{#1}},不是\hat{\symbf{#1}}\hat{mathbf{#1}}

长答案

有三种不同的命令可用于在 中使用某种“粗体数学” unicode-math,每种命令都具有不同的特定功能。还有多种方法可以重新定义所有命令的行为。

\symbf命令将用 Unicode 数学字母数字符号块中的粗体变体替换字母数字符号,来自相同的数学字体. 因此,$A$默认情况下

相关内容