對齊環境中線條之間的箭頭

對齊環境中線條之間的箭頭

我想在行之間添加一些文本對齊*環境是這樣的:

在此輸入影像描述

我嘗試了以下程式碼:

\documentclass{article}
\usepackage{tikz,amsmath}
\usetikzlibrary{tikzmark}

\begin{document}
\begin{align*}
abc &= def + def + def + def \tikzmark{a}\\
    &= ghi + ghi \tikzmark{b}\\
    &= jkl\tikzmark{c}\\
    &= mno + mno\tikzmark{d}
\end{align*}
\begin{tikzpicture}[remember picture, overlay]
\draw[->] ([xshift=2mm] pic cs:a)
    to [out=0,in=0 ] 
     node[midway,anchor=west,xshift=3mm] {\footnotesize defitnition}
    ([xshift=2mm] pic cs:b);
\draw[->] ([xshift=2mm] pic cs:c)
    to [out=0,in=0 ] 
     node[midway,anchor=west,xshift=3mm] {\footnotesize blablabla}
    ([xshift=2mm] pic cs:d);
\end{tikzpicture}
\end{document}

但它只給出

在此輸入影像描述

有兩個問題:

(i) 我想讓每個箭頭垂直對齊

(ii) 由於我將非常頻繁地使用此箭頭,因此我想將其定義為一種新命令。

我能做些什麼?

答案1

這可以使用該witharrows包來完成。

在此輸入影像描述

這是代碼:

\documentclass{article}

\usepackage{witharrows}

\begin{document}

\[
\begin{WithArrows}
abc &= def+def+def+def \Arrow[tikz={font={\mdseries}}]{definition} \\
 &= hgi+hgi\\
 &= jkl\Arrow[tikz={font={\mdseries}}]{blablabla}\\
 &=mno+mno
\end{WithArrows}
\]

\end{document}

請注意,使用時您可能需要編譯兩次witharrows

前往包文件在 CTAN 上查看許多使用選項,包括字體、箭頭、曲率、顏色等。

答案2

只是為了完整性:tikzmark您正在使用的 with ,完成給出的程式碼沒有問題

\documentclass{article}
\usepackage{amsmath}
\usepackage{tikz}
\usetikzlibrary{tikzmark}
\begin{document}
\begin{align*}
abc &= def + def + def + def \tikzmarknode{a}{}\\
    &= ghi + ghi \tikzmarknode{b}{}\\
    &= jkl\tikzmarknode{c}{}\\
    &= mno + mno\tikzmarknode{d}{}
\end{align*}
\begin{tikzpicture}[remember picture, overlay,font=\footnotesize]
\draw[-latex] ([xshift=2mm]a.east) coordinate (r)
    to [out=0,in=0,looseness=2] 
     node[midway,anchor=west,xshift=3mm] {definition}
    (b -| r);
\draw[-latex] (c-|r)
    to [out=0,in=0,looseness=2] 
     node[midway,anchor=west,xshift=3mm] {blablabla}
    (d-|r);
\end{tikzpicture}
\end{document}

在此輸入影像描述

相關內容