align 環境の行間の矢印

align 環境の行間の矢印

行間にテキストを追加したいのですが整列*このような環境:

ここに画像の説明を入力してください

次のコードを試しました:

\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}

しかし、それは

ここに画像の説明を入力してください

問題は2つあります。

(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}

を使用する場合は 2 回コンパイルする必要がある場合があることに注意してくださいwitharrows

に行くパッケージドキュメントCTAN では、フォント、矢印、曲率、色など、さまざまな使用オプションを確認できます。

答え2

完全性のために:tikzmarkあなたが使用している では、コードを完成させて

\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}

ここに画像の説明を入力してください

関連情報