TikZ 方程中的箭头

TikZ 方程中的箭头

我正在尝试在文档中添加箭头,类似于我在论文(即手写笔记)上所做的那样。我很想通过在方程编号(标记或其他)之间放置一个箭头来指示一些冗长的算术的答案。请参阅下面的 MWE。

\documentclass{article}

\usepackage{amsmath,tikz}

\newcommand{\myanswer}{%
    \begin{tikzpicture}%
    \hspace{0.25cm} \draw [<-] (0,0) -- (5,0);
    \end{tikzpicture}\tag{{\LARGE{$\star$}}}%
}

\begin{document}

I'd love to change the solution of
\begin{align}
    A &= x + y - z \nonumber \\
    &= 5 + (-2) - (-0.3) \nonumber \\
    &= 3.3
\end{align}

to this,
\begin{align}
    A &= x + y - z \nonumber \\
    &= 5 + (-2) - (-0.3) \nonumber \\
    &= 3.3 \myanswer
\end{align}

... but with the equation kept centered and fill only the space between the ``answer'' and the tagged equation with an arrow.

\end{document}

非常感谢任何/所有帮助。

答案1

对于这样的问题蒂克兹马克是你的朋友:你可以在等式末尾创建一个标记,然后从命令内部绘制箭头\tag。例如,自动执行此操作的一种方法是:

\newcommand\Tag[1]{%
  \tikzmark{mytag}%
  \tag{\tikz[remember picture]{%
  \draw[overlay, ->](-0.5,0)--(pic cs:mytag)}\Large$#1$}%
}

该命令的用途为\Tag{\star}

事实上,这个命令还不够,因为标签名称不是动态的。我最初的想法是使用计数器,equation但这行不通,因为\tag不会增加方程式。相反,让我们定义一个新的计数器,比如Tag,然后将其用于里面的标签\tikzmark

这足以定义基本命令,但让我们更进一步,添加一个可选参数来设置样式蒂克兹箭头。如果能够从方程编号中绘制这些箭头,那就太好了,这应该是默认的。由于我们已经有一个用于设置箭头样式的可选参数,因此我们可以使用\NewDocumentCommand来自解析需要用括号括起来的第二个可选参数来用符号替换方程编号,例如\star。也就是说,\Tag将从方程编号绘制一个箭头,\Tag(\star)将从 a 绘制\star,然后\Tag[red]\Tag[red](\star)分别将这些箭头涂成红色。

有了这个,下面的 MWE 就会产生:

在此处输入图片描述

以下是完整的代码。

\documentclass{article}

\usepackage{amsmath,tikz,xparse}
\usetikzlibrary{tikzmark, arrows.meta}
\usetikzlibrary{decorations.pathmorphing} % for the coil

\newcounter{Tag}
\tikzset{
   Tag/.style = {% default styling for the \Tag arrow
        arrows=-{LaTeX},
        blue
   }
}
\NewDocumentCommand\Tag{ O{} d() }{%
  \refstepcounter{Tag}         % increment Tag counter for unique tags
  \tikzmark{tagging \theTag}   % create the tikzmark
  \tag{\tikz[remember picture,overlay]{% tag equation and point to mark
    \draw[Tag, #1](-0.2,0.1)--([shift={(0.2,0.1)}]pic cs:tagging \theTag);}{%
      \IfNoValueTF{#2}{\refstepcounter{equation}\theequation}{$#2$}
    }%
  }%
}

\begin{document}

  \begin{align}
    A &= x + y - z        \Tag \\
      &= 5 + (-2) - (-0.3)\Tag[red](\star) \\
      &= 3.3              \Tag[orange,decorate,decoration={coil,aspect=0}](\ast)
  \end{align}

\end{document}

请注意,我创建了一个Tag样式,使用\tikzset使箭头的样式更容易。默认情况下,LaTeX使用箭头尖,箭头为蓝色。此外,当您使用蒂克兹马克,您需要对文档进行两次编译,标记才会开始起作用。

相关内容