\hat 太小,\widehat 对于 Kepler 字体来说太宽

\hat 太小,\widehat 对于 Kepler 字体来说太宽

我在文档中使用 Kepler 字体。对于数学来说,这是一种非常好的字体,但它在排版 \hat 和 \widehat 命令时存在问题:\hat 命令生成的帽子非常小,而 \widehat 生成的帽子太宽。

有没有办法调整 \hat 和 \widehat 的大小?

这是我的 MWE。附图显示了输出。

\documentclass[12pt,reqno]{amsart}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}

\usepackage{kpfonts}
\usepackage{textcomp}
\usepackage{amsmath,amsthm,amsxtra}
\usepackage{amssymb}
\usepackage{bm}

\begin{document}
Kepler fonts

$\sigma, \hat{\sigma}, \widehat{\sigma}$

$\varepsilon, \hat{\varepsilon}, \widehat{\varepsilon}$

$a, \hat{a}, \widehat{a}$
\end{document}

kpfonts 帽子

答案1

只是稍微修改了我的答案非常宽的帽子符号\reallywidehat将调整至参数的宽度。

\documentclass[12pt,reqno]{amsart}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}

\usepackage{kpfonts}
\usepackage{amsmath,amsthm,amsxtra}
\usepackage{bm}

\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}$
\end{document}

在此处输入图片描述

答案2

如果您可以使用 LuaLaTeX 或 XeLaTeX,则可以使用 Kepler 字体的 OTF 版本,您可能更喜欢这个版本。

\documentclass[12pt,reqno]{amsart}

\usepackage{kpfonts-otf}
\usepackage{amsthm}

\begin{document}
Kepler fonts

$\sigma, \hat{\sigma}, \widehat{\sigma}$

$\varepsilon, \hat{\varepsilon}, \widehat{\varepsilon}$

$a, \hat{a}, \widehat{abcd}$
\end{document}

开普勒字体样本

如果您需要替换来自不同 OpenType 字体的符号,则有一个标准语法unicode-math,例如:

\setmathfont{STIX Two Math}[Scale = MatchLowercase, range={\hat, \widehat}]

有可能的从旧版 8 位 LaTeX 中的数学符号包中获取仅一个重音符号。但每个 8 位包都是不同的。没有标准的方法可以做到这一点。

相关内容