我想创建命令来生成上划线(分别是宽帽或箭头),并在末尾带有下标。命令
\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}