我有一个非常大的方程,它被压缩成一个非常小的符号。比如
f := a + b + c
在哪里
a = a_1 + a_2 + a_n
和
a_1 = a_11 * ...
而这在一个非常大而且不那么简单的方程/符号中不断地进行。
对于我的问题来说,这些方程式实际上并不重要。
我想制作一张非常大的 A3 海报来探索这个等式。对于根节点,我想放一些类似的东西
\node (root) {f := a + b + c}
并有一些孩子
\node [rectangle,draw] (a) [below left = of root] { a = a_1 + a_2 + ...}
这是我的问题:我希望有一个箭头从节点a
中的(root)
参数指向节点框(a)
。当然我可以创建一个从(root)
节点到(a)
节点的箭头,但这不是我想要的。我想要箭头从参数出发a
。
我该怎么做?
我也很想听听组织非常大的方程式的秘诀。
答案1
如果这样,该等式应该编号:
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{tikzmark, positioning}
\tikzset{is/.style = {inner ysep=2pt}}
\usepackage{lipsum}
\begin{document}
\lipsum[11]
\begin{equation}
f := \tikzmarknode[is]{A}{a} + b + c
\end{equation}
\bigskip
\tikzmarknode[draw, inner sep=1ex]{AA}{$a = a_1 + a_2 + \ldots$}
\begin{tikzpicture}[remember picture, overlay]
\draw[->] (A) -- ++ (0,-0.5) -| (AA);
\end{tikzpicture}
\lipsum[66]
\end{document}
附录:
用于flushright
定位带有数学表达式解释和 Ti 的框的选项钾Z 库ext.paths.ortho
:
\documentclass{article}
\usepackage{amsmath}
\usepackage{tikz}
\usetikzlibrary{tikzmark,
ext.paths.ortho, % -|- and |-| path operations
positioning}
\tikzset{is/.style = {inner ysep=2pt},
ms/.style = {draw, inner sep=1ex,
execute at begin node=\vphantom{$#1$}},
ms/.default = f
}
\usepackage{lipsum}
\begin{document}
\lipsum[11]
\begin{equation}
f := \tikzmarknode[is]{A}{a} + \tikzmarknode[is]{B}{b} + c
\end{equation}
\begin{flushleft}\medskip
\tikzmarknode[ms]{AA}{$a = a_1 + a_2 + \dotsm$}
\tikzmarknode[ms]{BB}{$b = b_1 + b_2 + \dotsm$}
\end{flushleft}
\begin{tikzpicture}[remember picture, overlay]
\draw[->] (A) |-|[distance=2mm] (AA);
\draw[->] (B) |-|[distance=3mm] (BB);
\end{tikzpicture}
\lipsum[66]
\end{document}
答案2
\documentclass[tikz, border=1cm]{standalone}
\usetikzlibrary{positioning, tikzmark}
\begin{document}
\begin{tikzpicture}[remember picture]
\node (root) {$f := \subnode{roota}{a} + b + c$};
\node[rectangle, draw, below left=of root] (a) {$a = a_1 + a_2 + \ldots$};
\draw[->] (roota) -- +(0,-1) -| (a);
\end{tikzpicture}
\end{document};