我在用 LaTeX 重现方程式时遇到了一些麻烦。我尝试了一下,但仍然不知道如何正确地锚定从节点到节点的路径。我正在尝试重现图像。
另外,是否有选项可以让第一个方程式居中,而云方程式则左对齐?居中作为环境始终使整个图形居中,而不仅仅是一个节点。
到目前为止我得到了两个弧,但都不是我想要的:
\begin{tikzpicture}
\node (E) at (2,0) {$a^2=\Big(b\cdot \sin (\alpha)\Big)^2+n^2$};
\node[cloud, cloud puffs=15.7, cloud ignores aspect, minimum width=3cm, minimum height=0.5cm, align=center, draw] (C) at (-5,-2.2) {$h=b\cdot \sin (\alpha)$};
\draw [thick, ->] (C) to [out=30,in=270,in looseness=0.25] (E);
\draw [->] (C) to [out=90,bend right=45] (E);
\end{tikzpicture}
这给了我这个结果:
答案1
您可以使用 来做到这一点tikzmark
。我添加了bending
库以使箭头对齐得更好。
制作一个显示方程式并用 标记等号\tikzmark{<name>}
。然后添加[remember picture, overlay]
到您的 tikzpicture 并绘制箭头到({pic cs:<name>})
。我添加了一个移位来放置箭头。
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{shapes,tikzmark,bending}
\begin{document}
\[a^2\tikzmark{eq}=\big(b\cdot \sin (\alpha)\big)^2+n^2\]
\begin{tikzpicture}[remember picture, overlay]
\node[cloud, cloud puffs=15.7, cloud ignores aspect, minimum width=3cm, minimum height=0.5cm, align=center, draw] (C) at (2,-.5) {$h=b\cdot \sin (\alpha)$};
\draw [thick, ->] (C.east) to [out=0,in=270,in looseness=0.25] ([shift={(.2,-.1)}]{pic cs:eq});
\end{tikzpicture}
\end{document}
答案2
这可以实现你想要的。如果你不想让某些路径占用空间,只需将它们放在一个范围内,并将覆盖选项设置为该范围。但是,你需要在 tikz 环境后设置适当的垂直空间,以避免云节点与其余内容重叠。
\documentclass{article}
\usepackage{lipsum}
\usepackage{tikz}
\usetikzlibrary{shapes}
\begin{document}
{\noindent\centering\begin{tikzpicture}
\node (E) at (0,0) {$a^2=\Big(b\cdot \sin (\alpha)\Big)^2+n^2$};
\begin{scope}[overlay]
\node[cloud,cloud puffs=15.7, cloud ignores aspect, minimum width=3cm, minimum height=0.5cm, align=center, draw] (C) at (-2.8,-1) {$h=b\cdot \sin (\alpha)$};
\draw [thick, ->] (C.10) to [out=0,in=-90] ([xshift=-1cm,yshift=0.3cm]E.south);
\end{scope}
\end{tikzpicture}\par\vspace{1cm}}
\lipsum[1]
\end{document}