带下标的 \overline 和 \widehat

带下标的 \overline 和 \widehat

我想创建命令来生成上划线(分别是宽帽或箭头),并在末尾带有下标。命令

\overline{X}^{1}   \widehat{X}^{2}  \overrightarrow{X}^{3}

不符合我的需求,因为下标应该由上划线控制(分别是宽帽、右箭头)。理想情况下,我希望有这样的命令

\myoverline_{1}{X}   \mywidehat_{2}{X}  \myoverrightarrow_{3}{X}

最干净的方法是什么?

PS 我能找到的最接近的东西是这个问题

更新这是我希望获得的图片:

在此处输入图片描述

答案1

这种方法将下标赋予“上划线”,正如您所指出的那样。使用此实现,上划线的粗细为 .4pt,可以更改。下标的底部位于参数顶部下方 1.5pt。2pt 设置决定了上划线相对于下标的垂直位置。

\documentclass{article}
\usepackage{stackengine}
\stackMath
\newcommand\subline[2]{\stackon[-1.5pt]{#1}{\rule[2pt]{\widthof{$#1$}}{.4pt}_{#2}}}
\begin{document}
\renewcommand\stackalignment{l}
$A = \subline{X}{1} \subline{g}{2} \subline{Xyzq}{12}$
\end{document}

在此处输入图片描述


对于 widehat,我采用了稍微不同的方法,额外使用了scalerel包。该参数\hatgap给出了 item 和 hat 之间的垂直间隙,并\subdown给出了下标相对于 hat 的相对位置。

\documentclass{article}
\usepackage{scalerel}
\usepackage{stackengine}
\stackMath
\def\hatgap{2pt}
\def\subdown{-2pt}
\newcommand\reallywidehat[2][]{%
\renewcommand\stackalignment{l}%
\stackon[\hatgap]{#2}{%
\stretchto{%
    \scalerel*[\widthof{$#2$}]{\kern-.6pt\bigwedge\kern-.6pt}%
    {\rule[-\textheight/2]{1ex}{\textheight}}%WIDTH-LIMITED BIG WEDGE
}{0.5ex}% THIS SQUEEZES THE WEDGE TO 0.5ex HEIGHT
_{\smash{\belowbaseline[\subdown]{\scriptstyle#1}}}%
}}
\begin{document}
$\reallywidehat[1]{zbcdklm} \times
\reallywidehat[ijk]{zbcdefghijk} = 
\reallywidehat{zb}$
\end{document}

在此处输入图片描述

widehat EDIT 非常松散地基于我的解决方案非常宽的帽子符号,但这个实现比那个实现更优越。

答案2

您的例子看起来很像一个带有(凸起)\overline和上标的符号,我将构建它。

第二张图片可能就足够了:

在此处输入图片描述

\documentclass{article}
\begin{document}
 $\overline{\mathrm{X}\vphantom{()}}^1
 \quad
 \smash{\overline{\mathrm{X}\vphantom{()}}}\vphantom{X}^1$
\end{document}

相关内容