如何绘制从方程中一个元素的中心到另一个元素的中心上方或下方的方形箭头?

如何绘制从方程中一个元素的中心到另一个元素的中心上方或下方的方形箭头?

我检查了其他答案,但它们无法轻松自定义以获得所需的行为。它们没有将箭头的两端居中,也不支持等式中的下划线文本。

我有这个示例方程:

\documentclass[letterpaper]{article}
\begin{document}
$\lambda \underline{x}.((x\ y)\ \lambda z.(x\ z))$
\end{document}

目标是能够从中心\underline{x}到其后的第一个 x 的中心绘制一个方形箭头。方形箭头需要能够位于方程的上方或下方,并且距离方程的上方或下方距离也需要可指定。

答案1

这有点繁琐,需要编译两次,但以下代码可以工作

    \documentclass[letterpaper]{article}
    \usepackage{tikz}
    \usetikzlibrary{calc} 
    \newcommand{\tikzmark}[1]{\tikz[overlay,remember picture] \node (#1) {};}
    \begin{document}
    $
    \lambda \tikzmark{a0}\underline{x}\tikzmark{a1}.\tikzmark{b0}x\tikzmark{b1}
    \begin{tikzpicture}[overlay,remember picture]
        \coordinate (amid) at ($(a0.south)!0.5!(a1.south)$);
        \coordinate (bmid) at ($(b0.south)!0.5!(b1.south)$);
        \draw[->, to path={-- ++(0,-.25)  -| (\tikztotarget) \tikztonodes},below,pos=.25]  (bmid) to (amid) ;
    \end{tikzpicture}
    $
    \end{document}

相关内容