我想在行间添加一些文字对齐*像这样的环境:
我尝试了以下代码:
\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}