因为我想要一个比单个字母\widehat
更宽的,所以我搜索并找到了\hat
这个答案。但是,当我尝试使用 LuaLaTeX 进行编译时,得到了以下结果:
有没有什么办法可以解决这个问题?
下面是 MWE。
\documentclass{amsart}
\usepackage{kpfonts}
\usepackage{scalerel,stackengine}
\stackMath
\newcommand\reallywidehat[1]{%
\savestack{\tmpbox}{\stretchto{%
\scaleto{%
\scalerel*[\widthof{\ensuremath{#1}}]{\kern.1pt\mathchar"0362\kern.1pt}%
{\rule{0ex}{\textheight}}%WIDTH-LIMITED CIRCUMFLEX
}{\textheight}%
}{2.4ex}}%
\stackon[-8.5pt]{#1}{\tmpbox}%
}
\begin{document}
Kepler fonts
$\sigma, \hat{\sigma}, \widehat{\sigma},
\reallywidehat{\sigma}, \reallywidehat{\sigma\sigma\sigma}$
$\varepsilon, \hat{\varepsilon}, \widehat{\varepsilon},
\reallywidehat{\varepsilon},
\reallywidehat{\varepsilon\varepsilon\varepsilon}$
$a, \hat{a}, \widehat{a},
\reallywidehat{a}, \reallywidehat{aaa}$
$c, \hat{c}, \widehat{c},
\reallywidehat{c}, \reallywidehat{ccc}$
\end{document}
答案1
如果你添加
\fontname\textfont3
最后,您会看到字体是KpMath-Regular.otf
,其中插槽U+0062
由“b”占据,这解释了您得到的内容。
\documentclass{amsart}
\usepackage{kpfonts}
\usepackage{scalerel,stackengine}
\stackMath
\newcommand\reallywidehat[1]{%
\sbox8{\ensuremath{#1}}%
\savestack{\tmpbox}{\stretchto{%
\scaleto{%
\scalerel*[0.08\wd8]{\kern.1pt{\hat{}}\kern.1pt}%
{\rule{0ex}{\textheight}}%WIDTH-LIMITED CIRCUMFLEX
}{\textheight}%
}{1.2ex}}%
\stackon[-0.7ex]{#1}{\tmpbox}%
}
\begin{document}
Kepler fonts
$\reallywidehat{\sigma\sigma\sigma\sigma\sigma\sigma\sigma\sigma\sigma\sigma}$
$\reallywidehat{\sigma\sigma\sigma}$
\end{document}
这需要修复,但我把这个任务留给你,因为我认为结果不值得付出努力。