Стрелка между линиями в среде выравнивания

Стрелка между линиями в среде выравнивания

Я хочу добавить несколько текстов между строк ввыровнять*такая среда:

введите описание изображения здесь

Я попробовал следующий код:

\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, который вы используете, нет никаких проблем в завершении кода, чтобы дать

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

введите описание изображения здесь

Связанный контент