双宽帽 X

双宽帽 X

我怎样才能将双宽帽置于 X 轴的中心?它在 Y 轴上工作正常,但 X 轴上的第二个宽帽的中心不同。

代码:

\documentclass{article}
\usepackage{amsmath}
\begin{document}
    $\widehat{\widehat{Y}}$ \hspace{1cm}    $\widehat{\widehat{X}}$
\end{document}

输出:

在此处输入图片描述

答案1

我不知道自动化解决方案,但在下面的代码中,我定义了一个\wdoublehat带有可选参数数学胶水的宏,\wdoublehat[1.5mu]{X}看起来有些令人满意,因为它Z也适用于字母,但对于其他字母,您应该调整1.5mu,并且Y不使用可选参数。

屏幕截图显示,根本原因是字母在其边界框内的位置。外部的放置(和大小)\widehat显然取决于这个边界框(第一个\widehat似乎知道更多,可能是一些斜体校正内容或与它查询的字形相关的其他数据;但外部似乎只使用其(现在不是字母)参数的边界框)。的问题X是,相对于边界框的中点,字母的(顶部)比的情况更靠右Y

\documentclass{article}
\usepackage{amsmath}
%\usepackage{mathtools}
\begin{document}
    
\makeatletter
\@tfor\x:=ABCDEFGHIJKLMNOPQRSTUVWXYZ\do{{\fboxsep-\fboxrule\fbox{$\x$}} }
\makeatother

\makeatletter
\@tfor\x:=ABCDEFGHIJKLMNOPQRSTUVWXYZ\do{{\fboxsep-\fboxrule\fbox{$\widehat{\x}$}} }
\makeatother

\makeatletter
\@tfor\x:=ABCDEFGHIJKLMNOPQRSTUVWXYZ\do{$\widehat{\hbox{\fboxsep-\fboxrule\fbox{$\widehat{\x}$}}}$ } 
\makeatother

\makeatletter
\@tfor\x:=ABCDEFGHIJKLMNOPQRSTUVWXYZ\do{$\widehat{\widehat{\x}}$ } 
\makeatother

\newcommand\wdoublehat[2][0mu]{\mskip#1\widehat{\mskip-#1\widehat{#2}\mskip#1}\mskip-#1\relax}

\makeatletter
\@tfor\x:=ABCDEFGHIJKLMNOPQRSTUVWXYZ\do{$\wdoublehat[1.5mu]{\x}$ } 
\makeatother


\end{document}

输出(倒数第二行显示嵌套\widehat,最后一行显示使用\wdoublehat1.5mu移位)

宽帽双人

再次:

\documentclass{article}
\usepackage{amsmath}
\newcommand\wdoublehat[2][0mu]{\mskip#1\widehat{\mskip-#1\widehat{#2}\mskip#1}\mskip-#1\relax}

\begin{document}
\makeatletter
$\@tfor\x:=ABCDEFGHIJKLMNOPQRSTUVWXYZ\do{\widehat{\widehat{\x}}}$ (nested, no shift)
\makeatother

\makeatletter
$\@tfor\x:=ABCDEFGHIJKLMNOPQRSTUVWXYZ\do{\wdoublehat[1.5mu]{\x}}$ (1.5mu shift)
\makeatother

\makeatletter
$\@tfor\x:=ABCDEFGHIJKLMNOPQRSTUVWXYZ\do{\wdoublehat[2mu]{\x}}$ (2mu shift)
\makeatother

\makeatletter
$\@tfor\x:=ABCDEFGHIJKLMNOPQRSTUVWXYZ\do{\wdoublehat[2.5mu]{\x}}$ (2.5mu shift)
\makeatother

\makeatletter
$\@tfor\x:=ABCDEFGHIJKLMNOPQRSTUVWXYZ\do{\wdoublehat[3mu]{\x}}$ (3mu shift)
\makeatother

\end{document}

更多演示

(在此屏幕截图中,第一行 X 的左上方有一些墨水,这是从我截取屏幕截图的完整文档中的 Q 下降部分:不要用擦洗海绵清洁您的屏幕!)

可以将每个字母所需的移位存储在类似数组的结构中,然后使用将自动进行。但最好让用户在序言中一劳永逸地定义此类命令,例如适当地使用此答案中的\doublehatX命令。\wdoublehat[<mu shift>]

相关内容