
Я хочу добавить несколько текстов между строк ввыровнять*такая среда:
Я попробовал следующий код:
\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}