我使用的是 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
答案2
希望这能满足要求:
\documentclass{book}
\usepackage{mathtools}
\begin{document}
$\hat{V}$\quad$\boldsymbol{\hat{V}}$
\end{document}