![为什么 \symbf 不切换到粗体数学字体?](https://linux22.com/image/449040/%E4%B8%BA%E4%BB%80%E4%B9%88%20%5Csymbf%20%E4%B8%8D%E5%88%87%E6%8D%A2%E5%88%B0%E7%B2%97%E4%BD%93%E6%95%B0%E5%AD%A6%E5%AD%97%E4%BD%93%EF%BC%9F.png)
我使用的是 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$
默认情况下