我检查了其他答案,但它们无法轻松自定义以获得所需的行为。它们没有将箭头的两端居中,也不支持等式中的下划线文本。
我有这个示例方程:
\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}