如何将数学文本与 tikz 图像叠加?

如何将数学文本与 tikz 图像叠加?

我在“对齐”环境中有一个方程式。我想在等号上画一个箭头(倾斜的,首选),另一端的文字是“这始终是正确的”。我如何在这样的方程式环境中使用 TikZ 包?

此链接包含我正在寻找的内容:

答案1

一种可能性:

\documentclass{article}
\usepackage{tikz}
\def\annotateEquality#1{
\tikz[overlay]
  \draw[blue,-latex] (-1.5ex,1.5ex) -- +(.7,.5) node[black,right, draw] {#1};
}

\begin{document}
This is an example:

\[
  X =\annotateEquality{Always true} Y
\]
\end{document}

结果:

结果

请注意,由于该overlay选项,tikz 图片“不占用”结果中的任何空间,这对于水平对齐是可以的(否则 Y 将被“推”到右侧),但对于垂直对齐可能不利,因为框可能太靠近上一段。在这种情况下,您必须\vskip在公式前手动插入一些。

答案2

你也可以使用tikzmark标记文本中的相应点,然后然后绘制适当的图形。这样做的好处是将内容与注释分开。在这种特定情况下,优势并不大,但在更复杂的情况下,可以应用相同的方法:

在此处输入图片描述

笔记:

代码:

\documentclass{article}
\usepackage{xparse}
\usepackage{tikz}

\newcommand{\tikzmark}[1]{\tikz[overlay,remember picture] \node[baseline] (#1) {};}

\NewDocumentCommand{\DrawBox}{O{} O{} m m}{%
    % #1 = line draw options
    % #2 = node options
    % #3 = tikzmark name
    % #4 = node text
    \begin{tikzpicture}[remember picture, overlay]
        \draw [ultra thick, blue, -latex, shorten >=1pt, #1]
            (#3) ++ (-1.5ex,1.5ex) -- +(.7,.5)
            node [black, right, draw=black, #2] {#4};
    \end{tikzpicture}%
}

\begin{document}
This is an example:
\[
  X =\tikzmark{Point A}  Y
\]
and another example
\[
  X =\tikzmark{Point B}  Z
\]

\DrawBox{Point A}{Always true}
\DrawBox[draw=red][draw=gray, thin, fill=yellow]{Point B}{Sometimes true}
\end{document}

答案3

这么长的文本在方程式中是无法阅读的。我会在周围的文本中描述这一点。或者你为此定义一个新符号并在命名法中描述它。

% arara: pdflatex

\documentclass{article}
\usepackage{graphicx}
\usepackage{mathtools}
\newcommand\arroweq[1]{\stackrel{\mathclap{\normalfont\scalebox{0.3}{#1}}}{\mathrel{\vec{=}}}}

\begin{document}
  \begin{align}
    x=y\\
    x\arroweq{this is always right} y
    \end{align}

    \begin{center}
    I would recommend to write $x\mathrel{\mathring{=}}y$\\ where $\mathring =$ stands for \emph{this is always right}.
    \end{center}
\end{document}

在此处输入图片描述

mathring只是一个例子。随便用什么都可以。也许,已经有这个符号了。

相关内容