在数学模式下仅对帽子使用粗体字体

在数学模式下仅对帽子使用粗体字体

我使用的是 libertinus 字体,它也支持数学运算。但是当我尝试用这种字体在变量上放置帽子时,它看起来太“脆弱”了。如何让帽子看起来更厚一些?

我尝试更新\hat{}命令以使用粗体字体,但它也会改变变量。

\let\oldhat\hat
\renewcommand{\hat}[1]{\mathbf{\oldhat{#1}}}

$\hat{\lambda}$     %% This is ok. \lambda does not become bold, and hat looks nice.
$\hat{p}$           %% This is not ok. It makes p also bold.

$\mathbf{\hat{p}}$  %% Ideally I want this to work as expected as well (it works now).

有什么方法可以实现我想要做的事情吗?我想用一些\ooalign魔法,但不知道怎么做。


(编辑)

这个问题可能有点不清楚,所以这里再澄清一下。我也尝试使用 做一些事情\ooalign,但并不完美。以下是基本设置。

\usepackage[T1]{fontenc}
\usepackage{libertinus}

\let\oldhat\hat
\renewcommand{\hat}[1]{{\ooalign{\ensuremath{\mathbf{\oldhat{\phantom{#1}}}}\cr\ensuremath{#1}\cr}}}

$\oldhat{P}\quad$       %% The hat is too flimsy
$\hat{P}\quad$          %% This is ok.
$\hat{\mathbf{P}}\quad$ %% This also works!
$\mathbf{\hat{P}}\quad$ %% Does not work!! ooalign messes up mathbf

输出结果如下: 在此处输入图片描述

如您所见,这有两个问题。首先是居中不正确。我认为这是因为该\mathbf{\oldhat{\phantom{#1}}}部分将变量设为粗体,这扰乱了居中。另一个问题是它\mathbf{\hat{P}}不起作用。如何解决这两个问题?

我不太确定的另一件事是为什么我们需要这么多\ensuremath内容\ooalign。没有这些内容它就无法工作(会产生一些错误)。它不是已经处于数学模式了吗?为什么我们需要\ensuremath再次使用?是否会\ooalign自动将内容置于文本模式?

答案1

在此处输入图片描述

你想要中间形式,只需\bm应用于\hat

\documentclass{book}
\usepackage{bm}

\begin{document}

$\hat{V}\quad \bm{\hat}{V}\quad \bm{\hat{V}}$

\end{document}

答案2

希望这能满足要求:

\documentclass{book}
\usepackage{mathtools}

\begin{document}

$\hat{V}$\quad$\boldsymbol{\hat{V}}$

\end{document}

相关内容