![如何将数学文本与 tikz 图像叠加?](https://linux22.com/image/292373/%E5%A6%82%E4%BD%95%E5%B0%86%E6%95%B0%E5%AD%A6%E6%96%87%E6%9C%AC%E4%B8%8E%20tikz%20%E5%9B%BE%E5%83%8F%E5%8F%A0%E5%8A%A0%EF%BC%9F.png)
我在“对齐”环境中有一个方程式。我想在等号上画一个箭头(倾斜的,首选),另一端的文字是“这始终是正确的”。我如何在这样的方程式环境中使用 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
标记文本中的相应点,然后然后绘制适当的图形。这样做的好处是将内容与注释分开。在这种特定情况下,优势并不大,但在更复杂的情况下,可以应用相同的方法:
笔记:
这确实需要两次运行。第一次确定位置,第二次进行绘图。
来自
\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
只是一个例子。随便用什么都可以。也许,已经有这个符号了。