文本上方的特殊矢量(箭头的半个头部,垂直紧凑)

文本上方的特殊矢量(箭头的半个头部,垂直紧凑)

我正在寻找一个像这样的矢量符号

在此处输入图片描述

并具有以下特点:

  1. 适用于数学环境(也是内联的)
  2. 形式为\commandname{body}
  3. 与主体完全一样宽(以避免索引前或后固定的问题)
  4. 箭头如下:在此处输入图片描述...
  5. ...但仅限上半部分
  6. 垂直方向足够紧凑,可以内联。
  7. 兼容amsmath
  8. 箭头下的表达式由多个字符组成箭头应该覆盖整个表达式

有很多解决方案只能解决我一半的问题。最好的起点是包esvect我拍摄箭头图片的包: http://mirror.kumi.systems/ctan/macros/latex/contrib/esvect/esvect.pdf 它还包含完整的代码(供理解它的人使用)。包中缺少的esvect是箭头应该减半。

MWE,即将\myvect被取代

\documentclass{article}
\usepackage{amsmath}
\newcommand{\myvect}[1]{\mathbf{#1}}
\begin{document}
$\myvect{r}$
\end{document}

这是另一个链接 如何像这样在矢量上使用鱼叉式箭头? 但是 (1) 箭头和箭体之间的空间对我来说是不可接受的(正如评论所指出的)(2)我真的不喜欢这种箭头。

答案1

可扩展箭头可以通过复制 中的定义轻松获得amsmath。至于尖端的形式,问题在于找到合适的字体。该mathabx包提供了与箭头更相似的东西esvect,尽管它仍然不是完美的匹配。由于mathabx替换了很多符号,人们可能决定只导入一个,请参阅从不同字体导入单个符号

\documentclass{article}

\usepackage{amsmath}

\makeatletter
% \overarrow@ and \arrowfill@ are defined in amsmath
\newcommand*{\overrightharpoonup}{\mathpalette{\overarrow@\rightharpoonupfill@}}
\newcommand*{\rightharpoonupfill@}{\arrowfill@\relbar\relbar\rightharpoonup}
\makeatother

\DeclareFontFamily{U}{matha}{\hyphenchar\font45}
\DeclareFontShape{U}{matha}{m}{n}{
      <5> <6> <7> <8> <9> <10> gen * matha
      <10.95> matha10 <12> <14.4> <17.28> <20.74> <24.88> matha12
      }{}
\DeclareSymbolFont{matha}{U}{matha}{m}{n}
\DeclareMathSymbol{\varrightharpoonup}{3}{matha}{"E1}

\begin{document}

$\overrightharpoonup{a}$
$\overrightharpoonup{ab}$
$\overrightharpoonup{abcde}$

\bigskip
% using the mathabx harpoon
\let\rightharpoonup\varrightharpoonup
$\overrightharpoonup{a}$
$\overrightharpoonup{ab}$
$\overrightharpoonup{abcde}$

\end{document}

在此处输入图片描述

答案2

我完全同意用户@egreg。如果你愿意,可以在地点(它已添加到代码中)您可以\rightharpoonup根据需要增加或减少符号的高度。如果您设置了,\kern0符号和字符之间会有一个很好的空白空间。

在此处输入图片描述

\documentclass[12pt]{article}
\usepackage{amsmath}
%%%% Edit (\kern0) of the specific macro from https://www.latex4technics.com/?note=3cz1
\makeatletter
\newcommand{\ovset}[3][0ex]{%
  \mathrel{\mathop{#3}\limits^{
    \vbox to#1{\kern0\ex@
    \hbox{$\scriptstyle#2$}\vss}}}}
\makeatother

\begin{document}

$\ovset{\rightharpoonup}{r}, \ovset{\rightharpoonup}{P}$

\end{document}

附录:使用mathabx包,您可以得到类似的箭头图片。使用trimclipclipbox您可以获得精确的符号。这里有一个附录。

在此处输入图片描述

\documentclass[12pt]{article}
\usepackage{amsmath,mathabx}
%%%% Edit (\kern0) of the specific macro from https://www.latex4technics.com/?note=3cz1
        \makeatletter
        \newcommand{\ovset}[3][0ex]{%
          \mathrel{\mathop{#3}\limits^{
            \vbox to#1{\kern0\ex@
            \hbox{$\scriptstyle#2$}\vss}}}}
        \makeatother

\begin{document}

$\ovset{\rightharpoonup}{r}, \quad \ovset{\rightharpoonup}{G}$

\end{document}

答案3

在我看来,这是错误的记法。无论如何

\documentclass{article}
\usepackage{amsmath,accents}
\newcommand{\myvect}[1]{\accentset{\rightharpoonup}{#1}}
\begin{document}
$\myvect{r}$
\end{document}

做你想做的事。

在此处输入图片描述

相关内容