带右箭头的宽帽

带右箭头的宽帽

我正在寻找带有右箭头的宽帽。到目前为止,我只找到了普通的宽帽(\widehat,如图片左侧所示)或弯曲的右箭头(\curvearrowright)。

带箭头的宽头和宽帽

有什么方法可以得到我在图像右侧画得很糟糕的东西吗?

答案1

我提供了两种 TikZ 解决方案。

  1. 第一个使用在宽帽下的公式之前和之后使用一个空节点。
    • 缺点:增加的垂直高度不会被计算
    • 优点:数学样式(显示、文本、脚本、scriptscript)不受影响(除了\vphantom.
  2. 第二个一个节点。
    • 缺点:数学风格丧失。(将第一个改为\fraca\tfrac即可实现。)
    • 优点:数学模式已知垂直高度。

另一个缺点\widehat是线宽在路径的整个过程中不会改变。

平均能量损失

\documentclass{article}
\usepackage{amsmath}
\usepackage{tikz}
\usetikzlibrary{calc,arrows}

% Solution 1
\newcounter{tikzmark}
\newcommand{\tikzmark}[2][]{\tikz[baseline, inner sep=0, overlay, remember picture] \node[anchor=base] (#2) {\vphantom{#1}};}

\newcommand{\widehatarrow}[1]{%
    \tikzmark[#1]{widehatarrow\thetikzmark} #1 \tikzmark[#1]{endwidehatarrow\thetikzmark}%
    \tikz[overlay, remember picture] \draw[-to] (widehatarrow\thetikzmark.north)++(.05em,.4ex) -- ($(widehatarrow\thetikzmark.north)!.5!(endwidehatarrow\thetikzmark.north)+(.05em,.8ex)$) -- ($(endwidehatarrow\thetikzmark.north)+(.05em,.4ex)$);%
    \stepcounter{tikzmark}%
}

% Solution 2
\newcommand{\Widehatarrow}[1]{%
\tikz[baseline] {
    \node[inner sep=0, anchor=base] (widehatarrow){$#1$};
    \draw[-to] (widehatarrow.north west)++(.05em,.4ex) -- ($(widehatarrow.north west)!.5!(widehatarrow.north east)+(.05em,.8ex)$) -- ($(widehatarrow.north east)+(.05em,.4ex)$);%
    }%
}


\begin{document}
\begin{equation} % Solution 1
\widehatarrow{A, B} \cdot \widehatarrow{x, y} = \widehatarrow{A, y, B, x}
\end{equation}

\begin{equation} % Solution 2
\Widehatarrow{A, B} \cdot \Widehatarrow{x, y} = \Widehatarrow{A, y, B, x}
\end{equation}

\begin{equation} % Compare both solutions
 \frac{1}{\widehatarrow{A, B} \cdot \Widehatarrow{A, B}} = \frac{1}{\widehatarrow{A, B} \cdot \widehatarrow{A, B}} = \frac{1}{\Widehatarrow{A, B} \cdot \Widehatarrow{A, B}}
\end{equation}
\end{document}

输出

MWE编译


(作者 egreg)可以\Widehatarrow通过使用\vphantom和来克服 的限制\mathpalette

\newcommand{\Widehatarrow}[1]{\mathpalette\Widehatarrowaux{#1}}
\newcommand{\Widehatarrowaux}[2]{%
  \vphantom{#1\widehat{#2}}
  \tikz[baseline] {
    \node[inner sep=0, anchor=base] (widehatarrow){$#1#2$};
    \draw[-to] (widehatarrow.north west)++(.05em,.4ex)
     -- ($(widehatarrow.north west)!.5!(widehatarrow.north east)+(.05em,.8ex)$)
     -- ($(widehatarrow.north east)+(.05em,.4ex)$);%
  }%
}

现在的高度\Widehatarrow{AB}将与的高度相同,\widehat{AB}并且尺寸将被尊重,如下图所示

$\Widehatarrow{AB}=A_{\Widehatarrow{XY}}$

相关内容